sprint 1-alpha
sprint/audio/WaveOut.h
00001 #ifndef _SPRINT_WAVE_OUT
00002 #define _SPRINT_WAVE_OUT
00003 
00004 /* WAVEOUT.H */
00005 
00006 namespace sprint {
00007 
00008 class WaveOut {
00009 
00010     WAVEHDR *whdrOutput;
00011 
00012     HWAVEOUT hwout;
00013 
00014     char *output_buffer;
00015 
00016     UINT nBufferSize;
00017     UINT nMaxBuffer;
00018 
00019         UINT uWritePos;
00020         UINT uCompleteBuffer;
00021 
00022         UINT nComplete, nSent;
00023 
00024 public:
00025     WaveOut(UINT uMaxBuffer, UINT uBufferSize);
00026     ~WaveOut();
00027 
00028         bool InitEx(WAVEFORMATEX *lpFormat, 
00029                 UINT_PTR uDeviceID, 
00030                 DWORD_PTR dwCallback, 
00031                 DWORD_PTR dwCallbackInstance, 
00032                 DWORD  fdwOpen);
00033         bool Init(HWND hwnd,WAVEFORMATEX *lpFormat, UINT_PTR uDeviceID);
00034         bool Done();
00035 
00036         bool CheckBuffer();
00037 
00038         bool ResetBuffer(WAVEHDR *pwhdr);
00039         bool PlayBuffer(WAVEHDR *pwhdr);
00040         
00041         bool SendSilenceBuffer();
00042         bool SendData(const char *lpData, UINT uDataSize);
00043 
00044         bool Restart();
00045         bool Pause();
00046 };
00047 
00048 }
00049 
00050 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines