Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*************************************************
* wave.h * * * * Copyright (C) 1995-1999 Microsoft Inc. * * * *************************************************/
// wave.h : header file
//
#ifndef __WAVE__
#define __WAVE__
#include "waveodev.h"
#include "mmreg.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_PTR hFile); BOOL Load(HMMIO hmmio); BOOL LoadResource(WORD wID);
// 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 to TRUE if playing or recording
};
#endif // __WAVE__
|