www.pudn.com > audioTest.rar > AudioUIThread.h


#pragma once 
 
#include "audio/WaveBuffer.h" 
#include "audio/Wave.h" 
#include "audio/WaveDevice.h" 
#include "audio/WaveInterface.h" 
#include "audio/WaveIn.h" 
#include "afxcmn.h" 
 
 
#define WM_MSG_1 (WM_USER + 100) 
//#define WM_MSG_2 (WM_USER + 101) 
 
typedef struct Audio 
{ 
	CString AudioName; 
	int presetIndex;//预设位 
	int silent; 
}Audio; 
 
typedef struct AudioInfo  
{ 
	int num; 
	Audio *audio; 
 
	AudioInfo() 
	{ 
		audio=NULL; 
	} 
	AudioInfo(int num1) 
	{ 
		num=num1; 
		audio=new Audio[num]; 
	} 
	virtual ~AudioInfo() 
	{ 
		if(audio != NULL) 
		{ 
			delete []audio;//必须用[],否则报错 
			audio = NULL; 
		} 
	} 
}AudioInfo; 
 
// CAudioUIThread 
 
class CAudioUIThread : public CWinThread 
{ 
	DECLARE_DYNCREATE(CAudioUIThread) 
 
public: 
	CAudioUIThread();           // 动态创建所使用的受保护的构造函数 
	CAudioUIThread(AudioInfo * AI); 
protected: 
	virtual ~CAudioUIThread(); 
 
public: 
	virtual BOOL InitInstance(); 
	virtual int ExitInstance(); 
 
protected: 
	DECLARE_MESSAGE_MAP() 
 
public: 
	AudioInfo *ai; 
private: 
	BOOL *m_hasVoice; 
	//Audio *m_audio;				//音频采集卡信息 
	int m_audioNum;					//音频采集卡数目 
	CWaveIn *m_waveIn;				 
	CWaveDevice *m_monDevice; 
	CWave *m_monWave; 
public: 
	bool InitAudio(); 
	void OnMyMsgAudio(WPARAM wParam,LPARAM lParam); 
	int Run(); 
	//void EndThread(int t); 
};