home *** CD-ROM | disk | FTP | other *** search
/ Team Palmtops 7 / Palmtops_numero07.iso / WinCE / SDKWindowsCE / AutoPC / apcsdk10.exe / data1.cab / Emulation_Include_Files / apcaudio.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-05-13  |  8.2 KB  |  207 lines

  1. #ifndef _APCAUDIO_H_
  2. #define _APCAUDIO_H_
  3.  
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7.  
  8. #include <apcmsg.h>
  9.  
  10. // -----------------------------------------------------------------------------
  11. // APC audio API related Callback window messages
  12. //    Audio Manager API window msgs in 0xBEC0 - 0xBEFF range
  13. // -----------------------------------------------------------------------------
  14. #define WM_AUDSRCSELECT                 (APC_AUD_START+0x10)    //    0xBED0
  15. #define WM_AUDSRCUNSELECT               (APC_AUD_START+0x11)    //    0xBED1
  16. #define WM_AUDSRCREGISTER               (APC_AUD_START+0x18)    //    0xBED8
  17. #define WM_AUDSRCUNREGISTER             (APC_AUD_START+0x19)    //    0xBED9
  18.  
  19. // -----------------------------------------------------------------------------
  20. // AAM Error Handling
  21. // -----------------------------------------------------------------------------
  22. #define WAVERR_BASE             32
  23. #define AAM_ERR_BASE            64
  24. #define AAM_ERR_INVALIDPARAM    (AAM_ERR_BASE+1)
  25. #define AAM_ERR_DEVICEBUSY      (AAM_ERR_BASE+2)
  26. #define AAM_ERR_DEVICEFAIL      (AAM_ERR_BASE+3)
  27. #define AAM_ERR_OUTOFMEMORY     (AAM_ERR_BASE+4)
  28. #define AAM_ERR_ALREADYEXIST    (AAM_ERR_BASE+5)
  29. #define AAM_ERR_NOTFOUND        (AAM_ERR_BASE+6)
  30. #define AAM_ERR_NOTSUPPORTED    (AAM_ERR_BASE+7)
  31. #define AAM_ERR_OUTOFRANGE      (AAM_ERR_BASE+8)
  32.  
  33. // -----------------------------------------------------------------------------
  34. //    The following are the flags used in dwFlags of the AAM functions
  35. // -----------------------------------------------------------------------------
  36.  
  37. //    General AAM flags
  38. #define AAM_FLAG_GET                    0x00000000
  39. #define AAM_FLAG_SET                    0x00000800
  40. #define AAM_FLAG_RANGE                  0x00000400
  41. #define AAM_FLAG_DBBASED                0x00000200
  42. #define AAM_FLAG_CUSTOM                 0x00000100
  43.  
  44. //    Flags used for AAM_VolumeControl
  45. #define AAM_FLAG_VOLUME_MASTER          0x00000001            
  46. #define AAM_FLAG_VOLUME_SOURCE0         0x00000008
  47. #define AAM_FLAG_VOLUME_SOURCE1         0x00000009
  48. #define AAM_FLAG_MUTE_MASTER            0x00000004
  49. #define AAM_FLAG_MUTE_SOURCE0           0x00000002
  50. #define AAM_FLAG_MUTE_SOURCE1           0x00000003
  51. #define AAM_FLAG_BALANCE                0x0000000A
  52. #define AAM_FLAG_FADE                   0x0000000B
  53. #define AAM_FLAG_CENTER                 0x0000000C
  54. #define AAM_FLAG_WOOFER                 0x0000000D
  55.  
  56. #define AAM_FLAG_VOLUME                 AAM_FLAG_VOLUME_MASTER
  57. #define AAM_FLAG_MUTE                   AAM_FLAG_MUTE_SOURCE0
  58.  
  59. //    Flags used for AAM_EQBandControl (mutually exclusive)
  60. #define AAM_FLAG_GAIN                    0x00000001
  61. #define AAM_FLAG_CENTERFREQ                0x00000002
  62. #define AAM_FLAG_BANDWIDTH                0x00000004
  63.  
  64. //    Flags used for AAM_FilterControl
  65. #define AAM_FLAG_CROSSOVER_LPF          0x00000010
  66. #define AAM_FLAG_CROSSOVER_HPF          0x00000020
  67. #define AAM_FLAG_CROSSOVER              0x00000030
  68.  
  69. //    Flag for AAM_AttenuateAudio
  70. #define AAM_FLAG_ATTENUATE_OFF          0x00000010
  71. #define AAM_FLAG_ATTENUATE_ON           0x00000020
  72. #define AAM_FLAG_ATTENUATE_GET          0x00000030
  73. #define AAM_FLAG_ATTENUATE_SET          0x00000040
  74. #define AAM_FLAG_ATTENUATE_RESET        0x00000050
  75.  
  76. //  Flag for up-sampling smoothing LPF
  77. #define AAM_FLAG_LPF_11KHZ                0x00000000
  78. #define AAM_FLAG_LPF_5KHZ                0x00000001
  79.  
  80. // -----------------------------------------------------------------------------
  81. //    EQ specific flags
  82. // -----------------------------------------------------------------------------
  83. //    mask for getting the EQ Caps
  84. #define AAM_FLAG_PRESET_MASK            0xFFFFF000
  85. #define AAM_FLAG_NUMBAND_MASK           0x000000FF
  86.  
  87. //    simple EQ preset controls
  88. #define AAM_FLAG_BASS                    0x00001000
  89. #define AAM_FLAG_TREBLE                    0x00002000
  90. #define AAM_FLAG_LOUDNESS                0x00004000
  91. #define AAM_FLAG_MIDRANGE                0x00008000
  92.  
  93. //    Effects related EQ controls
  94. #define AAM_FLAG_CLASSICAL                0x00010000
  95. #define AAM_FLAG_ROCK                    0x00020000
  96. #define AAM_FLAG_POP                    0x00040000
  97. #define AAM_FLAG_JAZZ                    0x00080000
  98. #define AAM_FLAG_COUNTRY                0x00100000
  99.  
  100. //    Misc EQ related controls
  101. #define AAM_FLAG_TTS                    0x10000000
  102. #define AAM_FLAG_EQBYPASS               0x20000000
  103. #define AAM_FLAG_DEEMPHASIS             0x40000000
  104.  
  105.  
  106. // -----------------------------------------------------------------------------
  107. //    SSD specific flags
  108. // -----------------------------------------------------------------------------
  109. //  SSD features
  110. #define AAM_SSD_MASK                    0xFFFF
  111. #define AAM_SSD_DISABLED                0x0000
  112. #define AAM_SSD_PROLOGIC                0x0001
  113. #define AAM_SSD_DOLBY                   0x0002
  114. #define AAM_SSD_MSV1                    0x0004
  115. #define AAM_SSD_AC3                     0x0008
  116. #define AAM_SSD_THX                     0x0010
  117. #define AAM_SSD_CUSTOM                  0x4000
  118. #define AAM_SSD_DEFAULT                 0xFFFF
  119.  
  120. //    SSD Control flags
  121. #define AAM_FLAG_SSD_TYPE               0x00000001
  122.  
  123. // -----------------------------------------------------------------------------
  124. //    AAM_AudioIoControl specific flags
  125. // -----------------------------------------------------------------------------
  126. #define AAM_FLAG_IEQ                    0x00040000
  127. #define AAM_FLAG_IVOLUME                0x00080000
  128. #define AAM_FLAG_ISSD                   0x00100000
  129.  
  130.  
  131. // -----------------------------------------------------------------------------
  132. //    Audio source control related definitions
  133. // -----------------------------------------------------------------------------
  134.     
  135. // Source control defines
  136. #define AAM_SRC_NAME_LEN                32
  137. #define AAM_SRC_DEVDRV_LEN              64
  138. #define AAM_SRC_BYID                    0x00000000
  139. #define AAM_SRC_BYINDEX                 0x80000000
  140.  
  141. #define AAM_FLAG_SELECTED                0x40000000
  142.  
  143. // Data structures
  144. typedef struct{
  145.     DWORD       m_dwID;                         //  audio source ID
  146.     DWORD       m_dwInfo;                        //  current audio source/device status and device dependency
  147.     WCHAR       m_szDevDrv[AAM_SRC_DEVDRV_LEN]; //  device driver, e.g. DSP1: or WDM device driver path
  148.     WCHAR       m_szName[AAM_SRC_NAME_LEN];     //  name or description
  149.     DWORD       m_dwMisc;                       //  for future extension
  150.     DWORD       m_dwReserve1;                   //  reserved, 
  151.     DWORD       m_dwReserve2;                   //  reserved,
  152. }AAM_SRCCAP;
  153.  
  154. // Audio Source IDs
  155. //    Note: any ID that from 1 to 0xFF is the middle-node device driver
  156. #define AAM_SRC_IDMASK                  0xFFFF
  157.  
  158. // Audio Source Type
  159. #define AAM_SRC_TUNER_TYPE              0x0100
  160. #define AAM_SRC_CD_TYPE                 0x0200
  161. #define AAM_SRC_AUX_TYPE                0x0400
  162. #define AAM_SRC_PHONE_TYPE              0x0800
  163.  
  164. // Audio Sources
  165. #define AAM_SRC_NOSOURCE                0x0000
  166. #define AAM_SRC_TUNER                   (AAM_SRC_TUNER_TYPE|1)
  167. #define AAM_SRC_TUNER2                  (AAM_SRC_TUNER_TYPE|2)
  168. #define AAM_SRC_CD                      (AAM_SRC_CD_TYPE|0x01)
  169. #define AAM_SRC_CDCHANGER               (AAM_SRC_CD_TYPE|0x11)
  170. #define AAM_SRC_CDCHANGER2              (AAM_SRC_CD_TYPE|0x12)
  171. #define AAM_SRC_AUX1                    (AAM_SRC_AUX_TYPE|1)
  172. #define AAM_SRC_AUX2                    (AAM_SRC_AUX_TYPE|2)
  173. #define AAM_SRC_PHONE                   (AAM_SRC_PHONE_TYPE|1)
  174.  
  175. //--------------------------------------------------------------------
  176. //    Audio Manager API functions
  177. //--------------------------------------------------------------------
  178.  
  179. //    Volume API
  180. DWORD AAM_VolumeControl(DWORD dwFlag, LONG* pValue);
  181.  
  182. //    Source Control API
  183. DWORD AAM_GetNumSources(void);
  184. DWORD AAM_GetSourceCap(DWORD, AAM_SRCCAP*);
  185. DWORD AAM_RegisterCallback(DWORD, BOOL);
  186. DWORD AAM_SelectSource(DWORD);
  187.  
  188. //    SSD API
  189. DWORD AAM_GetSSDCaps(DWORD* pdwCap);
  190. DWORD AAM_SSDControl(DWORD dwFlag, LONG* plValue);
  191. DWORD AAM_EnableSSD(BOOL bEnable);
  192.  
  193. //    EQ API
  194. DWORD AAM_GetEQCaps(DWORD* pdwCap);
  195. DWORD AAM_EQPreset(DWORD dwFlag, LONG* plValue);
  196. DWORD AAM_EQBandControl(DWORD dwIndex, DWORD dwFlag, LONG* plValue);
  197. DWORD AAM_FilterControl(DWORD dwFlag, DWORD* plEnable, DWORD* lpFreq);
  198.  
  199. //    Misc API
  200. DWORD AAM_AudioIoControl(DWORD dwFlag, DWORD dwIoControlCode, LPVOID lpInBuf, DWORD nInBufSize, LPVOID lpOutBuf, DWORD nOutBufSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped);
  201.  
  202. #ifdef __cplusplus
  203. }
  204. #endif
  205.  
  206. #endif
  207.