home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mmpm21tk.zip / TK / MCDTEMP / MCDTEMP.H < prev    next >
Text File  |  1993-03-22  |  7KB  |  151 lines

  1. /********************** START OF SPECIFICATIONS ****************************
  2. *
  3. *   SOURCE FILE NAME:   MCDTEMP.H
  4. *
  5. *   DESCRIPTIVE NAME: MCD Template defines and prototypes
  6. *
  7. *              Copyright (c) IBM Corporation  1993
  8. *                        All Rights Reserved
  9. *
  10. *   FUNCTION: Component function Prototypes.
  11. *
  12. *****************************************************************************/
  13.  
  14. #define    MAX_FILE_NAME                255
  15.  
  16.  
  17. /********************************************************************
  18. *   This Structure defines the data items that are needed to be
  19. *   maintained per MCI Device instance. The Instance structure
  20. *   has a pointer to the Streaming Information Structure defined
  21. *   above. Memory For This data structure is allocated dynamically
  22. *   off a Global heap.
  23. ********************************************************************/
  24.  
  25. typedef struct _Instance {
  26.     USHORT    usDeviceID;                /* Device ID            */
  27.     USHORT    usDeviceType;              /* Device type number   */
  28.     USHORT    usDeviceOrd;               /* Device ordinal       */
  29.     HMTX      hmtxAccessSem;             /* instance access semphore */
  30.     ULONG     ulSyncOffset;              /* Synchronizatn offst  */
  31.     ULONG     ulVolume;                  /* Instance Volume      */
  32.     ULONG     ulMasterVolume;            /* Master Volume        */
  33.     ULONG     ulTimeFormat;              /* Current Time Format  */
  34.     ULONG     ulSpeedFormat;             /* Current SpeedFormat  */
  35.     ULONG     ulState;                   /* Current instance state */
  36.     ULONG     ulMode;                    /* Current instance state */
  37.     ULONG     ulCurrentPosition;         /* Current position     */
  38.     ULONG     ulStartPosition;           /* Start position       */
  39.     ULONG     ulEndPosition;             /* End   position       */
  40.     BOOL      Active;                    /* True if instance is active */
  41.     BOOL      Speaker;                   /* True if speaker should be on */
  42.     BOOL      Headphone;                 /* True if headphone should be on */
  43.     CHAR      szProductInfo[MAX_PRODINFO]; /* Textual product description    */
  44.     CHAR      szInstallName[MAX_DEVICE_NAME]; /* Device install name            */
  45.     CHAR      szDevParams[MAX_DEV_PARAMS];
  46.     CHAR      szFileName[MAX_FILE_NAME];
  47.     } INSTANCE;         /* Audio MCD MCI Instance Block */
  48. typedef INSTANCE *PINSTANCE;
  49.  
  50.  
  51. /*********************************************************************
  52. * Function Parameter Block defines the parameters needed by each MCI
  53. * Message processing function to process the message.
  54. **********************************************************************/
  55. typedef struct {
  56.     USHORT      usMessage;         /*  The Message                       */
  57.     ULONG       ulParam1;          /*  Flags for the Message             */
  58.     PVOID       pParam2;           /*  Data for The Message              */
  59.     USHORT      usUserParm;        /*  User Parameter Returned on Notify */
  60.     ULONG       ulNotify;          /*  Notification flag                 */
  61.     PINSTANCE   pInstance;         /*  Shall be Modified later           */
  62.     }FUNCTION_PARM_BLOCK;          /*  Audio MCD Function Paramter Block */
  63. typedef FUNCTION_PARM_BLOCK *PFUNCTION_PARM_BLOCK;
  64.  
  65.  
  66. /***********************************************
  67. * MCI Message Support Functions
  68. ***********************************************/
  69. RC   MCIOpen          (FUNCTION_PARM_BLOCK *);// Open
  70. RC   MCIOpenErr       (FUNCTION_PARM_BLOCK *);// Open Error
  71. RC   MCIClose         (FUNCTION_PARM_BLOCK *);// Close
  72. RC   MCICloseErr      (FUNCTION_PARM_BLOCK *);// Close Error
  73. RC   MCIDRVSave       (FUNCTION_PARM_BLOCK *);// Save
  74. RC   MCIDRVSaveErr    (FUNCTION_PARM_BLOCK *);// Save Error
  75. RC   MCIDRVRestore    (FUNCTION_PARM_BLOCK *);// Restore
  76. RC   MCIDRVRestoreErr (FUNCTION_PARM_BLOCK *);// Restore Error
  77.  
  78. /***********************************************/
  79. /* List of valid instance states or modes      */
  80. /***********************************************/
  81. #define MCD_MODE_NOT_READY     MCI_MODE_NOT_READY
  82. #define MCD_MODE_PAUSE         MCI_MODE_PAUSE
  83. #define MCD_MODE_PLAY          MCI_MODE_PLAY
  84. #define MCD_MODE_STOP          MCI_MODE_STOP
  85. #define MCD_MODE_RECORD        MCI_MODE_RECORD
  86. #define MCD_MODE_SEEK          MCI_MODE_SEEK
  87. #define MCD_MODE_OPENING       0x0001000L
  88. #define MCD_MODE_CLOSING       0x0002000L
  89. #define MCD_MODE_LOADING       0x0003000L
  90.  
  91. /***********************************************/
  92. /* List of valid flags per message             */
  93. /***********************************************/
  94.  
  95. /***********************************************/
  96. /* MCI_OPEN valid flags                        */
  97. /*  NOTE --> MCI_NOTIFY will never be sent     */
  98. /*           open notify is handled by MDM     */
  99. /***********************************************/
  100. #define MCIOPENVALIDFLAGS    (MCI_OPEN_SHAREABLE | MCI_WAIT | MCI_OPEN_ELEMENT | MCI_OPEN_PLAYLIST | MCI_OPEN_MMIO)
  101.  
  102. /***********************************************/
  103. /* MCI_CLOSE valid flags                       */
  104. /***********************************************/
  105. #define MCICLOSEVALIDFLAGS    (MCI_WAIT | MCI_NOTIFY)
  106.  
  107. /***********************************************/
  108. /* MCIDRV_SAVE valid flags                     */
  109. /***********************************************/
  110. #define MCIDRVSAVEVALIDFLAGS   MCI_WAIT
  111.  
  112. /***********************************************/
  113. /* MCIDRV_RESTORE valid flags                  */
  114. /***********************************************/
  115. #define MCIDRVRESTOREVALIDFLAGS    MCI_WAIT
  116.  
  117. /***********************************************/
  118. /* MCI_STATUS valid flags                      */
  119. /***********************************************/
  120. #define MCISTATUSVALIDFLAGS    MCI_WAIT
  121.  
  122. /***********************************************/
  123. /* MCI_INFO valid flags                        */
  124. /***********************************************/
  125. #define MCIINFOVALIDFLAGS    MCI_WAIT
  126.  
  127. #define MCD_INFO_FLAGS       (MCI_INFO_PRODUCT | MCI_INFO_FILE)
  128.  
  129. /***********************************************/
  130. /* MCD function Prototyes                      */
  131. /***********************************************/
  132. ULONG  EXPENTRY mciDriverEntry ( PVOID    pInstance,
  133.                                  USHORT   usMessage,
  134.                                  ULONG    ulParam1,
  135.                                  PVOID     pParam2,
  136.                                  USHORT   usUserParm);
  137. RC    MCIOpen (FUNCTION_PARM_BLOCK *pFuncBlock);
  138. RC    MCIOpenErr (FUNCTION_PARM_BLOCK *pFuncBlock);
  139. VOID  GetINIInstallName(PINSTANCE pInstance);
  140. VOID  GetDeviceInfo(PINSTANCE pInstance);
  141. VOID  QMAudio(PINSTANCE pInstance);
  142. RC    MCIStatus (FUNCTION_PARM_BLOCK *pFuncBlock);
  143. RC    MCIStatusErr (FUNCTION_PARM_BLOCK *pFuncBlock);
  144. ULONG ConvertTime(ULONG ulTime, ULONG ulCurrentFormat, ULONG ulNewFormat);
  145. RC    MCIInfo   (FUNCTION_PARM_BLOCK *pFuncBlock);
  146. RC    MCIInfoErr (FUNCTION_PARM_BLOCK *pFuncBlock);
  147. RC    MCIDRVRestore (FUNCTION_PARM_BLOCK *pFuncBlock);
  148. RC    MCIDRVRestoreErr (FUNCTION_PARM_BLOCK *pFuncBlock);
  149. RC    MCIDRVSave (FUNCTION_PARM_BLOCK *pFuncBlock);
  150. RC    MCIDRVSaveErr (FUNCTION_PARM_BLOCK *pFuncBlock);
  151.