📄 audioiomsgr.h
字号:
// AudioIOMsgr.h: interface for the CAudioIOMsgr class.
//
//////////////////////////////////////////////////////////////////////
#define R_TIMEOUT 1
#define R_USER 2
#define R_BUSY 3
#define IOMN_ERR 4
//data handle msg
//the lParam point to the AVIO object
//Use
//GetRemoteAudio
//GetRemoteVideo
//GetLocalAudio
//GetLocalVideo
//to Handle the data ,and proccess this as you like(paint or play)
//Warning:you should return these messages quickly,as these msg is sent by SendMessage
////the wParam identify the data type,0 local,or remote
#define IOM_AUDIO WM_USER+51
#define IOM_VIDEO WM_USER+52
///status
#define STA_TALK 1
#define STA_FREE 2
#define STA_WAIT 3
#define STA_WAIT_USER 4
//pack flag
#define FLAG_AUDIO 0x3131
#define FLAG_CMD 0x3133
//
#define SIZE_AUDIO_FRAME 960
#define SIZE_AUDIO_PACKED 60
//
//
//音频数据包(包含音频数据)
typedef struct
{
short flag;
BYTE id;
BYTE data[SIZE_AUDIO_PACKED];
}PACK_AUDIO;
#define CMD_ACCEPT 1
#define CMD_REFUSE 2
#define CMD_END 3
#define CMD_AUDIO 4
//命令数据包
typedef struct
{
short flag;
BYTE id;
BYTE cmd;
BYTE ex;
unsigned short data_size_extra;
}PACK_CMD;
typedef struct
{
bool bAudioIn;
bool bAudioOut;
bool bAudioCodec;
}DEVICE_SUPPORT;
#include "AudioPlay.h"
#include "AudioRec.h"
#include "AudioCodec.h"
//#include "MyTalkDlg.h"
#if !defined(AFX_AUDIOIOMSGR_H__662C2583_5E44_479B_92C3_349F25A11FCB__INCLUDED_)
#define AFX_AUDIOIOMSGR_H__662C2583_5E44_479B_92C3_349F25A11FCB__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//class CtsBuffer;
class CAudioPlay;
class CAudioRec;
class CAudioCodec;
class CRemoteTalkDlg;
class CAudioIOMsgr
{
public:
void SendError(int Error);
void EndTalk();
BOOL InitAudioControl();
void OnEncodeAudioData(char *pa, int len);
void OnDecodeAudioData(PACK_AUDIO *ppa, int len);
void ServerReceCommand(PACK_CMD *ppc, int len);
void ClientReceCommand(PACK_CMD *ppc, int len);
void DestroyAudioCodec();
BOOL InitAudioCodec();
void Destroy();
BOOL Init();
CAudioIOMsgr(CRemoteTalkDlg* pMain = NULL);
virtual ~CAudioIOMsgr();
CRemoteTalkDlg* pMainDlg;
DEVICE_SUPPORT m_ds;
HANDLE m_hBuffer;
DWORD m_dwBuffer;
HANDLE m_hAudioOut;
HANDLE m_hAudioIn;
DWORD m_dwAudioOutId;
DWORD m_dwAudioInId;
int m_iAudioBuf;
int m_iStatus;
BOOL DestroyAudioRec();
BOOL InitAudioRec();
BOOL DestroyAudioPlay();
BOOL InitAudioPlay();
protected:
static DWORD WINAPI AudioInThreadProc(LPVOID lpParameter);
static DWORD WINAPI AudioOutThreadProc(LPVOID lpParameter);
static DWORD WINAPI SockSendThreadProc(LPVOID lpParameter);
protected:
CAudioPlay m_AudioPlay;
CAudioRec m_AudioRec;
CAudioCodec m_CodecMgr;
// CtsBuffer* m_pBuffer;
char* m_paR;
char* m_paL;
UINT m_nFrameCount;
UINT m_uDataRcv;
UINT m_uDataSend;
PACK_AUDIO* m_ppaL;
// HWND m_hwndLocalAudioRcv;
// HWND m_hwndRemoteAudioRcv;
sockaddr_in m_sockaddr;
sockaddr_in m_dst;
};
#endif // !defined(AFX_AUDIOIOMSGR_H__662C2583_5E44_479B_92C3_349F25A11FCB__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -