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_)