home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / warptlk3.zip / TOOLKIT / H / MMDRVOS2.H < prev    next >
C/C++ Source or Header  |  1995-08-24  |  14KB  |  259 lines

  1. #ifndef MMDRVOS2_H
  2. #define MMDRVOS2_H
  3.  
  4. /****************************************************************************/
  5. /*                                                                          */
  6. /* Module Name: MMDRVOS2.H                                                  */
  7. /*                                                                          */
  8. /* This is the multimedia include file that has the typedefs, defines and   */
  9. /* function prototyes for MCI drivers using OS2 notation.                   */
  10. /*                                                                          */
  11. /*         Copyright (c) International Business Machines Corporation        */
  12. /*                          1991, 1992, 1993                                */
  13. /*                        All Rights Reserved                               */
  14. /*                                                                          */
  15. /****************************************************************************/
  16. #ifndef _SSM_H_
  17. #define _SSM_H_
  18. #include <ssm.h>
  19. #endif
  20.  
  21. typedef    USHORT   GID;
  22.  
  23. /****************************************************************************/
  24. /*             MCI Driver  message identifiers                              */
  25. /****************************************************************************/
  26. #define MCIDRV_SAVE                 900
  27. #define MCIDRV_RESTORE              901
  28. #define MCIDRV_SYNC                 902
  29. #define MCIDRV_CHANGERESOURCE       903
  30. #define MCIDRV_CONNECT              904
  31. #define MCIDRV_ASSOCIATE            905
  32. #define MCIDRV_DISCONNECT           906
  33. #define MCIDRV_TEST_CONNECTION      907
  34. #define MCIDRV_START                908
  35. #define MCIDRV_SEEK                 909
  36. #define MCIDRV_STOP                 910
  37. #define MCIDRV_MODIFY_CONNECTION    911
  38. #define MCIDRV_INIT_CONNECTION      912
  39. #define MCIDRV_DEINIT_CONNECTION    913
  40.  
  41. /*********************************************************************/
  42. /* The following messages are used by the MCIDRV_CONNECT message     */
  43. /*********************************************************************/
  44.  
  45. #define MCIDRV_CONNECT_TARGET       0x00010000
  46. #define MCIDRV_CONNECT_SOURCE       0x00020000
  47. #define MCIDRV_SET_CONNNECTOR_TYPE  0x00040000
  48. #define MCIDRV_CHANGE_SEM           0x00080000
  49.  
  50.  
  51. /*********************************************************************/
  52. /* The following messages are used by MCIDRV_START                   */
  53. /*********************************************************************/
  54.  
  55. #define MCIDRV_CUE_PLAYBACK         0x00010000
  56. #define MCIDRV_CUE_RECORD           0x00020000
  57. #define MCIDRV_START_PLAYBACK       0x00040000
  58. #define MCIDRV_START_RECORD         0x00080000
  59. #define MCIDRV_START_PREROLL        0x00100000
  60.  
  61. /*********************************************************************/
  62. /* The following messages are used by MCIDRV_ASSOCIATE               */
  63. /*********************************************************************/
  64.  
  65. #define MCIDRV_OUTPUT               0x00010000
  66. #define MCIDRV_INPUT                0x00020000
  67.  
  68. /*********************************************************************/
  69. /* The following messages are used by MCIDRV_STOP                    */
  70. /*********************************************************************/
  71.  
  72. #define MCIDRV_PAUSE_STREAM_NETWORK   0x00010000
  73. #define MCIDRV_FLUSH_STREAM_NETWORK   0x00020000
  74. #define MCIDRV_DISCARD_STREAM_NETWORK 0x00040000
  75.  
  76.  
  77.  
  78. /*********************************************************************/
  79. /* The following range of message ID's are reserved for internal use */
  80. /*  by MCI drivers                                                   */
  81. /*********************************************************************/
  82. #define MCI_INTERNAL_MESSAGES_START    1000
  83. #define MCI_INTERNAL_MESSAGES_END      1999
  84.  
  85. /*********************************************************************/
  86. /* Flags used by the string parser for command tables                */
  87. /* NOTE: All flags must have an "L" suffix in order to be parsed as  */
  88. /* ULONGs by the resource compiler                                   */
  89. /*********************************************************************/
  90. #define MCI_COMMAND_HEAD                 0x00000001L
  91. #define MCI_END_COMMAND                  0x00000002L
  92. #define MCI_END_COMMAND_LIST             0x00000003L
  93. #define MCI_RETURN                       0x00000004L
  94. #define MCI_STRING                       0x00000005L
  95. #define MCI_FLAG                         0x00000006L
  96. #define MCI_INTEGER                      0x00000007L
  97. #define MCI_CONSTANT                     0x00000008L
  98. #define MCI_CONSTANT_INTEGER             0x00000009L
  99. #define MCI_CONSTANT_STRING              0x0000000AL
  100. #define MCI_END_CONSTANT                 0x0000000BL
  101. #define MCI_DEFAULT_STRING               0x0000000CL
  102. #define MCI_DEFAULT_INTEGER              0x0000000DL
  103. #define MCI_RETURN_TYPE                  0x0000000EL
  104. #define MCI_RETURN_TYPE_STRING           0x0000000FL
  105. #define MCI_END_RETURN_TYPE              0x00000010L
  106. #define MCI_CONSTANT_2                   0x00000011L
  107. #define MCI_END_CONSTANT_2               0x00000012L
  108. #define MCI_CONSTANT_PAIR                0x00000013L
  109. #define MCI_END_CONSTANT_PAIR            0x00000014L
  110. #define MCI_CONSTANT_INTEGER_PAIR        0x00000015L
  111. #define MCI_CONSTANT_STRING_PAIR         0x00000016L
  112. #define MCI_RECTL                        0x00000017L
  113. #define MCI_CONSTANT_4                   0x00000018L
  114. #define MCI_END_CONSTANT_4               0x00000019L
  115. #define MCI_FOURCC                       0x0000001AL
  116. #define MCI_OR                           0x0000001BL
  117. #define MCI_END_OR                       0x0000001CL
  118. #define MCI_STRING_LIST                  0x0000001DL
  119.  
  120. /*********************************************************************/
  121. /* Return types supported by mciSendString                           */
  122. /*   Values 0x0000 -> 0xFF00  are reserved by MMPM2                  */
  123. /*   Values 0xFF01 -> 0xFFFF  are user definable                     */
  124. /*********************************************************************/
  125. #define MCI_INTEGER_RETURNED                     0x1000
  126. #define MCI_COLONIZED2_RETURN                    0x2000
  127. #define MCI_COLONIZED3_RETURN                    0x3000
  128. #define MCI_COLONIZED4_RETURN                    0x4000
  129. #define MCI_TRUE_FALSE_RETURN                    0x5000
  130. #define MCI_ON_OFF_RETURN                        0x6000
  131. #define MCI_DEVICENAME_RETURN                    0x7000
  132. #define MCI_TIME_FORMAT_RETURN                   0x8000
  133. #define MCI_SPEED_FORMAT_RETURN                  0x9000
  134. #define MCI_MODE_RETURN                          0xA000
  135. #define MCI_MEDIA_TYPE_RETURN                    0xB000
  136. #define MCI_TRACK_TYPE_RETURN                    0xC000
  137. #define MCI_CONNECTOR_TYPE_RETURN                0xD000
  138. #define MCI_CDXA_CHANNEL_DESTINATION_RETURN      0xE000
  139. #define MCI_PREROLL_TYPE_RETURN                  0xF000
  140. #define MCI_FORMAT_TAG_RETURN                    0xF100
  141. #define MCI_SEQ_SYNCHRONIZATION_RETURN           0xF200
  142. #define MCI_VIDEO_QUALITY_RETURN                 0xF300
  143. #define MCI_AUDIO_QUALITY_RETURN                 0xF400
  144. #define MCI_IMAGE_QUALITY_RETURN                 0xF500
  145. #define MCI_VIDEO_COMPRESSION_RETURN             0xF600
  146. #define MCI_AUDIO_COMPRESSION_RETURN             0xF700
  147. #define MCI_IMAGE_COMPRESSION_RETURN             0xF800
  148. #define MCI_RECTL_RETURN                         0xF900
  149. #define MCI_FOURCC_RETURN                        0xFA00
  150. #define MCI_IMAGE_PELFORMAT_RETURN               0xFB00
  151. #define MCI_DIRECTION_RETURN                     0xFC00
  152. #define MCI_SIGNED_INTEGER_RETURN                0xFD00
  153.  
  154.  
  155. #define MCI_USER_RETURN                          0xFF01
  156.  
  157. /*********************************************************************/
  158. /* End of msg text used by mciGetErrorString                         */
  159. /*********************************************************************/
  160. #define MCIERR_MSG_TABLE_END    MCIERR_BASE + 7000
  161.  
  162. /*********************************************************************/
  163. /*                                                                   */
  164. /*  MCI DEVICE shareability categories                               */
  165. /*                                                                   */
  166. /*********************************************************************/
  167. #define FIXEDSINGLECONTEXT            0x0001
  168. #define DYNAMICSINGLECONTEXT          0x0002
  169. #define LIMITEDMULTIPLECONTEXT        0x0003
  170. #define UNLIMITEDMULTIPLECONTEXT      0x0004
  171.  
  172. /*********************************************************************/
  173. /* MCI driver flag for close during exit list processing             */
  174. /*********************************************************************/
  175. #define MCI_CLOSE_EXIT                 0x10000000L
  176.  
  177. /*********************************************************************/
  178. /* MCI driver specific error table resource number base              */
  179. /*********************************************************************/
  180. #define MMERROR_TABLE_BASE      500
  181.  
  182. /*********************************************************************/
  183. /*                                                                   */
  184. /*  MCIDRV_CHANGERESOURCE  message flags                             */
  185. /*                                                                   */
  186. /*********************************************************************/
  187. #pragma pack(1)
  188.  
  189. typedef struct _MCIDRV_CHANGERESOURCE_PARMS {
  190.    PVOID      pInstance;             /* pointer to device instance   */
  191.    USHORT     usResourceUnits;       /* required resource units      */
  192.    USHORT     usResourceClass;       /* resource class               */
  193.    USHORT     usResourcePriority;    /* resource priority            */
  194. } MCIDRV_CHANGERESOURCE_PARMS;
  195. typedef MCIDRV_CHANGERESOURCE_PARMS  *PMCIDRV_CHANGERESOURCE_PARMS;
  196.  
  197.  
  198. /*********************************************************************/
  199. /*                                                                   */
  200. /*  MCIDRV_SYNC  message flags                                       */
  201. /*                                                                   */
  202. /*********************************************************************/
  203. #define MCIDRV_SYNC_ENABLE           0x00000100L
  204. #define MCIDRV_SYNC_DISABLE          0x00000200L
  205. #define MCIDRV_SYNC_REC_PULSE        0x00000400L
  206. #define MCIDRV_SYNC_MASTER           0x00000800L
  207. #define MCIDRV_SYNC_SET_MASTER       0x00001000L
  208.  
  209. typedef struct _MCIDRV_SYNC_PARMS {
  210.     HSTREAM   *hStreams;        /* Pointer to list of stream IDs     */
  211.     ULONG      ulNumStreams;    /* number of stream IDs              */
  212.     MMTIME     mmTime;          /* Sync Pulse Time                   */
  213.     BOOL       NonStreamMaster; /* TRUE if this device can be master */
  214.     PSYNC_EVCB pevcbSyncPulse;  /* pointer to EVCB address (output)  */
  215.     HID        hidMaster;       /* Master NULL sh ID (valid only on  */
  216.                                 /*    MCIDRV_SYNC_MASTER             */
  217.     ULONG      ulReserved1;     /* Reserved field                    */
  218.     ULONG      ulReserved2;     /* Reserved field                    */
  219. } MCIDRV_SYNC_PARMS;
  220. typedef MCIDRV_SYNC_PARMS *PMCIDRV_SYNC_PARMS;
  221.  
  222.  
  223. /*********************************************************************/
  224. /* contains information for open message for MCI drivers             */
  225. /*********************************************************************/
  226. typedef struct __MMDRV_OPEN_PARMS{
  227.     HWND    hwndCallback;  /* call back handle                       */
  228.     USHORT  usDeviceID;    /* The device ID assigned to this instance*/
  229.     USHORT  usDeviceType;  /* The device type number                 */
  230.     USHORT  usDeviceOrd;   /* The device ordinal number              */
  231.     PVOID   pInstance;     /* pointer to the instance structure allocated */
  232.                            /* initialized by the driver. The MCI driver   */
  233.                            /* will fill in this parameter.                */
  234.     CHAR    szDevDLLName[260]; /* Character string containing the device  */
  235.                                /* specific DLL name to call for the open. */
  236.                                /* (ie. ACPA.DLL)                          */
  237.     PSZ     pszElementName;/*   typically a file name or NULL             */
  238.     USHORT  usDevParmLen;  /* Device parameters data block length.        */
  239.     PVOID   pDevParm;      /* Device parameters data block. This data     */
  240.                            /* block is unique to each type of device.     */
  241.                            /* (ie. LVD "COM1 9600 N 7 1").                */
  242.     PVOID   Reserved0;
  243.     USHORT  usResourceUnitsRequired;  /* number of resource units this instance */
  244.                                       /* requires.                              */
  245.     USHORT  usResourceClass;          /* resource class this instance belongs to*/
  246.     USHORT  usResourcePriority;       /* resource priority for this instance    */
  247.     ULONG   ulParam2;                 /* Pointer to MCI_OPEN structure          */
  248. } MMDRV_OPEN_PARMS;
  249. typedef MMDRV_OPEN_PARMS  *PMMDRV_OPEN_PARMS;
  250.  
  251.  
  252. #pragma pack()
  253. ULONG APIENTRY mdmDriverNotify (USHORT  usDeviceID,
  254.                                 HWND    hwnd,
  255.                                 USHORT  usMsgType,
  256.                                 USHORT  usUserParm,
  257.                                 ULONG   ulMsgParm);
  258. #endif
  259.