AudioDrv.h
上传用户:dzdeming
上传日期:2022-08-03
资源大小:381k
文件大小:7k
源码类别:

Windows CE

开发平台:

Visual C++

  1. #ifndef AUDIO_DRV_H
  2. #define AUDIO_DRV_H
  3. #include "def.h"
  4. #define HWAVEOUT U32
  5. #define LPHWAVEOUT HWAVEOUT *
  6. #define HWAVEIN HWAVEOUT
  7. #define LPHWAVEIN HWAVEIN *
  8. #define LPDWORD U32 *
  9. #define MMRESULT U32
  10. #define MMSYSERR_BASE  0
  11. #define WAVERR_BASE  32
  12. #define MMSYSERR_NOERROR  (MMSYSERR_BASE+0) 
  13. #define MMSYSERR_BADDEVICEID  (MMSYSERR_BASE+2)
  14. #define MMSYSERR_INVALHANDLE  (MMSYSERR_BASE+5)
  15. #define MMSYSERR_NOMEM  (MMSYSERR_BASE+7) 
  16. #define MMSYSERR_NOTSUPPORTED  (MMSYSERR_BASE+8)
  17. #define WAVERR_BADFORMAT  (WAVERR_BASE+0) 
  18. #define WAVERR_STILLPLAYING  (WAVERR_BASE+1)
  19. #define WAVERR_UNPREPARED  (WAVERR_BASE+2) 
  20. #define WAVERR_SYNC  (WAVERR_BASE+3) 
  21. typedef struct tWAVEFORMATEX{
  22. WORD wFormatTag;
  23. WORD nChannels;
  24. DWORD nSamplesPerSec;
  25. DWORD nAvgBytesPerSec;
  26. WORD nBlockAlign;
  27. WORD wBitsPerSample;
  28. WORD cbSize;
  29. }WAVEFORMATEX, *LPWAVEFORMATEX;
  30. typedef struct wavehdr_tag{
  31. LPSTR lpData;
  32. DWORD dwBufferLength;
  33. DWORD dwBytesRecorded;
  34. DWORD dwUser;
  35. DWORD dwFlags;
  36. DWORD dwLoops;
  37. struct wavehdr_tag *lpNext;
  38. DWORD reserved;
  39. }WAVEHDR, *LPWAVEHDR;
  40. MMRESULT waveOutOpen(
  41. LPHWAVEOUT phwo,
  42. UINT uDeviceID,
  43. LPWAVEFORMATEX pwfx,
  44. DWORD dwCallback,
  45. DWORD dwCallbackInstance,
  46. DWORD fdwOpen
  47. );
  48. MMRESULT waveOutClose(HWAVEOUT hwo);
  49. MMRESULT waveOutPrepareHeader(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh);
  50. MMRESULT waveOutUnprepareHeader(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh);
  51. MMRESULT waveOutWrite(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh);
  52. MMRESULT waveOutSetVolume(HWAVEOUT hwo, DWORD dwVolume);
  53. MMRESULT waveOutGetVolume(HWAVEOUT hwo, LPDWORD pdwVolume);
  54. MMRESULT waveOutPause (HWAVEOUT hwo);
  55. MMRESULT waveOutRestart(HWAVEOUT hwo);
  56. MMRESULT waveOutReset (HWAVEOUT hwo);
  57. /*******************************************************************/
  58. MMRESULT waveInOpen(
  59. LPHWAVEIN phwi,
  60. UINT uDeviceID,
  61. LPWAVEFORMATEX pwfx,
  62. DWORD dwCallback,
  63. DWORD dwCallbackInstance,
  64. DWORD fdwOpen
  65. );
  66. MMRESULT waveInClose(HWAVEOUT hwi);
  67. MMRESULT waveInStart(HWAVEIN hwi);
  68. MMRESULT waveInStop(HWAVEIN hwi);
  69. MMRESULT waveInPrepareHeader(HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh);
  70. MMRESULT waveInUnprepareHeader(HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh);
  71. MMRESULT waveInAddBuffer(HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh);
  72. MMRESULT waveInReset(HWAVEOUT hwi);
  73. #define WAVE_FORMAT_UNKNOWN  0x0000 //Microsoft Corporation
  74. #define WAVE_FORMAT_PCM  0x0001 //PCM data format 
  75. #define WAVE_FORMAT_ADPCM  0x0002 //Microsoft Corporation 
  76. #define WAVE_FORMAT_IEEE_FLOAT  0x0003 //Microsoft Corporation 
  77. #define WAVE_FORMAT_IBM_CVSD  0x0005 //IBM Corporation 
  78. #define WAVE_FORMAT_ALAW  0x0006 //Microsoft Corporation 
  79. #define WAVE_FORMAT_MULAW  0x0007 //Microsoft Corporation 
  80. #define WAVE_FORMAT_OKI_ADPCM  0x0010 //OKI 
  81. #define WAVE_FORMAT_DVI_ADPCM  0x0011 //Intel Corporation 
  82. #define WAVE_FORMAT_IMA_ADPCM  0x0011  //Intel Corporation 
  83. #define WAVE_FORMAT_MEDIASPACE_ADPCM  0x0012 //Videologic 
  84. #define WAVE_FORMAT_SIERRA_ADPCM  0x0013  //Sierra Semiconductor Corp 
  85. #define WAVE_FORMAT_G723_ADPCM  0x0014 //Antex Electronics Corporation 
  86. #define WAVE_FORMAT_DIGISTD  0x0015 //DSP Solutions, Inc. 
  87. #define WAVE_FORMAT_DIGIFIX  0x0016 //DSP Solutions, Inc. 
  88. #define WAVE_FORMAT_DIALOGIC_OKI_ADPCM  0x0017  //Dialogic Corporation 
  89. #define WAVE_FORMAT_MEDIAVISION_ADPCM  0x0018  //Media Vision, Inc. 
  90. #define WAVE_FORMAT_YAMAHA_ADPCM  0x0020 //Yamaha Corporationof America 
  91. #define WAVE_FORMAT_SONARC  0x0021 //Speech Compression 
  92. #define WAVE_FORMAT_DSPGROUP_TRUESPEECH  0x0022  //DSP Group, Inc 
  93. #define WAVE_FORMAT_ECHOSC1  0x0023  //Echo Speech Corporation 
  94. #define WAVE_FORMAT_AUDIOFILE_AF36  0x0024
  95. #define WAVE_FORMAT_APTX  0x0025 //Audio Processing Technology 
  96. #define WAVE_FORMAT_AUDIOFILE_AF10  0x0026
  97. #define WAVE_FORMAT_DOLBY_AC2  0x0030 //Dolby Laboratories 
  98. #define WAVE_FORMAT_GSM610  0x0031 //Microsoft Corporation 
  99. #define WAVE_FORMAT_MSNAUDIO  0x0032  //Microsoft Corporation 
  100. #define WAVE_FORMAT_ANTEX_ADPCME  0x0033 //Antex Electronics Corporation 
  101. #define WAVE_FORMAT_CONTROL_RES_VQLPC 0x0034  //Control Resources Limited
  102. #define WAVE_FORMAT_DIGIREAL  0x0035 //DSP Solutions, Inc. 
  103. #define WAVE_FORMAT_DIGIADPCM  0x0036 //DSP Solutions, Inc. 
  104. #define WAVE_FORMAT_CONTROL_RES_CR10  0x0037  //Control Resources Limited 
  105. #define WAVE_FORMAT_NMS_VBXADPCM  0x0038 //Natural MicroSystems 
  106. #define WAVE_FORMAT_CS_IMAADPCM  0x0039 //Crystal Semiconductor IMA ADPCM 
  107. #define WAVE_FORMAT_ECHOSC3  0x003A //Echo Speech Corporation 
  108. #define WAVE_FORMAT_ROCKWELL_ADPCM  0x003B //Rockwell International
  109. #define WAVE_FORMAT_ROCKWELL_DIGITALK 0x003C  //Rockwell International
  110. #define WAVE_FORMAT_XEBEC  0x003D //Xebec Multimedia Solutions Limited 
  111. #define WAVE_FORMAT_G721_ADPCM  0x0040 //Antex Electronics Corporation 
  112. #define WAVE_FORMAT_G728_CELP  0x0041 //Antex Electronics Corporation 
  113. #define WAVE_FORMAT_MPEG  0x0050 //Microsoft Corporation 
  114. #define WAVE_FORMAT_MPEGLAYER3  0x0055 //ISO/MPEG Layer3 Format Tag 
  115. #define WAVE_FORMAT_CIRRUS  0x0060 //Cirrus Logic
  116. #define WAVE_FORMAT_ESPCM  0x0061 //ESS Technology
  117. #define WAVE_FORMAT_VOXWARE  0x0062 //Voxware Inc
  118. #define WAVEFORMAT_CANOPUS_ATRAC  0x0063 //Canopus, co., Ltd. 
  119. #define WAVE_FORMAT_G726_ADPCM  0x0064 //APICOM
  120. #define WAVE_FORMAT_G722_ADPCM  0x0065 //APICOM 
  121. #define WAVE_FORMAT_DSAT  0x0066 //Microsoft Corporation
  122. #define WAVE_FORMAT_DSAT_DISPLAY  0x0067 //Microsoft Corporation
  123. #define WAVE_FORMAT_SOFTSOUND  0x0080 //Softsound, Ltd. 
  124. #define WAVE_FORMAT_RHETOREX_ADPCM  0x0100 //Rhetorex Inc
  125. #define WAVE_FORMAT_CREATIVE_ADPCM  0x0200 //Creative Labs, Inc 
  126. #define WAVE_FORMAT_CREATIVE_FASTSPEECH8 0x0202 //Creative Labs, Inc 
  127. #define WAVE_FORMAT_CREATIVE_FASTSPEECH10 0x0203  //Creative Labs, Inc 
  128. #define WAVE_FORMAT_QUARTERDECK 0x0220  //Quarterdeck Corporation 
  129. #define WAVE_FORMAT_FM_TOWNS_SND  0x0300 //Fujitsu Corp. 
  130. #define WAVE_FORMAT_BTV_DIGITAL  0x0400 //Brooktree Corporation 
  131. #define WAVE_FORMAT_OLIGSM  0x1000  //Ing C. Olivetti & C., S.p.A. 
  132. #define WAVE_FORMAT_OLIADPCM  0x1001 //Ing C. Olivetti & C., S.p.A. 
  133. #define WAVE_FORMAT_OLICELP  0x1002 //Ing C. Olivetti & C., S.p.A. 
  134. #define WAVE_FORMAT_OLISBC  0x1003  //Ing C. Olivetti & C., S.p.A. 
  135. #define WAVE_FORMAT_OLIOPR  0x1004 //Ing C. Olivetti & C., S.p.A. 
  136. #define WAVE_FORMAT_LH_CODEC  0x1100 //Lernout & Hauspie 
  137. #define WAVE_FORMAT_NORRIS  0x1400  //Norris Communications, Inc. 
  138. #define WAVE_FORMAT_DEVELOPMENT  (0xFFFF)//development a new wave forma
  139. typedef void (*CallBackProc)(HWAVEOUT handle, UINT uMsg, DWORD dwInstance, DWORD dwParam1, DWORD dwParam2);
  140. #endif /* AUDIO_DRV_H */