www.pudn.com > CHA07.rar > WAVE.H


// wave.h : header file 
// 
#ifndef __WAVE__ 
#define __WAVE__ 
 
#include "waveodev.h" 
 
///////////////////////////////////////////////////////////////////////////// 
// CWave object 
 
class CWave : public CObject 
{ 
    DECLARE_SERIAL(CWave) 
public: 
    CWave();      
    ~CWave(); 
    BOOL Create(int nsamples, int samprate = 11025, int sampsize = 8); 
    BOOL Play(CWaveOutDevice* pWaveOutDevice = NULL); 
    void Stop(); 
    BOOL Load(char* pszFileName = NULL); 
    BOOL Load(CFile* fp);   
    BOOL Load(UINT hFile); 
    BOOL Load(HMMIO hmmio); 
 
// Attributes 
public: 
    WAVEFORMATEX* GetFormat()  
        {return (WAVEFORMATEX*)&m_pcmfmt;} 
    CWaveOutDevice* GetOutDevice()  
        {return m_pOutDev;} 
    int GetSize() {return m_iSize;} 
    int GetNumSamples(); 
    int GetSample(int index);  
    virtual void OnWaveOutDone(); 
    virtual void OnWaveInData(); 
    void SetSample(int index, int iValue); 
 
 
// Implementation 
public: 
    void* GetSamples() {return m_pSamples;} 
    BOOL IsBusy() {return m_bBusy;} 
    void SetBusy(BOOL b) {m_bBusy = b;} 
 
protected: 
    virtual void Serialize(CArchive& ar);   // Overridden for document i/o 
 
private: 
    PCMWAVEFORMAT m_pcmfmt;     // Pcm wave format header 
    void* m_pSamples;           // Pointer to the samples 
    int m_iSize;                // Size in bytes 
    CWaveOutDevice* m_pOutDev;  // Output device 
    BOOL m_bBusy;               // Set TRUE if playing or recording 
}; 
 
#endif // __WAVE__