home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mmpm21tk.zip / TK / H / MMDRVOS2.H < prev    next >
C/C++ Source or Header  |  1993-01-25  |  11KB  |  200 lines

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