|
// WaveIn.h: interface for the CWaveIn class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_WAVEIN_H__2473839B_76B0_45EB_9F9A_386D27903BB1__INCLUDED_)
#define AFX_WAVEIN_H__2473839B_76B0_45EB_9F9A_386D27903BB1__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//////////////////////////////////////////////////////////////////////
#include "Wave.h"
#include "WaveDevice.h"
//////////////////////////////////////////////////////////////////////
void CALLBACK waveInProc(HWAVEIN hwi, UINT uMsg, DWORD dwInstance, DWORD dwParam1, DWORD dwParam2);
//////////////////////////////////////////////////////////////////////
#ifdef WAVE_IN_BUFFER_SIZE
#undef WAVE_IN_BUFFER_SIZE
#endif
#define WAVEIN_BUFFER_SIZE 4096
#define NUMWAVEINHDR 2
//////////////////////////////////////////////////////////////////////
class CWaveIn
{
friend void CALLBACK waveInProc(HWAVEIN hwi, UINT uMsg, DWORD dwInstance, DWORD dwParam1, DWORD dwParam2);
public:
bool m_bRecord;
unsigned long nValue,Q;
CString GetError() const;
DWORD GetPosition();
bool IsRecording();
CWave MakeWave();
bool Close();
bool Continue();
bool Open();
bool Pause();
bool Record(UINT nTaille = 4096);
bool Stop();
void SetDevice(const CWaveDevice& aDevice);
void SetWaveFormat(WAVEFORMATEX tagFormat);
CWaveIn();
CWaveIn(WAVEFORMATEX tagFormat, const CWaveDevice& aDevice);
virtual ~CWaveIn();
private:
bool AddNewBuffer(WAVEHDR* pWaveHdr);
bool AddNewHeader(HWAVEIN hwi);
void FreeListOfBuffer();
DWORD GetNumSamples();
void FreeListOfHeader();
void InitListOfHeader();
bool IsError(MMRESULT nResult);
bool ResetRequired(CWaveIn* pWaveIn);
private:
bool m_bResetRequired;
HWAVEIN m_hWaveIn;
CPtrList m_listOfBuffer;
UINT m_nError;
int m_nIndexWaveHdr;
UINT m_nBufferSize;
WAVEHDR m_tagWaveHdr[NUMWAVEINHDR];
CWave m_wave;
CWaveDevice m_waveDevice;
};
#endif // !defined(AFX_WAVEIN_H__2473839B_76B0_45EB_9F9A_386D27903BB1__INCLUDED_)
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.