📄 waveaudiosource.h
字号:
// WaveAudioSource.h: interface for the WaveAudioSource class.
//
//////////////////////////////////////////////////////////////////////
#ifndef AFX_WAVEAUDIOSOURCE_H__1FF46522_ECF5_44DC_9C3F_EE7E509676D6__INCLUDED_
#define AFX_WAVEAUDIOSOURCE_H__1FF46522_ECF5_44DC_9C3F_EE7E509676D6__INCLUDED_
#ifdef WIN32
#include <windows.h> // required by mmsystem.h
#include <mmsystem.h>
#endif
#include <list>
#include "AudioSource.h"
#include "Parameters.h"
class AudioSampleManager;
class WaveAudioSource : public AudioSource
{
public:
WaveAudioSource();
virtual ~WaveAudioSource();
int SetFormat(int waveFormatNumber);
int SetVolume(unsigned long volume);
int SetDeviceID(unsigned int deviceID);
int SetNumBuffers(int n);
int SetBufferSize(int s);
int StartSource();
int StopSource();
int SourceThreadStarted(HANDLE sourceThreadHandle, DWORD sourceThreadID);
int SourceThreadStopped(HANDLE sourceThreadHandle, DWORD sourceThreadID);
protected:
virtual int GenerateData(AudioSample **ppAudioSample);
virtual int SetTraceLevel();
private:
int BeginAudioCapture();
int ResetAudioCapture();
int EndAudioCapture();
int AddBuffer(int i);
static void CALLBACK WaveInCallback(HWAVEIN hWaveIn, UINT uMsg, DWORD dwInstance, DWORD dwParam1, DWORD dwParam2);
private:
WAVEFORMATEX format;
HANDLE dataEvent;
HWAVEIN hWaveIn;
WAVEHDR waveHdr[WAVESOURCE_MAX_WAVEHDR];
char dataBuffer[WAVESOURCE_MAX_WAVEHDR][WAVESOURCE_MAX_WAVEHDR_SIZE];
int numBuffers;
int bufferSize;
std::list<WAVEHDR*> buffersToAdd;
bool bEnableAddBuffer;
CRITICAL_SECTION waveInMutex;
CRITICAL_SECTION bufferListMutex;
CRITICAL_SECTION filterMutex;
AudioSampleManager *audioSampleManager;
bool bRunning;
unsigned int waveinDeviceID;
bool needToSetVolume;
unsigned int micVolume;
};
#endif // !defined(AFX_WAVEAUDIOSOURCE_H__1FF46522_ECF5_44DC_9C3F_EE7E509676D6__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -