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