www.pudn.com > ÓïÒôAudioCap.rar > WaveForm.h
// WaveForm.h: interface for the CWaveForm class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_WAVEFORM_H__93A199C2_AF33_11D2_B7C8_444553540000__INCLUDED_)
#define AFX_WAVEFORM_H__93A199C2_AF33_11D2_B7C8_444553540000__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#define WAVE_FORM_BUFFER_NUMBER 5
class CWaveIn
{
public:
CWaveIn();
virtual ~CWaveIn();
// Oprations
public:
BOOL Init(HWND hWnd, int iTime, int iRecordDeviceID = -1, int iSamplingRate = 8000, int iChannel = 1, int iBits = 16);
void Free();
BOOL Start();
void Stop();
inline BOOL IsRecording() { return (m_hWaveIn != NULL); }
BOOL ContinueRecording();
// Information functions
public:
void GetRecordDeviceNames(CStringList& strList);
protected:
HWND m_hWnd;
int m_iRecordDeviceID;
int m_iRecordDeviceNumber;
HWAVEIN m_hWaveIn;
WAVEFORMATEX m_wavFormat;
public:
HANDLE m_hWaveInHeader[WAVE_FORM_BUFFER_NUMBER];
LPWAVEHDR m_pWaveInHeader[WAVE_FORM_BUFFER_NUMBER];
HANDLE m_hWaveInData[WAVE_FORM_BUFFER_NUMBER];
LPSTR m_pWaveInData[WAVE_FORM_BUFFER_NUMBER];
BOOL m_bRecord;
int m_iWaveLength;
int m_iWaveInNextBuffer;
};
class CWaveOut
{
public:
CWaveOut();
virtual ~CWaveOut();
// Oprations
public:
BOOL Init(HWND hWnd, int iTime, int iPlayDeviceID = -1, int iSamplingRate = 8000, int iChannel = 1, int iBits = 16);
void Free();
BOOL Start();
void Stop();
BOOL Play(char * pData, int iLength);
inline BOOL IsPlayingData() { return (m_iWaveOutIdleBuffer < WAVE_FORM_BUFFER_NUMBER); }
inline BOOL IsPlaying() { return (m_hWaveOut != NULL); }
BOOL ContinuePlaying();
// Information functions
public:
void GetPlayDeviceNames(CStringList& strList);
protected:
HWND m_hWnd;
int m_iPlayDeviceID;
int m_iPlayDeviceNumber;
HWAVEOUT m_hWaveOut;
WAVEFORMATEX m_wavFormat;
HANDLE m_hWaveOutHeader[WAVE_FORM_BUFFER_NUMBER];
LPWAVEHDR m_pWaveOutHeader[WAVE_FORM_BUFFER_NUMBER];
HANDLE m_hWaveOutData[WAVE_FORM_BUFFER_NUMBER];
LPSTR m_pWaveOutData[WAVE_FORM_BUFFER_NUMBER];
public:
BOOL m_bPlay;
int m_iWaveLength;
int m_iWaveOutNextBuffer;
int m_iWaveOutIdleBuffer;
};
#endif // !defined(AFX_WAVEFORM_H__93A199C2_AF33_11D2_B7C8_444553540000__INCLUDED_)