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