WAVEX.H
上传用户:chinamans
上传日期:2013-03-17
资源大小:202k
文件大小:2k
源码类别:

TAPI编程

开发平台:

Visual C++

  1. // A Header file for wave functions for dialer/talker
  2. // (c) Dialogic corp. 1995, 1996
  3. typedef struct _wavecashedinfo // for temporary storage
  4. {
  5. int nDeviceID;
  6. int nFormatID;
  7. WAVEFORMATEX WF;
  8. } CASHEDINFO, *PCASHEDINFO;
  9. class CTapiWave : public CObject
  10. {
  11. DECLARE_DYNAMIC(CTapiWave)
  12. // Attributes
  13. protected:
  14. CTapiWave();
  15. public:
  16. LPVOID  m_lpvCall; // only one call 
  17. LPVOID  m_lpvLine; // line
  18. DWORD m_dwLineID;
  19. static WAVEFORMATEX wfDialogicFormats[12];
  20.   protected:
  21. HWAVEIN  m_hWaveIn;
  22. HWAVEOUT  m_hWaveOut;
  23. DWORD  m_dwState;
  24. DWORD m_dwVolume;
  25. char  m_szRecFileName[16]; // file name for recording 
  26. public:
  27. CTapiWave(LPVOID lpLine, LPVOID lpCall, DWORD dwLineID);
  28. //virtual ~CTapiWave();
  29.                                          
  30. int  ctwGetID(LPSTR); // Get ID by name
  31. BOOL   ctwPlay(HWND, UINT, LPSTR);  // play the WAVE file
  32. BOOL  ctwRecord(HWND hWnd, UINT nID, int nFormatID=10, DWORD dwSize=65534); // record the Wave file
  33. BOOL  ctwPause(); // Pause
  34. BOOL ctwResume(); // Resume
  35. BOOL ctwStop(); // Stop
  36. void  ctwFinishPlay(WPARAM, LPARAM);  // handle the driver notification
  37. void  ctwFinishRecord(WPARAM wParam, LPARAM lParam, LPSTR lpName=NULL);  // handle the driver notification
  38. DWORD  ctwGetState() // Extract state
  39. {return m_dwState;}
  40. HWAVE  ctwGetHWave(WORD wFlag)
  41. {return wFlag == WAVEIN ? (HWAVE)m_hWaveIn : wFlag == WAVEOUT ? (HWAVE)m_hWaveOut : (HWAVE)0xffffffff;} 
  42. DWORD  ctwGetVolume() {return m_dwVolume;}
  43. void  ctwSetVolume(DWORD dwVol=0xffff);
  44. protected:
  45. HWAVEOUT  WavexPlay(HWND, UINT, LPSTR);  // play the WAVE file
  46. HWAVEIN WavexRecord(HWND hWnd, UINT nID, int nFormatID=10, DWORD dwBufSize=65534); // record the Wave file
  47. void  WavexFinishPlay(WPARAM, LPARAM);  // handle the driver notification
  48. void  WavexFinishRecord(WPARAM, LPARAM, LPSTR);  // handle the driver notification
  49. void  WavexSaveData(LPWAVEHDR, LPSTR);
  50. DWORD  ctwSetState(DWORD dwNewState)              // Set state
  51. {return (DWORD)InterlockedExchange((LPLONG)&m_dwState, (LONG)dwNewState);} 
  52. }; 
  53.