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


// WaveBuffer.h: interface for the CWaveBuffer class. 
//CWaveBufferis is a class that encapsulate buffers for CWave and CWaveIn/CWaveOut. 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_WAVEBUFFER_H__F0B5D53A_30FC_4537_9701_9BD271AF4C8E__INCLUDED_) 
#define AFX_WAVEBUFFER_H__F0B5D53A_30FC_4537_9701_9BD271AF4C8E__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
class CWaveBuffer   
{ 
public: 
	//return the 'sizeof' a sample(short or long) 
	int GetSampleSize() const; 
	//Link pBuffer to the waveBuffer internal buffer,assuming  
	//there is dwNumSamples of size nSize 
	void SetBuffer(void *pBuffer,DWORD dwNumSamples,int nSize); 
	//create a new buffer for dwNumSamples samples of size nSize 
	////设置采样率,dwNumSamples为采样频率,nSize为指定数据格式的最小单元 
	void SetNumSamples(DWORD dwNumSamples,int nSize=sizeof(short)); 
	//copy the buffer pBuffer of dwNumSamples samples 
	void CopyBuffer(void *pBuffer,DWORD dwNumSamples,int nSize=sizeof(short)); 
	//return the number of samples 
	DWORD GetNumSamples()const; 
	//return the pointer to the internal buffer 
	void * GetBuffer()const; 
	CWaveBuffer(); 
	virtual ~CWaveBuffer(); 
private: 
	int m_nSampleSize; 
	void *m_pBuffer; 
	DWORD m_dwNum; 
}; 
 
#endif // !defined(AFX_WAVEBUFFER_H__F0B5D53A_30FC_4537_9701_9BD271AF4C8E__INCLUDED_)