home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tolkit45.zip / os2tk45 / inc / audio.inc < prev    next >
Text File  |  1999-04-30  |  15KB  |  398 lines

  1. ;***************************************************************************  
  2. ;                                                                             
  3. ;  Module Name: AUDIO.H                                                       
  4. ;                                                                             
  5. ;  OS/2 2.0 Multimedia Extensions Audio Structures and definitions.           
  6. ;                                                                             
  7. ;  Copyright (c) International Business Machines Corporation 1991, 1992       
  8. ;                         All Rights Reserved                                 
  9. ;                                                                             
  10. ;***************************************************************************  
  11. ; -------------------------------------------------------------------------*
  12. ; AUDIODD version level
  13. ;-------------------------------------------------------------------------  
  14. CURRENT_VERSION    EQU    01020000H 
  15. ; -------------------------------------------------------------------------*
  16. ; Control definitions
  17. ;-------------------------------------------------------------------------  
  18. AUDIO_IOCTL_CAT    EQU    80H 
  19. AUDIO_INIT    EQU    40H 
  20. AUDIO_STATUS    EQU    41H 
  21. AUDIO_CONTROL    EQU    42H 
  22. AUDIO_BUFFER    EQU    43H 
  23. AUDIO_LOAD    EQU    44H 
  24. AUDIO_WAIT    EQU    45H 
  25. AUDIO_HPI    EQU    46H 
  26. AUDIO_CAPABILITY    EQU    48H 
  27. MIX_GETCONNECTIONS    EQU    60H 
  28. MIX_SETCONNECTIONS    EQU    61H 
  29. MIX_GETLINEINFO    EQU    62H 
  30. MIX_GETCONTROL    EQU    63H 
  31. MIX_SETCONTROL    EQU    64H 
  32. ; -------------------------------------------------------------------------*
  33. ; AUDIO_INIT declarations and defines
  34. ;-------------------------------------------------------------------------  
  35. LOAD_PATH    EQU    260 
  36. ;  Values for AUDIO_INIT.sMode    
  37. ADPCM    EQU    1                        ;  AVC type ADPCM                  
  38. PCM    EQU    2                        ;  Pulse Coded Modulation          
  39. MU_LAW    EQU    3                        ;  mu-law                          
  40. MIDI    EQU    4                        ;  MIDI data                       
  41. A_LAW    EQU    5                        ;  a-law                           
  42. SOURCE_MIX    EQU    6                      ;  External audio source           
  43. SPV2    EQU    7                        ;  Speech Viewer/2                 
  44. ADPCMXA    EQU    8                        ;  XA CD ROM                       
  45. SPV2BCPCM    EQU    25                 ;  Speech Viewer/2                 
  46. SPV2PCM    EQU    26 
  47. SPV2NONE    EQU    27 
  48. IDLE    EQU    999 
  49. CLAIM_HDWR    EQU    32000                  ;  Serialize access to hardware    
  50. ;  Values for AUDIO_INIT.ulFlags          
  51. FIXED    EQU    00000001H l    ;  Fixed length data               
  52. LEFT_ALIGNED    EQU    00000002H l    ;  Left align bits on byte bndry   
  53. RIGHT_ALIGNED    EQU    00000004H l    ;  Right align bits on byte bndry  
  54. TWOS_COMPLEMENT    EQU    00000008H l    ;  2's complement data             
  55. SIGNED    EQU    00000010H l    ;  Signed data                     
  56. BIG_ENDIAN    EQU    00000020H l    ;  MSB's first (motorola format)   
  57. RIFF_DATATYPE    EQU    00000040H l    ;  sMode contains a RIFF datatype  
  58. PITCH    EQU    00100000H l    ;  Pitch control is supported      
  59. INPUT    EQU    00200000H l    ;  Input select is supported       
  60. OUTPUT    EQU    00400000H l    ;  Output select is supported      
  61. MONITOR    EQU    00800000H l    ;  Monitor is supported            
  62. VOLUME    EQU    01000000H l    ;  Volume control is supported     
  63. VOLUME_DELAY    EQU    02000000H l    ;  Volume delay is supported       
  64. BALANCE    EQU    04000000H l    ;  Balance control is supported    
  65. BALANCE_DELAY    EQU    08000000H l    ;  Balance delay is supported      
  66. TREBLE    EQU    10000000H l    ;  Treble control is supported     
  67. BASS    EQU    20000000H l    ;  Bass control supported          
  68. BESTFIT_PROVIDED    EQU    40000000H l    ;  bestfit returned                
  69. LOAD_CODE    EQU    80000000H l    ;  DSP load needed                 
  70. ;  Values for AUDIO_INIT.ulOperation      
  71. OPERATION_PLAY    EQU    1 
  72. OPERATION_RECORD    EQU    2 
  73. PLAY_AND_RECORD    EQU    3 
  74. ANALYSIS    EQU    6               ;  Speech Viewer/2                 
  75. DISTANCE    EQU    7               ;  Speech Viewer/2                 
  76. MIGRATION    EQU    8               ;  Speech Viewer/2                 
  77. ;  Values for AUDIO_INIT.sReturnCode      
  78. NO_PLAY    EQU    1 
  79. NO_RECORD    EQU    2 
  80. NO_RECORD_AND_PLAY    EQU    3 
  81. INVALID_REQUEST    EQU    4 
  82. CONFLICT    EQU    5 
  83. OVERLOADED    EQU    6 
  84. DOWNLEVEL_DD    EQU    7   ;  DD is down level from appl.     
  85. DSP_LOAD_PENDING_ON_OTHER_TRK    EQU    8   ;  Other trk hasn't loaded dsp     
  86. AUDIO_IGNORE    EQU    -1 
  87. ;  Values for AUDIO_INIT.sDeviceID        
  88. MINIDD    EQU    0 
  89. ACPA    EQU    1 
  90. MACPA    EQU    2 
  91. MPU401    EQU    3 
  92. SOUND_BLASTER    EQU    4 
  93. IMF    EQU    5 
  94. PS1    EQU    6 
  95. PAS16    EQU    7 
  96. ;  AUDIO_INIT structure declaration       
  97.  
  98. init    STRUC
  99. init_lSRate    DD    ?
  100. init_lBitsPerSRate    DD    ?
  101. init_lBsize    DD    ?
  102. init_sMode    DW    ?
  103. init_sChannels    DW    ?
  104. init_lResolution    DD    ?
  105. init_abLoadPath    DB    LOAD_PATH DUP (?)
  106. init_ulFlags    DD    ?
  107. init_ulOperation    DD    ?
  108. init_sReturnCode    DW    ?
  109. init_sSlotNumber    DW    ?
  110. init_sDeviceID    DW    ?
  111. init_pvReserved    DD    ?       ;  MMPM2 uses this to pass back sysfilenum   
  112. init_ulVersionLevel    DD    ?
  113. init    ENDS
  114. ; -------------------------------------------------------------------------*
  115. ; AUDIO_DEVID declarations and defines
  116. ;-------------------------------------------------------------------------  
  117.  
  118. MCI_AUDIO_DEVID    STRUC
  119. devid_ulDevType    DD    ?
  120. devid_ulDevNum    DD    ?
  121. MCI_AUDIO_DEVID    ENDS
  122. ;  Input devices          
  123. NULL_INPUT    EQU    0 
  124. STEREO_LINE_INPUT    EQU    1 
  125. LEFT_LINE_INPUT    EQU    2 
  126. RIGHT_LINE_INPUT    EQU    3 
  127. MIC_INPUT    EQU    4 
  128. BOOSTED_MIC_INPUT    EQU    5 
  129. PHONE_LINE_INPUT    EQU    6 
  130. HANDSET_INPUT    EQU    7 
  131. SYNTH_INPUT    EQU    8 
  132. DIGITAL_PHONE_LINE_INPUT    EQU    9 
  133. DIGITAL_HANDSET_INPUT    EQU    10 
  134. MIDI_IN_PORT    EQU    11 
  135. LOOPBACK    EQU    11 
  136. DEFAULT_INPUT    EQU    0FFFFFFFFH 
  137. ;  Output devices         
  138. NULL_OUTPUT    EQU    0 
  139. STEREO_LINE_OUTPUT    EQU    1 
  140. LEFT_LINE_OUTPUT    EQU    2 
  141. RIGHT_LINE_OUTPUT    EQU    3 
  142. SPEAKER_OUTPUT    EQU    4 
  143. HEADSET_OUTPUT    EQU    5 
  144. PHONE_LINE_OUTPUT    EQU    6 
  145. HANDSET_OUTPUT    EQU    7 
  146. SYNTH_OUTPUT    EQU    8 
  147. DIGITAL_PHONE_LINE_OUTPUT    EQU    9 
  148. DIGITAL_HANDSET_OUTPUT    EQU    10 
  149. MIDI_OUT_PORT    EQU    11 
  150. DEFAULT_OUTPUT    EQU    0FFFFFFFFH 
  151. ;  Defined values for DevNum      
  152. DEFAULT_DEVICE    EQU    0 
  153. DEVICE_1    EQU    1 
  154. DEVICE_2    EQU    2 
  155. ; -------------------------------------------------------------------------*
  156. ; Valid Return codes for the ulSupport field of MCI_AUDIO_CAPS
  157. ;-------------------------------------------------------------------------  
  158. SUPPORT_SUCCESS    EQU    00000000H 
  159. UNSUPPORTED_RATE    EQU    00000001H 
  160. UNSUPPORTED_CHANNELS    EQU    00000002H 
  161. UNSUPPORTED_BPS    EQU    00000004H 
  162. UNSUPPORTED_DATATYPE    EQU    00000008H 
  163. UNSUPPORTED_OPERATION    EQU    00000010H 
  164.  
  165. MCI_AUDIO_CAPS    STRUC
  166. ulLength    DD    ?                 ;  in     Structure length                      
  167. ulSamplingRate    DD    ?           ;  in out Sampling rate to query                
  168. ulChannels    DD    ?               ;  in out Channels to query                     
  169. ulBitsPerSample    DD    ?          ;  in out BPS to query                          
  170. ulDataType    DD    ?               ;  in out RIFF Datatype to query                
  171. ulOperation    DD    ?              ;  in out OPERATION_PLAY or OPERATION_RECORD    
  172. ulSupport    DD    ?                ;     out BOOLEAN-does DD support this mode     
  173. ulDataSubType    DD    ?            ;     out Data-subtype to use                   
  174. ulResourceUnits    DD    ?          ;     out Resource units this mode              
  175. ulResourceClass    DD    ?          ;     out Resource class for this mode          
  176. ulBlockAlign    DD    ?             ;     out Block alignment for this mode.        
  177. fCanRecord    DD    ?               ;     out Is recording possbile - this mode     
  178. ulFlags    DD    ?                  ;     out                                       
  179. ulCapability    DD    ?             ;     out Capability of the device.             
  180. MCI_AUDIO_CAPS    ENDS
  181. ; -------------------------------------------------------------------------*
  182. ; Valid Return codes for the ul field of MCI_AUDIO_CAPS
  183. ;-------------------------------------------------------------------------  
  184. SUPPORT_MIX    EQU    00000001H  ;  supports mixer functions             
  185. SUPPORT_RIFF_MODES    EQU    00000002H  ;  supports RIFF modes for AUDIO_INIT   
  186. SUPPORT_CAP    EQU    80000000H  ;  Capability IOCTL supported           
  187. ; -------------------------------------------------------------------------*
  188. ; AUDIO_CHANGE declarations and defines
  189. ;-------------------------------------------------------------------------  
  190. ;  Values for AUDIO_CHANGE.lMonitor       
  191. MONITOR_OFF    EQU    0 
  192. MONITOR_UNCOMPRESSED    EQU    1 
  193. MONITOR_COMPRESSED    EQU    2 
  194. ;  Values for AUDIO_CHANGE.lInput         
  195. HIGH_GAIN_MIC    EQU    0 
  196. LINE_1    EQU    1 
  197. LINE_2    EQU    2 
  198. LINES_1AND2    EQU    3 
  199. LOW_GAIN_MIC    EQU    4 
  200. ALL_LINES    EQU    0FFFFH 
  201. INPUTS_LISTED    EQU    5555H 
  202. ;  Values for AUDIO_CHANGE.lOutput        
  203. EXTERNAL_SPEAKER    EQU    1 
  204. INTERNAL_SPEAKER    EQU    2 
  205. OUTPUT_1    EQU    4 
  206. OUTPUTS_LISTED    EQU    5555H 
  207. ;  AUDIO_CHANGE structure declaration     
  208.  
  209. MCI_AUDIO_CHANGE    STRUC
  210. chang_pvDevInfo    DD    ?
  211. chang_lInput    DD    ?
  212. chang_lOutput    DD    ?
  213. chang_lMonitor    DD    ?
  214. chang_lVolume    DD    ?
  215. chang_lVolumeDelay    DD    ?
  216. chang_lBalance    DD    ?
  217. chang_lBalanceDelay    DD    ?
  218. chang_lTreble    DD    ?
  219. chang_lBass    DD    ?
  220. chang_lPitch    DD    ?
  221. chang_rInputList    DB    SIZE MCI_AUDIO_DEVID * 8 DUP (?)
  222. chang_rOutputList    DB    SIZE MCI_AUDIO_DEVID * 8 DUP (?)
  223. chang_prMoreInputs    DD    ?
  224. chang_prMoreOutputs    DD    ?
  225. chang_lGain    DD    ?
  226. chang_pvModeInfo    DD    ?
  227. MCI_AUDIO_CHANGE    ENDS
  228.  
  229. mode_info    STRUC
  230. mode_info_sTempo    DW    ?
  231. mode_info_sCPQN    DW    ?
  232. mode_info_sMidiSwitches    DW    ?
  233. mode_info_sReserved    DW    5 DUP (?)
  234. mode_info    ENDS
  235. ;*************************************************************************
  236. ;  MIDI Switches
  237. ;*************************************************************************  
  238. MIDI_THRU_THRU    EQU    0 
  239. MIDI_THRU_OUT    EQU    1 
  240. ; -------------------------------------------------------------------------*
  241. ; AUDIO_STATUS declarations and defines
  242. ;-------------------------------------------------------------------------  
  243. ;  Values for AUDIO_STATUS.ulOperation    
  244. STOPPED    EQU    0 
  245. PLAYING    EQU    1 
  246. RECORDING    EQU    2 
  247. PLAYING_AND_RECORDING    EQU    3 
  248. UNITIALIZED    EQU    0FFFFFFFFH 
  249. ;  AUDIO_STATUS structure declaration     
  250.  
  251. status    STRUC
  252. status_lSRate    DD    ?
  253. status_lBitsPerSRate    DD    ?
  254. status_lBsize    DD    ?
  255. status_sMode    DW    ?
  256. status_sChannels    DW    ?
  257. status_ulFlags    DD    ?
  258. status_ulOperation    DD    ?
  259. status_rAudioChange    DB    SIZE MCI_AUDIO_CHANGE DUP (?)
  260. status    ENDS
  261. ; -------------------------------------------------------------------------*
  262. ; AUDIO_CONTROL declarations and defines
  263. ;-------------------------------------------------------------------------  
  264. ;  Values for AUDIO_CONTROL.usIOCtlRequest        
  265. AUDIO_CHANGE    EQU    0 
  266. AUDIO_START    EQU    1 
  267. AUDIO_STOP    EQU    2 
  268. AUDIO_PAUSE    EQU    3 
  269. AUDIO_RESUME    EQU    4 
  270. ;  Values for AUDIO_CONTROL.sReturnCode   
  271. AC_UNINITED    EQU    1        ;  Device must be init'ed or loaded first      
  272. FULL_QUEUE    EQU    2        ;  Maximum # requests exceeded          
  273. AC_UNPAUSED    EQU    3        ;  Resume issued, but dev not paused    
  274. INVALID_REQUEST    EQU    4        ;  bad audio_control.ioctl_request      
  275. AC_UNSTARTED    EQU    5        ;  Device must be started first         
  276. INVALID_INPUT_LIST    EQU    7        ;  invalid change.input_list entry      
  277. INVALID_OUTPUT_LIST    EQU    8        ;  invalid change.output_list entry     
  278. ;  AUDIO_CONTROL structure declaration    
  279.  
  280. contr    STRUC
  281. contr_usIOCtlRequest    DW    ?
  282. contr_pbRequestInfo    DD    ?
  283. contr_ulPosition    DD    ?
  284. contr_sReturnCode    DW    ?
  285. contr    ENDS
  286. ; -------------------------------------------------------------------------*
  287. ; AUDIO_BUFFER declarations and defines
  288. ;-------------------------------------------------------------------------  
  289. ;  Values for AUDIO_BUFFER.ulFlags        
  290. AUDIO_UNDERRUN    EQU    1 
  291. AUDIO_OVERRUN    EQU    2 
  292. ;  Values for AUDIO_BUFFER.ulPositionType         
  293. POS_MSECS    EQU    0 
  294. MIDI_CLOCKS    EQU    1 
  295. SMPTE_24    EQU    24 
  296. SMPTE_25    EQU    25 
  297. SMPTE_30DF    EQU    29 
  298. SMPTE_30    EQU    30 
  299.  
  300. buffer    STRUC
  301. buffer_ulFlags    DD    ?
  302. buffer_ulReadBufSize    DD    ?
  303. buffer_ulWriteBufSize    DD    ?
  304. buffer_ulReadBufTime    DD    ?
  305. buffer_ulWriteBufTime    DD    ?
  306. buffer_ulReadBufMax    DD    ?
  307. buffer_ulWriteBufMax    DD    ?
  308. buffer_ulPosition    DD    ?
  309. buffer_ulPositionType    DD    ?
  310. buffer_lReadBufCap    DD    ?
  311. buffer_lWriteBufCap    DD    ?
  312. buffer_lRequestBufCap    DD    ?
  313. buffer    ENDS
  314. ; -------------------------------------------------------------------------*
  315. ; AUDIO_LOAD declarations and defines
  316. ;-------------------------------------------------------------------------  
  317. ;  Values for AUDIO_LOAD.ulFlags          
  318. LOAD_START    EQU    01H 
  319. LOAD_END    EQU    02H 
  320. LOAD_32BIT    EQU    10H 
  321.  
  322. load    STRUC
  323. load_pbBuffer    DD    ?
  324. load_ulSize    DD    ?
  325. load_ulFlags    DD    ?
  326. load    ENDS
  327. ; -------------------------------------------------------------------------*
  328. ; Track info declarations and defines
  329. ;-------------------------------------------------------------------------  
  330. ;  Track Info structure declaration       
  331.  
  332. info    STRUC
  333. info_usMasterVolume    DW    ?
  334. info_usDitherPct    DW    ?             ;  Percent of a bit dither during record    
  335. info_usMasterVolumeDelay    DW    ?
  336. info_usMasterBalance    DW    ?
  337. info_usMasterBalanceDelay    DW    ?
  338. info    ENDS
  339. ; -------------------------------------------------------------------------*
  340. ; IOBUFFER declarations and defines
  341. ;-------------------------------------------------------------------------  
  342. STARTED    EQU    1 
  343. PAUSED    EQU    2 
  344.  
  345. MCI_AUDIO_IOBUFFER    STRUC
  346. iobuffer_lSize    DD    ?
  347. iobuffer_pHead    DD    ?
  348. iobuffer_pTail    DD    ?
  349. iobuffer_lCount    DD    ?
  350. iobuffer_ulPosition    DD    ?
  351. iobuffer_lDelay    DD    ?
  352. iobuffer_usRunFlags    DW    ?
  353. iobuffer_usSelInc    DW    ?
  354. iobuffer_pBuffer    DD    ?
  355. MCI_AUDIO_IOBUFFER    ENDS
  356. ; -------------------------------------------------------------------------*
  357. ; AUDIO_HPI declarations and defines
  358. ;-------------------------------------------------------------------------  
  359. CBXMIT    EQU    1 
  360. CBREC    EQU    2 
  361. CRTIMER    EQU    4 
  362. EP_OPEN    EQU    0 
  363. EP_CLOSE    EQU    1 
  364. EP_READ    EQU    2 
  365. EP_WRITE    EQU    3 
  366. EP_INIT    EQU    4 
  367. EP_STATUS    EQU    5 
  368. EP_CONTROL    EQU    6 
  369. EP_BUFFER    EQU    7 
  370. EP_LOAD    EQU    8 
  371. EP_WAIT    EQU    9 
  372.  
  373. hpi    STRUC
  374. hpi_pvEntry    DD    ?
  375. hpi_pvCallBack    DD    ?
  376. hpi_prXBuff    DD    ?
  377. hpi_prRBuff    DD    ?
  378. hpi_usFlags    DW    ?
  379. hpi    ENDS
  380. ;*************************  
  381. ;  AUDIO_UPDATE Structure   
  382. ;*************************  
  383.  
  384. audio_update    STRUC
  385. update_iobuf_type    DB    ?              ;  0 - XMITIO, 1 - RECIO to be updated        
  386. update_buffer_address    DD    ?     ;  address to buffer to be added to array     
  387. update_buffer_length    DD    ?          ;  length of buffer to be added               
  388. update_rc    DW    ?                    ;  return code                                
  389. update_reserved    DD    ?           ;  future use                                 
  390. audio_update    ENDS
  391. ;  audio_update.iobuf_type definitions                                        
  392. XMIT_IOBUF    EQU    0 
  393. REC_IOBUF    EQU    1 
  394. ;  audio_update.rc definitions                                                
  395. MAX_NUM_BUFFERS_REACHED    EQU    9 
  396. UPDATE_GENERAL_FAILURE    EQU    10 
  397. INVALID_BUFFER_LENGTH    EQU    11 
  398.