00001 #ifndef WAVEAPI_H
00002 #define WAVEAPI_H
00003
00004
00005
00006 #include <windows.h>
00007 #include <mmsystem.h>
00008
00009 #define FRAMESIZE 256 // size of a frame
00010 #define WIBLSIZE 8 // how many frame buffers
00011
00012 #define MSG_BUFFER_IN (WM_APP + 1)
00013 #define MSG_BUFFER_DONE (WM_APP + 2)
00014
00015 enum { WAVE_IN, WAVE_OUT };
00016
00017
00018
00019 extern bool OpenWaveIn();
00020 extern void StartWaveIn();
00021 extern void CloseWaveIn();
00022 extern void OpenWaveOut();
00023 extern void CloseWaveOut();
00024 extern void CALLBACK waveOutProc(HWAVEOUT hwi, UINT uMsg, DWORD dwInstance, DWORD dwParam1, DWORD dwParam2);
00025 extern void CALLBACK waveInProc(HWAVEIN hwi, UINT uMsg, DWORD dwInstance, DWORD dwParam1, DWORD dwParam2);
00026
00027
00028
00029 extern int AssertWaveError( int source, int err );
00030 extern int WaveProcessor( WAVEHDR * wh, short int * waveSample, int sampleSize);
00031 extern int WavePostProcessor( WAVEHDR * wh, short int * waveSample, int sampleSize);
00032
00033
00034
00035
00036
00037 extern int samplingRate,
00038 channels;
00039 extern HWND targetWindow;
00040
00041
00042
00043 extern WAVEFORMATEX format;
00044
00045 extern HWAVEOUT waveOutHandle;
00046 extern WAVEHDR waveOutHeader;
00047 extern bool waveOutWriteStart;
00048 extern int waveOutDoneCount;
00049 extern WAVEHDR waveOutHeaders[WIBLSIZE];
00050
00051 extern HWAVEIN waveInHandle;
00052 extern WAVEHDR waveInHeaders[WIBLSIZE];
00053 extern short int ** waveInBuffers;
00054 extern int wiblCount,
00055 wiblIndex;
00056 extern int waveInStatus;
00057
00058 #endif