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

  1. /****************************************************************************
  2.  *
  3.  *   mmreg.h  - Registered Multimedia Information Public Header File
  4.  *
  5.  *   Copyright (c) 1991-1992 Microsoft Corporation.  All Rights Reserved.
  6.  *
  7.  * Multimedia Registration
  8.  *
  9.  * Place this system include file in your INCLUDE path with the Windows SDK
  10.  * include files.
  11.  *
  12.  * Obtain the Multimedia Developer Registration Kit from:
  13.  *
  14.  *  Microsoft Corporation
  15.  *  Multimedia Systems Group
  16.  *  Product Marketing
  17.  *  One Microsoft Way
  18.  *  Redmond, WA 98052-6399
  19.  *
  20.  *
  21.  * Last Update:  109/19/92
  22.  *
  23.  ***************************************************************************/
  24.  
  25.  
  26. #ifndef _INC_MMREG
  27. /* use version number to verify compatibility */
  28. #define _INC_MMREG     121    // version 1.21
  29.  
  30. #ifndef RC_INVOKED
  31. #pragma pack(1)         /* Assume byte packing throughout */
  32. #endif  /* RC_INVOKED */
  33.  
  34. #ifdef __cplusplus
  35. extern "C" {            /* Assume C declarations for C++ */
  36. #endif    /* __cplusplus */
  37.  
  38. /* manufacturer IDs */
  39. #ifndef MM_MICROSOFT
  40. #define MM_MICROSOFT            1   /* Microsoft Corporation */
  41. #endif
  42. #define MM_CREATIVE             2   /* Creative Labs Inc. */
  43. #define MM_MEDIAVISION          3   /* Media Vision Inc. */
  44. #define MM_FUJITSU        4
  45. #define MM_ARTISOFT        20   /* Artisoft Inc. */
  46. #define MM_TURTLE_BEACH        21    
  47. #define MM_IBM            22    /* International Bussiness Machines Corp. */
  48. #define MM_VOCALTEC        23    /* Vocaltec LTD. */
  49. #define MM_ROLAND        24
  50. #define MM_DIGISPEECH        25    /* Digispeech, Inc. */
  51. #define MM_NEC            26    /* NEC */
  52. #define MM_ATI            27    /* ATI */
  53. #define MM_WANGLABS        28    /* Wang Laboratories, Inc. */
  54. #define MM_TANDY        29    /* Tandy Corporation */
  55. #define MM_VOYETRA        30    /* Voyetra */
  56. #define MM_ANTEX        31    /* Antex */
  57. #define MM_ICL_PS        32
  58. #define MM_INTEL        33
  59. #define MM_GRAVIS        34
  60. #define MM_VAL            35    /* Video Associates Labs */
  61. #define MM_INTERACTIVE        36    /* InterActive, Inc. */
  62. #define MM_YAMAHA        37    /* Yamaha Corp. of America */
  63. #define MM_EVEREX        38    /* Everex Systems, Inc. */
  64. #define MM_ECHO            39    /* Echo Speech Corporation */
  65.  
  66. /* MM_MICROSOFT product IDs */
  67. #ifndef MM_MIDI_MAPPER
  68.  
  69. #define MM_MIDI_MAPPER          1   /* MIDI Mapper */
  70. #define MM_WAVE_MAPPER          2   /* Wave Mapper */
  71. #define MM_SNDBLST_MIDIOUT      3   /* Sound Blaster MIDI output port */
  72. #define MM_SNDBLST_MIDIIN       4   /* Sound Blaster MIDI input port */
  73. #define MM_SNDBLST_SYNTH        5   /* Sound Blaster internal synthesizer */
  74. #define MM_SNDBLST_WAVEOUT      6   /* Sound Blaster waveform output */
  75. #define MM_SNDBLST_WAVEIN       7   /* Sound Blaster waveform input */
  76. #define MM_ADLIB                9   /* Ad Lib-compatible synthesizer */
  77. #define MM_MPU401_MIDIOUT      10   /* MPU401-compatible MIDI output port */
  78. #define MM_MPU401_MIDIIN       11   /* MPU401-compatible MIDI input port */
  79. #define MM_PC_JOYSTICK         12   /* Joystick adapter */
  80. #endif
  81.  
  82. #define MM_PCSPEAKER_WAVEOUT           13   /* PC Speaker waveform output */
  83.  
  84. #define MM_MSFT_WSS_WAVEIN        14   /* MS Audio Board waveform input */
  85. #define MM_MSFT_WSS_WAVEOUT        15   /* MS Audio Board waveform output */
  86. #define MM_MSFT_WSS_FMSYNTH_STEREO    16   /* MS Audio Board Stereo FM Syntesizer */
  87. #define MM_MSFT_WSS_OEM_WAVEIN        18   /* MS OEM Audio Board waveform input */
  88. #define MM_MSFT_WSS_OEM_WAVEOUT        19   /* MS OEM Audio Board waveform Output */
  89. #define MM_MSFT_WSS_OEM_FMSYNTH_STEREO    20   /* MS OEM Audio Board Stereo FM Syntesizer */
  90. #define MM_MSFT_WSS_AUX            21   /* MS Audio Board Auxiliary Port */
  91. #define MM_MSFT_WSS_OEM_AUX        22   /* MS OEM Audio Auxiliary Port */
  92.  
  93. /* MM_CREATIVE product IDs */
  94. #define MM_CREATIVE_SB15_WAVEIN         1   /* SB (r) 1.5 waveform input */
  95. #define MM_CREATIVE_SB20_WAVEIN         2   /* SB (r) 2.0 waveform input */
  96. #define MM_CREATIVE_SBPRO_WAVEIN        3   /* SB Pro (r) waveform input */
  97. #define MM_CREATIVE_SBP16_WAVEIN        4   /* SBP16 (r) waveform input */
  98. #define MM_CREATIVE_SB15_WAVEOUT      101   /* SB (r) 1.5 waveform output */
  99. #define MM_CREATIVE_SB20_WAVEOUT      102   /* SB (r) 2.0 waveform output */
  100. #define MM_CREATIVE_SBPRO_WAVEOUT     103   /* SB Pro (r) waveform output */
  101. #define MM_CREATIVE_SBP16_WAVEOUT     104   /* SBP16 (r) waveform output */
  102. #define MM_CREATIVE_MIDIOUT           201   /* SB (r) MIDI output port */
  103. #define MM_CREATIVE_MIDIIN            202   /* SB (r) MIDI input port */
  104. #define MM_CREATIVE_FMSYNTH_MONO      301   /* SB (r) FM synthesizer */
  105. #define MM_CREATIVE_FMSYNTH_STEREO    302   /* SB Pro (r) stereo FM synthesizer */
  106. #define MM_CREATIVE_AUX_CD            401   /* SB Pro (r) aux (CD) */
  107. #define MM_CREATIVE_AUX_LINE          402   /* SB Pro (r) aux (line in) */
  108. #define MM_CREATIVE_AUX_MIC           403   /* SB Pro (r) aux (mic) */
  109.  
  110.  
  111. /* MM_ARTISOFT product IDs */
  112. #define MM_ARTISOFT_SBWAVEIN    1   /* Artisoft Sounding Board waveform input */
  113. #define MM_ARTISOFT_SBWAVEOUT    2   /* Artisoft Sounding Board waveform output */
  114.  
  115. /* MM_IBM Product IDs */
  116. #define MM_MMOTION_WAVEAUX    1    /* IBM M-Motion Auxiliary Device */
  117. #define MM_MMOTION_WAVEOUT    2    /* IBM M-Motion Waveform Output */
  118. #define MM_MMOTION_WAVEIN    3    /* IBM M-Motion Waveform Input */
  119.  
  120. /* MM_MEDIAVISION Product IDs */
  121. #define MM_PROAUD_MIDIOUT    21    /* MediaVision MIDI output port */
  122. #define MM_PROAUD_MIDIIN    22    /* MediaVision MIDI input port */
  123. #define MM_PROAUD_SYNTH        23    /* MediaVision Syntesizer */
  124. #define MM_PROAUD_WAVEOUT    24    /* MediaVision Waveform output */
  125. #define MM_PROAUD_WAVEIN    25    /* MediaVision Waveform input */
  126. #define MM_PROAUD_MIXER        26    /* MediaVision Mixer */
  127. #define MM_PROAUD_AUX        27    /* MediaVision aux */
  128. #define MM_MEDIAVISION_THUNDER    32    /* Thunderboard Sound Card */
  129.  
  130. /* MM_VOCALTEC Product IDs */
  131. #define MM_VOCALTEC_WAVEOUT    1    /* Vocaltec Waveform output port */
  132. #define MM_VOCALTEC_WAVEIN    2    /* Vocaltec Waveform input port */
  133.             
  134.  
  135. /* MM_DIGISPEECH Product IDs */
  136. #define MM_DIGISP_WAVEOUT    1    /* Digispeech Waveform output port */
  137. #define MM_DIGISP_WAVEIN    2    /* Digispeech Waveform input port */
  138.             
  139. /* MM_NEC Product IDs */
  140.             
  141. /* MM_ATI Product IDs */
  142.  
  143. /* MM_WANGLABS Product IDs */
  144.  
  145. #define MM_WANGLABS_WAVEIN1    1
  146. /* Input audio wave device present on the CPU board of the following Wang models: Exec 4010, 4030 and 3450; PC 251/25C, PC 461/25S and PC 461/33C */
  147. #define MM_WANGLABS_WAVEOUT1    2
  148. /* Output audio wave device present on the CPU board of the Wange models listed above. */
  149.  
  150. /* MM_TANDY Product IDs             */
  151.  
  152. /* MM_VOYETRA Product IDs */
  153.  
  154. /* MM_ANTEX Product IDs */
  155.  
  156. /* MM_ICL_PS Product IDs */
  157.  
  158. /* MM_INTEL Product IDs */
  159.  
  160. #define MM_INTELOPD_WAVEIN    1    // HID2 WaveAudio Input driver
  161. #define MM_INTELOPD_WAVEOUT    101    // HID2 WaveAudio Output driver
  162. #define MM_INTELOPD_AUX        401    // HID2 Auxiliary driver (required for mixing functions)
  163.  
  164. /* MM_GRAVIS Product IDs */
  165.  
  166. /* MM_VAL Product IDs */
  167.  
  168. // #define MM_VAL_MICROKEY_AP_WAVEIN    ???    // Microkey/AudioPort Waveform Input
  169. // #define MM_VAL_MICROKEY_AP_WAVEOUT    ???    // Microkey/AudioPort Waveform Output
  170.  
  171. /* MM_INTERACTIVE Product IDs */
  172.  
  173. #define MM_INTERACTIVE_WAVEIN    0x45    // ???
  174. #define MM_INTERACTIVE_WAVEOUT    0x45    // ???
  175.  
  176. /* MM_YAMAHA Product IDs */
  177.  
  178. #define MM_YAMAHA_GSS_SYNTH    0x01    // Yamaha Gold Sound Standard FM sythesis driver
  179. #define MM_YAMAHA_GSS_WAVEOUT    0x02    // Yamaha Gold Sound Standard wave output driver
  180. #define MM_YAMAHA_GSS_WAVEIN    0x03    // Yamaha Gold Sound Standard wave input driver
  181. #define MM_YAMAHA_GSS_MIDIOUT    0x04    // Yamaha Gold Sound Standard midi output driver
  182. #define MM_YAMAHA_GSS_MIDIIN    0x05    // Yamaha Gold Sound Standard midi input driver
  183. #define MM_YAMAHA_GSS_AUX    0x06    // Yamaha Gold Sound Standard auxillary driver for mixer functions
  184.  
  185. /* MM_EVEREX Product IDs */
  186.  
  187. #define MM_EVEREX_CARRIER    0x01    // Everex Carrier SL/25 Notebook
  188.  
  189. /* MM_ECHO Product IDs */
  190.  
  191. /*////////////////////////////////////////////////////////////////////////// */
  192.  
  193. /* WAVE form wFormatTag IDs */
  194. #define    WAVE_FORMAT_UNKNOWN        (0x0000)
  195. #define    WAVE_FORMAT_ADPCM        (0x0002)
  196. #define WAVE_FORMAT_IBM_CVSD        (0x0005)
  197. #define    WAVE_FORMAT_ALAW        (0x0006)
  198. #define    WAVE_FORMAT_MULAW        (0x0007)
  199. #define    WAVE_FORMAT_OKI_ADPCM        (0x0010)
  200. #define WAVE_FORMAT_DVI_ADPCM        (0x0011)
  201. #define    WAVE_FORMAT_DIGISTD        (0x0015)
  202. #define    WAVE_FORMAT_DIGIFIX        (0x0016)
  203. #define WAVE_FORMAT_YAMAHA_ADPCM    (0x0020)
  204.  
  205.  
  206. #ifndef WAVE_FORMAT_PCM
  207.  
  208. /* general waveform format structure (information common to all formats) */
  209. typedef struct waveformat_tag {
  210.     WORD    wFormatTag;        /* format type */
  211.     WORD    nChannels;         /* number of channels (i.e. mono, stereo...) */
  212.     DWORD   nSamplesPerSec;    /* sample rate */
  213.     DWORD   nAvgBytesPerSec;   /* for buffer estimation */
  214.     WORD    nBlockAlign;       /* block size of data */
  215. } WAVEFORMAT;
  216. typedef WAVEFORMAT       *PWAVEFORMAT;
  217. typedef WAVEFORMAT NEAR *NPWAVEFORMAT;
  218. typedef WAVEFORMAT FAR  *LPWAVEFORMAT;
  219.  
  220. /* flags for wFormatTag field of WAVEFORMAT */
  221. #define WAVE_FORMAT_PCM     1
  222.  
  223. /* specific waveform format structure for PCM data */
  224. typedef struct pcmwaveformat_tag {
  225.     WAVEFORMAT  wf;
  226.     WORD        wBitsPerSample;
  227. } PCMWAVEFORMAT;
  228. typedef PCMWAVEFORMAT       *PPCMWAVEFORMAT;
  229. typedef PCMWAVEFORMAT NEAR *NPPCMWAVEFORMAT;
  230. typedef PCMWAVEFORMAT FAR  *LPPCMWAVEFORMAT;
  231.  
  232.  
  233. #endif /* WAVE_FORMAT_PCM */
  234.  
  235.  
  236.  
  237. /* general extended waveform format structure 
  238.    Use this for all NON PCM formats 
  239.    (information common to all formats)
  240. */
  241.  
  242. typedef struct waveformat_extended_tag {
  243.     WORD    wFormatTag;        /* format type */
  244.     WORD    nChannels;         /* number of channels (i.e. mono, stereo...) */
  245.     DWORD   nSamplesPerSec;    /* sample rate */
  246.     DWORD   nAvgBytesPerSec;   /* for buffer estimation */
  247.     WORD    nBlockAlign;       /* block size of data */
  248.     WORD    wBitsPerSample;    /* Number of bits per sample of mono data */
  249.     WORD    cbSize;           /* The count in bytes of the size of
  250.                     extra information (after cbSize) */
  251.  
  252. } WAVEFORMATEX;
  253. typedef WAVEFORMATEX       *PWAVEFORMATEX;
  254. typedef WAVEFORMATEX NEAR *NPWAVEFORMATEX;
  255. typedef WAVEFORMATEX FAR  *LPWAVEFORMATEX;
  256.  
  257. /* Define data for MS ADPCM */
  258.  
  259. typedef struct adpcmcoef_tag {
  260.     short    iCoef1;
  261.     short    iCoef2;
  262. } ADPCMCOEFSET;
  263. typedef ADPCMCOEFSET       *PADPCMCOEFSET;
  264. typedef ADPCMCOEFSET NEAR *NPADPCMCOEFSET;
  265. typedef ADPCMCOEFSET FAR  *LPADPCMCOEFSET;
  266.  
  267. typedef struct adpcmwaveformat_tag {
  268.     WAVEFORMATEX    wfx;
  269.     WORD        wSamplesPerBlock;
  270.     WORD        wNumCoef;
  271. //    ADPCMCOEFSET    aCoef[];
  272. } ADPCMWAVEFORMAT;
  273. typedef ADPCMWAVEFORMAT       *PADPCMWAVEFORMAT;
  274. typedef ADPCMWAVEFORMAT NEAR *NPADPCMWAVEFORMAT;
  275. typedef ADPCMWAVEFORMAT FAR  *LPADPCMWAVEFORMAT;
  276.  
  277.  
  278. //
  279. //  Intel's DVI ADPCM structure definitions
  280. //
  281. //      for WAVE_FORMAT_DVI_ADPCM   (0x0011)
  282. //
  283. //
  284.  
  285. typedef struct dvi_adpcmwaveformat_tag {
  286.     WAVEFORMATEX    wfx;
  287.     WORD        wSamplesPerBlock;
  288. } DVIADPCMWAVEFORMAT;
  289. typedef DVIADPCMWAVEFORMAT       *PDVIADPCMWAVEFORMAT;
  290. typedef DVIADPCMWAVEFORMAT NEAR *NPDVIADPCMWAVEFORMAT;
  291. typedef DVIADPCMWAVEFORMAT FAR  *LPDVIADPCMWAVEFORMAT;
  292.  
  293.  
  294.  
  295. /*//////////////////////////////////////////////////////////////////////////
  296. //
  297. // DIB Compression Defines
  298. //
  299. */
  300.  
  301. #ifndef BI_BITFIELDS
  302. #define BI_BITFIELDS    3
  303. #endif
  304.  
  305. #ifndef QUERYDIBSUPPORT
  306.  
  307. #define QUERYDIBSUPPORT    3073
  308. #define QDI_SETDIBITS    0x0001
  309. #define QDI_GETDIBITS    0x0002
  310. #define QDI_DIBTOSCREEN    0x0004
  311. #define QDI_STRETCHDIB    0x0008
  312.  
  313. #endif
  314.  
  315.  
  316. /*//////////////////////////////////////////////////////////////////////////
  317. //
  318. // Defined IC types
  319. */
  320.  
  321. #ifndef ICTYPE_VIDEO
  322. #define ICTYPE_VIDEO    mmioFOURCC('v', 'i', 'd', 'c')
  323. #define ICTYPE_AUDIO    mmioFOURCC('a', 'u', 'd', 'c')
  324. #endif
  325.  
  326. #ifndef RC_INVOKED
  327. #pragma pack()          /* Revert to default packing */
  328. #endif  /* RC_INVOKED */
  329.  
  330. #ifdef __cplusplus
  331. }                       /* End of extern "C" { */
  332. #endif    /* __cplusplus */
  333.  
  334. #endif    /* _INC_MMREG */
  335.