home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / detk45he.zip / OS2MEDEF.H < prev    next >
C/C++ Source or Header  |  1999-03-15  |  13KB  |  330 lines

  1. /****************************************************************************/
  2. /*                                                                          */
  3. /* Module Name: OS2MEDEF.H                                                  */
  4. /*                                                                          */
  5. /* OS/2 2.0 Multimedia Extensions Common Definitions file                   */
  6. /*                                                                          */
  7. /* Copyright (c) International Business Machines Corporation 1991, 1992     */
  8. /*                        All Rights Reserved                               */
  9. /*                                                                          */
  10. /****************************************************************************/
  11. /* NOINC */
  12. #ifdef __cplusplus
  13.    extern "C" {
  14. #endif
  15. /* INC */
  16.  
  17.  
  18. /* XLATOFF */
  19. #ifndef  _OS2MEDEF_H
  20. #define  _OS2MEDEF_H
  21.  
  22. #ifndef __WORDBYTEDWORD__
  23.   #define __WORDBYTEDWORD__
  24.   #ifndef WORD
  25.     typedef USHORT WORD;
  26.   #endif
  27.  
  28.   #ifndef DWORD
  29.     typedef ULONG  DWORD;
  30.   #endif
  31. #endif
  32.  
  33. typedef WORD  VERSION;
  34. typedef char FAR * LPSTR;
  35. typedef FAR * LPTR;
  36. typedef FAR * LPRECT;
  37. typedef HWND HANDLE;
  38. typedef WORD *  PW;
  39. typedef WORD *  PAW;
  40. typedef WORD * PWORD;
  41. typedef PFN  FAR *  PPFN;
  42. typedef DWORD (APIENTRY FNMCI) (LPTR, WORD, DWORD, DWORD, WORD);
  43. typedef FNMCI *PFNMCI;
  44.  
  45. /* XLATON */
  46.  
  47. #ifdef XXXXX
  48. typedef PVOID PFNMCI;
  49. typedef PVOID LPTR;
  50. #endif
  51.  
  52. typedef char   SZ;                    /* ASCIIZ char string type*/
  53. typedef ULONG  MMTIME;                /* universal Chinatown time (1/3000 second)*/
  54. typedef MMTIME FAR *PMMTIME;          /* Ptr to MMTIME unit*/
  55.  
  56. typedef ULONG HMMIO;                  /* Handle to an MMIO object*/
  57. typedef HMMIO FAR *PHMMIO;            /* Handle to an MMIO object*/
  58.  
  59.  
  60. /**********************************************
  61.  *
  62.  * SPCBKEY - Stream Protocol Key
  63.  *
  64.  **********************************************/
  65. typedef struct _SPCBKEY { /* spcbkey SPCB key (Stream data type) */
  66.    ULONG    ulDataType;
  67.    ULONG    ulDataSubType;
  68.    ULONG    ulIntKey;                 /* generated internal key            */
  69.    } SPCBKEY;
  70. typedef SPCBKEY FAR *PSPCBKEY;
  71. #define  _SPCBKEY_DEFINED   1
  72.  
  73.  
  74. /**********************************************
  75.  *
  76.  * MMTRACKINFO - This structure is used to
  77.  *            represent a video, audio or
  78.  *            some other type of track
  79.  *            within a digital video movie
  80.  *            file.
  81.  *
  82.  **********************************************/
  83. typedef struct _MMTRACKINFO {       /* mmtrackinfo */
  84.    ULONG       ulTrackID;         /* track identifier */
  85.    ULONG       ulMediaType;       /* media type */
  86.    ULONG       ulCountry;         /* country code for the track */
  87.    ULONG       ulCodePage;        /* country code page for the track */
  88.    ULONG       ulReserved1;       /* reserved must be 0 */
  89.    ULONG       ulReserved2;       /* reserved must be 0 */
  90.    } MMTRACKINFO;
  91. typedef MMTRACKINFO  *PMMTRACKINFO;/* Ptr to a track table entry */
  92.  
  93.  
  94. /************************
  95.  * Clipboard formats
  96.  ************************/
  97. #define         CF_RMID                 10
  98. #define         CF_RIFF                 11
  99. #define         CF_WAVE                 12
  100. #define         CF_AVI                  13
  101.  
  102. /************************
  103.  * Resource formats
  104.  ************************/
  105. #define         RT_RMID                 100
  106. #define         RT_RIFF                 101
  107. #define         RT_WAVE                 102
  108. #define         RT_AVI                  103
  109. #define         RT_AVS                  104
  110.  
  111. /************************
  112.  * Drag formats
  113.  ************************/
  114.  
  115. #define         DRT_WAVE               "Digital audio"
  116. #define         DRT_AVI                "Digital video"
  117. #define         DRT_MIDI               "MIDI"
  118.  
  119. /************************
  120.  * Sampling Rate
  121.  ************************/
  122. #define         HZ_8000                 8000            /* 8.0 kHz*/
  123. #define         HZ_11025                11025           /* 11.025 kHz*/
  124. #define         HZ_14700                14700           /* 14.700 kHz (SPV/2)*/
  125. #define         HZ_18900                18900           /* 18.900 kHz (CD/XA LVL C)*/
  126. #define         HZ_22050                22050           /* 22.050 kHz*/
  127. #define         HZ_37800                37800           /* 37.800 kHz (CD/XA LVL B)*/
  128. #define         HZ_44100                44100           /* 44.100 kHz*/
  129.  
  130. /************************
  131.  * Bits per Sample
  132.  ************************/
  133. #define         BPS_4                   4               /* 4 bits/sample (ADPCM)*/
  134. #define         BPS_8                   8               /* 8 bits/sample (PCM)*/
  135. #define         BPS_16                  16              /* 16 bits/sample(PCM)*/
  136.  
  137. /************************
  138.  * Channels
  139.  ************************/
  140. #define         CH_1                    1               /* Mono*/
  141. #define         CH_2                    2               /* Stereo*/
  142. #define         CH_4                    4               /* Quad*/
  143.  
  144. /*************************************************************************
  145.  * Multimedia Datatypes (spcbkey values)
  146.  *************************************************************************/
  147.  
  148.  
  149. /****************
  150.  * NULL datatype
  151.  ****************/
  152. #define  DATATYPE_NULL           0x0000L     /* NULL stream data type (NULL)*/
  153. #define    SUBTYPE_NONE            0x0000L   /* No subtype for this data type*/
  154.  
  155.  
  156. /*********************
  157.  * WAVEFORM datatypes
  158.  *********************/
  159. #define  DATATYPE_WAVEFORM       0x0001L     /* WAVEFORM audio (PCM)*/
  160.  
  161. /* Subtypes for DATATYPE_WAVEFORM:*/
  162. #define    WAVE_FORMAT_1M08        0x0001L   /* 11.025kHz, Mono  , 8-bit*/
  163. #define    WAVE_FORMAT_1S08        0x0002L   /* 11.025kHz, Stereo, 8-bit*/
  164. #define    WAVE_FORMAT_1M16        0x0003L   /* 11.025kHz, Mono  , 16-bit*/
  165. #define    WAVE_FORMAT_1S16        0x0004L   /* 11.025kHz, Stereo, 16-bit*/
  166. #define    WAVE_FORMAT_2M08        0x0005L   /* 22.05kHz , Mono  , 8-bit*/
  167. #define    WAVE_FORMAT_2S08        0x0006L   /* 22.05kHz , Stereo, 8-bit*/
  168. #define    WAVE_FORMAT_2M16        0x0007L   /* 22.05kHz , Mono  , 16-bit*/
  169. #define    WAVE_FORMAT_2S16        0x0008L   /* 22.05kHz , Stereo, 16-bit*/
  170. #define    WAVE_FORMAT_4M08        0x0009L   /* 44.1kHz  , Mono  , 8-bit*/
  171. #define    WAVE_FORMAT_4S08        0x000aL   /* 44.1kHz  , Stereo, 8-bit*/
  172. #define    WAVE_FORMAT_4M16        0x000bL   /* 44.1kHz  , Mono  , 16-bit*/
  173. #define    WAVE_FORMAT_4S16        0x000cL   /* 44.1kHz  , Stereo, 16-bit*/
  174. #define    WAVE_FORMAT_8M08        0x000dL   /*  8.0kHz  , Mono  , 8-bit*/
  175. #define    WAVE_FORMAT_8S08        0x000eL   /*  8.0kHz  , Stereo, 8-bit*/
  176. #define    WAVE_FORMAT_8M16        0x000fL   /*  8.0kHz  , Mono  , 16-bit*/
  177. #define    WAVE_FORMAT_8S16        0x0010L   /*  8.0kHz  , Stereo, 16-bit*/
  178.  
  179.  
  180. /*********************
  181.  * DIGVIDEO datatypes
  182.  *********************/
  183. #define  DATATYPE_DIGVIDEO       0x0002L     /* Digital Video */
  184.  
  185. /* Subtypes for DATATYPE_DIGVIDEO:*/
  186. #define    DIGVIDEO_PHOTOM         0x544F4850L   /* Photmotion video, FOURCC value for phio */
  187. #define    DIGVIDEO_ULTIM          0x49544c55L   /* Ultimotion video, FOURCC value for ulio */
  188. #define    DIGVIDEO_AVI            0x20495641L   /* AVI video, FOURCC value for avio */
  189. #define    DIGVIDEO_MONITOR        0x206E6F6DL   /* MONITOR video, FOURCC value for monitoring */
  190. #define    DIGVIDEO_FLC            0x63696C66L   /* FLIC video, FOURCC value for flic */
  191. #define    DIGVIDEO_MPEG           0x4745504DL   /* MPEG video, FOURCC value for MPEG */
  192.  
  193.  
  194. /******************
  195.  * MuLaw datatypes
  196.  ******************/
  197. #define DATATYPE_MULAW           0x0101L     /* MuLaw*/
  198. #define DATATYPE_RIFF_MULAW      0x0007L    /* MuLaw*/
  199.  
  200. /* Subtypes for DATATYPE_MULAW:*/
  201. #define    MULAW_8B8KS             0x0001L   /* 8bit 8kHz stereo*/
  202. #define    MULAW_8B11KS            0x0002L   /* 8bit 11kHz stereo*/
  203. #define    MULAW_8B22KS            0x0003L   /* 8bit 22kHz stereo*/
  204. #define    MULAW_8B44KS            0x0004L   /* 8bit 44kHz stereo*/
  205. #define    MULAW_8B8KM             0x0005L   /* 8bit 8kHz mono*/
  206. #define    MULAW_8B11KM            0x0006L   /* 8bit 11kHz mono*/
  207. #define    MULAW_8B22KM            0x0007L   /* 8bit 22kHz mono*/
  208. #define    MULAW_8B44KM            0x0008L   /* 8bit 44kHz mono*/
  209.  
  210. /*****************
  211.  * ALaw datatypes
  212.  *****************/
  213. #define DATATYPE_ALAW            0x0102L     /* ALaw*/
  214. #define DATATYPE_RIFF_ALAW       0x0006L     /* ALaw*/
  215.  
  216. /* Subtypes for DATATYPE_ALAW:*/
  217. #define    ALAW_8B8KS              0x0001L   /* 8bit 8kHz stereo*/
  218. #define    ALAW_8B11KS             0x0002L   /* 8bit 11kHz stereo*/
  219. #define    ALAW_8B22KS             0x0003L   /* 8bit 22kHz stereo*/
  220. #define    ALAW_8B44KS             0x0004L   /* 8bit 44kHz stereo*/
  221. #define    ALAW_8B8KM              0x0005L   /* 8bit 8kHz mono*/
  222. #define    ALAW_8B11KM             0x0006L   /* 8bit 11kHz mono*/
  223. #define    ALAW_8B22KM             0x0007L   /* 8bit 22kHz mono*/
  224. #define    ALAW_8B44KM             0x0008L   /* 8bit 44kHz mono*/
  225.  
  226.  
  227. /*******************************
  228.  * AVC ADPCM WAVEFORM datatypes
  229.  *******************************/
  230. #define  DATATYPE_ADPCM_AVC      0x0103L     /* ADPCM audio*/
  231.  
  232. /* Subtypes for DATATYPE_ADPCM_AVC:*/
  233. #define    ADPCM_AVC_VOICE         0x0001L
  234. #define    ADPCM_AVC_MUSIC         0x0002L
  235. #define    ADPCM_AVC_STEREO        0x0003L
  236. #define    ADPCM_AVC_HQ            0x0004L
  237.  
  238. /******************
  239.  * CT_ADPCM datatypes
  240.  ******************/
  241. #define DATATYPE_CT_ADPCM          0x0200L     /* Creative technologies */
  242.  
  243. /* Subtypes for DATATYPE_CT_ADPCM:*/
  244. #define    CT_ADPCM_16B8KS          0x0001L   /* 16bit 8kHz stereo*/
  245. #define    CT_ADPCM_16B11KS         0x0002L   /* 16bit 11kHz stereo*/
  246. #define    CT_ADPCM_16B22KS         0x0003L   /* 16bit 22kHz stereo*/
  247. #define    CT_ADPCM_16B44KS         0x0004L   /* 16bit 44kHz stereo*/
  248. #define    CT_ADPCM_16B8KM          0x0005L   /* 16bit 8kHz mono*/
  249. #define    CT_ADPCM_16B11KM         0x0006L   /* 16bit 11kHz mono*/
  250. #define    CT_ADPCM_16B22KM         0x0007L   /* 16bit 22kHz mono*/
  251. #define    CT_ADPCM_16B44KM         0x0008L   /* 16bit 44kHz mono*/
  252.  
  253. /****************
  254.  * MIDI datatype
  255.  ****************/
  256. #define  DATATYPE_MIDI           0x0201L     /* MIDI*/
  257. /*         SUBTYPE_NONE            0x0000L      No subtype for this data type*/
  258.  
  259.  
  260. /********************
  261.  * GENERIC datatypes
  262.  ********************/
  263. #define  DATATYPE_GENERIC        0x0202L     /* Generic for files / memory. This*/
  264.                                              /* datatype will match any other*/
  265.                                              /* datatype at stream creation time.*/
  266.  
  267. /**************************
  268.  * Speech Viewer datatypes
  269.  **************************/
  270. #define  DATATYPE_SPV2           0x0203L     /* Speech Viewer*/
  271.  
  272. /* Subtypes for DATATYPE_SPV2:*/
  273. #define    SPV2_BPCM               0x0001L
  274. #define    SPV2_PCM                0x0002L
  275. #define    SPV2_NONE               0x0003L
  276.  
  277.  
  278. /******************
  279.  * CD-XA datatypes
  280.  ******************/
  281. #define  DATATYPE_CDXA_VIDEO     0x0204L     /* CD-XA Video datatype*/
  282. #define  DATATYPE_CDXA_DATA      0x0205L     /* CD-XA sub-band data datatype*/
  283. #define  DATATYPE_CDXA_AUDIO     0x0206L     /* CD-XA ADPCM Audio datatype*/
  284. #define  DATATYPE_CDXA_AUDIO_HD  0x0207L     /* CD-XA ADPCM Audio with Headers*/
  285. #define  DATATYPE_CDXA_HEADERS   0x0208L     /* CD-XA Headers and Subheaders*/
  286.  
  287.  
  288. /* Subtypes for DATATYPE_CDXA_AUDIO:*/
  289. #define    CDXA_LEVELB             0x0000L /* LEVEL B Audio Stereo*/
  290. #define    CDXA_LEVELC             0x0001L /* LEVEL C Audio Stereo*/
  291. #define    CDXA_LEVELB_MONO        0x0002L /* LEVEL B Audio Mono*/
  292. #define    CDXA_LEVELC_MONO        0x0003L /* LEVEL C Audio Mono*/
  293.  
  294.  
  295. /*********************
  296.  * DIGISPEECH datatype
  297.  *********************/
  298. #define  DATATYPE_DIGISPEECH     0x0208L     /* DIGISPEECH */
  299. #define    DIGISPEECH_NATIVE       0x0001L   /* Native digispeech */
  300.  
  301.  
  302. /*********************
  303.  * MPEG-1 Audio datatypes
  304.  *********************/
  305. #define  DATATYPE_MPEG1AUDIO       0x0050L     /* MPEG-1 Audio */
  306.  
  307. /* Subtypes for DATATYPE_MPEG1AUDIO:*/
  308. #define    MPEG1_FORMAT_3M16        0x0001L   /* 32.000kHz,  Mono  , 16-bit*/
  309. #define    MPEG1_FORMAT_3S16        0x0002L   /* 32.000kHz,  Stereo, 16-bit*/
  310. #define    MPEG1_FORMAT_4M16        0x0003L   /* 44.1/48kHz, Mono  , 16-bit*/
  311. #define    MPEG1_FORMAT_4S16        0x0004L   /* 44.1/48kHz, Stereo, 16-bit*/
  312.  
  313. /*******************
  314.  * UNKNOWN datatype
  315.  *******************/
  316. #define  DATATYPE_UNKNOWN        0xFFFFFFFFL   /* Unknown datatype */
  317. /*         SUBTYPE_NONE            0x0000L      No subtype for this data type*/
  318.  
  319.  
  320. /* XLATOFF */
  321. #endif
  322. /* XLATON */
  323.  
  324. /* NOINC */
  325. #ifdef __cplusplus
  326. }
  327. #endif
  328. /* INC */
  329.  
  330.