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

  1. _SHDD_H_    EQU    1
  2.  
  3. ;****************************************************************************
  4. ; Module Name: SHDD.H
  5. ;
  6. ; OS/2 2.0 Multimedia Extensions Stream Handler Device Driver Interfaces
  7. ; Block defintions.
  8. ;
  9. ; Copyright (c) International Business Machines Corporation 1990,1991
  10. ;                         All Rights Reserved
  11. ;
  12. ;**************************************************************************  
  13. ;***************************************************************************  
  14. ;                          D E F I N E S                                      
  15. ;***************************************************************************  
  16. ifdef XXXXX                                 ;  Picked up by H2INC only      
  17.                                              ;  when parsed by H2INC.        
  18. endif                                       ;                               
  19. ;***************************************************************************  
  20. ;                        S T R U C T U R E S                                  
  21. ;***************************************************************************  
  22. ;***************************************************************************  
  23. ;****   DDCMD Interface                                                    *  
  24. ;***************************************************************************  
  25. ;  DDCMD Defines   
  26. DDCMD_SETUP    EQU    0 
  27. DDCMD_READ    EQU    1 
  28. DDCMD_WRITE    EQU    2 
  29. DDCMD_STATUS    EQU    3 
  30. DDCMD_CONTROL    EQU    4 
  31. DDCMD_REG_STREAM    EQU    5 
  32. DDCMD_DEREG_STREAM    EQU    6 
  33.  
  34. ddcmd_common_parm    STRUC
  35. comm_ulFunction    DD    ?     ;  Function requested by SH   
  36. comm_hStream    DD    ?        ;  data stream instance       
  37. ddcmd_common_parm    ENDS
  38.  
  39. ddcmd_setup_parm    STRUC
  40. setu_ulFunction    DD    ?     ;  Function requested by SH   
  41. setu_hStream    DD    ?
  42. setu_pSetupParm    DD    ?      ;  see SETUP_PARM struct     
  43. setu_ulSetupParmSize    DD    ? ;  see SETUP_PARM struct     
  44. ddcmd_setup_parm    ENDS
  45.                 ;*********************************************  
  46.                 ;  SETUP_PARM structure                         
  47.                 ;*********************************************  
  48.  
  49. SETUP_PARM    STRUC
  50. setu_parm_ulStreamTime    DD    ? ;  stream time in milliseconds   
  51. setu_parm_ulFlags    DD    ?      ;  various flags (input/output)  
  52.                         ;  NOTE: new fields will be added here                 
  53. SETUP_PARM    ENDS
  54.                 ;*********************************************  
  55.                 ;  ulFlag defines                               
  56.                 ;*********************************************  
  57. SETUP_RECURRING_EVENTS    EQU    00000001H 
  58.                 ;  the device driver sets this flag on return from the       
  59.                 ;  DDCMD_SETUP command if the device driver assumes events   
  60.                 ;  are recurring events---in this case, the stream handler   
  61.                 ;  will not have to re-enable a recurring event each time    
  62.                 ;  the event occurs by sending a DDCMD_CONTROL command to    
  63.                 ;  the device driver.  this is useful when CUE_TIME or       
  64.                 ;  DATA_CUE events are expected to be used as RECURRING      
  65.  
  66. ddcmd_readwrite_parm    STRUC
  67. read_ulFunction    DD    ?     ;  Function requested by SH   
  68. read_hStream    DD    ?
  69. read_pBuffer    DD    ?
  70. read_ulBufferSize    DD    ?
  71. read_pProcessLin    DD    ?
  72. read_fEOS    DD    ?           ;  Is this the EOS buffer???  
  73. read_ulParm1    DD    ?        ;  Reserved for future use    
  74. read_ulParm2    DD    ?        ;  Reserved for future use    
  75. read_ulLength    DD    ?
  76. ddcmd_readwrite_parm    ENDS
  77.  
  78. ddcmd_status_parm    STRUC
  79. stat_ulFunction    DD    ?     ;  Function requested by SH   
  80. stat_hStream    DD    ?
  81. stat_pStatus    DD    ?        ;  (output)ptr to current position time   
  82. stat_ulStatusSize    DD    ?   ;  (output)size of position time          
  83. ddcmd_status_parm    ENDS
  84.                 ;*********************************************  
  85.                 ;  STATUS_PARM structure                        
  86.                 ;*********************************************  
  87.  
  88. STATUS_PARM    STRUC
  89. stat_parm_ulTime    DD    ?       ;  current position time in milliseconds       
  90.                         ;  NOTE: new fields will be added here                               
  91. STATUS_PARM    ENDS
  92.  
  93. ddcmd_control_parm    STRUC
  94. cont_ulFunction    DD    ?     ;  Function requested by SH   
  95. cont_hStream    DD    ?
  96. cont_hEvent    DD    ?         ;  used for EVENTS only                   
  97. cont_ulCmd    DD    ?
  98. cont_pParm    DD    ?          ;  see CONTROL_PARM structure    
  99. cont_ulParmSize    DD    ?     ;  see CONTROL_PARM structure   
  100. ddcmd_control_parm    ENDS
  101.                 ;*********************************************  
  102.                 ;  ulCmd defines                                
  103.                 ;*********************************************  
  104.                                           ;  CHANGE and WAIT not implemented                     
  105. DDCMD_START    EQU    1              ;  start device                                        
  106. DDCMD_STOP    EQU    2              ;  stop device and return current position in pParm    
  107. DDCMD_PAUSE    EQU    3              ;  pause device and return current position in pParm   
  108. DDCMD_RESUME    EQU    4              ;  resume device                                       
  109. DDCMD_ENABLE_EVENT    EQU    5              ;  ask PDD to create this event                        
  110. DDCMD_DISABLE_EVENT    EQU    6              ;  ask PDD to purge this event                         
  111. DDCMD_PAUSE_TIME    EQU    7              ;  pause time keeping, but not the stream              
  112. DDCMD_RESUME_TIME    EQU    8              ;  resume time keeping.                                
  113.                 ;*********************************************  
  114.                 ;  CONTROL_PARM structure                       
  115.                 ;*********************************************  
  116.  
  117. CONTROL_PARM    STRUC
  118. cont_parm_ulTime    DD    ?       ;  time in milliseconds                         
  119.                                               ;  SH sets cuetime when ulCmd is ENABLE_EVENT   
  120.                                               ;  PDD returns current time for STOP, PAUSE     
  121. cont_parm_evcb    DB    SIZE TIME_EVCB DUP (?)
  122. CONTROL_PARM    ENDS
  123.                 ;******************************************************************************  
  124.                 ;  This structure is filled in by the amp mixer based on the instance            
  125.                 ;  data.                                                                         
  126.                 ;******************************************************************************  
  127.  
  128. AUDIOMODE    STRUC
  129. audio_lSRate    DD    ?            ;  sample rate                
  130. audio_lBitsPerSRate    DD    ?     ;  bits per sample            
  131. audio_sChannels    DW    ?        ;  Channels                   
  132. AUDIOMODE    ENDS
  133.  
  134. ddcmd_register_parm    STRUC
  135. regi_ulFunction    DD    ?     ;  Function requested by SH                      
  136. regi_hStream    DD    ?        ;  Stream handle needed @ interrupt time         
  137. regi_ulSysFileNum    DD    ?   ;  Device Handle so pdd can map device instance to hstream   
  138. regi_pSHDEntryPoint    DD    ? ;  Stream handler entry point                    
  139. regi_ulStreamOperation    DD    ? ;  SH input Record or play                    
  140. regi_spcbkey    DB    SIZE SPCBKEY DUP (?)
  141. regi_ulBufSize    DD    ?      ;  PDD output (optional) buffer size in bytes for SPCB   
  142. regi_ulNumBufs    DD    ?      ;  PDD output (optional) # of buffers for SPCB           
  143. regi_ulAddressType    DD    ?  ;  PDD output (required) addr ptr type to data buffer    
  144. regi_ulBytesPerUnit    DD    ? ; PDD output (required)                                  
  145. regi_mmtimePerUnit    DD    ?  ; PDD output (required)                                  
  146. regi_dcbAudio    DB    SIZE E_DCB DUP (?)       ;  SH input Device Control Block   
  147. regi_hid    DD    ?            ;  SH input stream handler id   
  148. regi_AudioMode    DB    SIZE AUDIOMODE DUP (?)    ;  PPC - Audio mode data structure   
  149. ddcmd_register_parm    ENDS
  150.                 ;****************************  
  151.                 ;  ulStreamOperation  defines  
  152.                 ;****************************  
  153. STREAM_OPERATION_MASK    EQU    0C000H 
  154. STREAM_OPERATION_CONSUME    EQU    8000H 
  155. STREAM_OPERATION_PRODUCE    EQU    0C000H 
  156.                 ;******************************************************************************  
  157.                 ;  ulAddressType  defines                                                        
  158.                 ;  The PDD will tell the SH what type of address ptr it expects the data buffer  
  159.                 ;  to be.  The SH will then request this address type to the SSM, so that the    
  160.                 ;  SSM will send the correct type of each buffer request.                        
  161.                 ;******************************************************************************  
  162. ADDRESS_TYPE_VIRTUAL    EQU    0 
  163. ADDRESS_TYPE_PHYSICAL    EQU    1               ; default                    
  164. ADDRESS_TYPE_LINEAR    EQU    2 
  165.  
  166. ddcmd_deregister_parm    STRUC
  167. dere_ulFunction    DD    ?     ;  Function requested by SH   
  168. dere_hStream    DD    ?        ;  Stream handle needed @ interrupt time   
  169. ddcmd_deregister_parm    ENDS
  170. ;***************************************************************************  
  171. ;**** RING 0 Stream Handler SHD Interfaces                                **  
  172. ;***************************************************************************  
  173. ;  RING 0 Stream Handler  SHD's:                                              
  174. SHD_REPORT_INT    EQU    0       ;  PDD reports interrupt has arrived  
  175. SHD_REPORT_EVENT    EQU    1       ;  PDD reports cuetime has arrived    
  176.  
  177. shd_common_parm    STRUC
  178. shdc_ulFunction    DD    ?     ;  Function requested by PDD                 
  179. shdc_hStream    DD    ?        ;  Stream handle needed @ interrupt time     
  180. shd_common_parm    ENDS
  181.  
  182. shd_reportint_parm    STRUC
  183. repi_ulFunction    DD    ?     ;  Function requested by PDD  
  184. repi_hStream    DD    ?        ;  so SH knows which stream to process       
  185. repi_pBuffer    DD    ?        ;  return ptr to last used buffer            
  186. repi_ulFlag    DD    ?         ;  reason for interrupt       
  187. repi_ulStatus    DD    ?       ;  rc or bytes read/written   
  188. repi_ulStreamTime    DD    ?   ;  time in milliseconds of stream position    
  189. shd_reportint_parm    ENDS
  190.                 ;******************  
  191.                 ;  ulFlag settings   
  192.                 ;******************  
  193. ERROR    EQU    80H 
  194. STREAM_STOP_NOW    EQU    40H 
  195. SHD_READ_COMPLETE    EQU    1 
  196. SHD_WRITE_COMPLETE    EQU    2 
  197.  
  198. shd_reportevent_parm    STRUC
  199. repe_ulFunction    DD    ?     ;  Function requested by PDD  
  200. repe_hStream    DD    ?        ;  so SH knows which stream to process       
  201. repe_hEvent    DD    ?         ;  event handle pass back to stream handler  
  202. repe_ulStreamTime    DD    ?   ;  time in milliseconds of stream position    
  203. shd_reportevent_parm    ENDS
  204. ;***************************************************************************  
  205. ;**** RING 3 Stream Handler SHD Interfaces                                **  
  206. ;***************************************************************************  
  207. ;  RING 3 Stream Handler  SHD's: (Uses SpiSendMsg as interface)   
  208. SHC_REPORT_INT    EQU    80000000H    ;  ulMsgType for SHD_REPORT_INT   
  209. SHC_REPORT_EVENT    EQU    80000001H    ;  ulMsgType for SHD_REPORT_EVENT   
  210. ;**********************************************
  211. ;*
  212. ;* MSG_REPORTINT Control Block.
  213. ;*  pMsg field of SpiSendMsg api
  214. ;*
  215. ;*********************************************  
  216.  
  217. MSG_REPORTINT    STRUC
  218. msgrepi_ulMsgLen    DD    ?       ;  Length of structure                       
  219. msgrepi_pBuffer    DD    ?        ;  return ptr to last used buffer            
  220. msgrepi_ulFlag    DD    ?         ;  reason for interrupt                      
  221. msgrepi_ulStatus    DD    ?       ;  rc or bytes read/written                  
  222. msgrepi_ulStreamTime    DD    ?   ;  time in milliseconds of stream position   
  223. MSG_REPORTINT    ENDS
  224.    ;  For ulFlag defines, refer to the _shd_reportint_parm structure   
  225. ;**********************************************
  226. ;*
  227. ;* MSG_REPORTEVENT Control Block.
  228. ;*  pMsg field of SpiSendMsg api
  229. ;*
  230. ;*********************************************  
  231.  
  232. MSG_REPORTEVENT    STRUC
  233. msgrepe_ulMsgLen    DD    ?       ;  Length of structure                        
  234. msgrepe_hevent    DD    ?         ;  event handle pass back to stream handler   
  235. msgrepe_ulStreamTime    DD    ?   ;  time in milliseconds of stream position    
  236. MSG_REPORTEVENT    ENDS
  237. ;***************************************************************************  
  238. ;               F U N C T I O N   P R O T O T Y P E S                         
  239. ;***************************************************************************  
  240.