|
|
1.1 root 1: /****************************************************************************
2: *
3: * mmreg.h - Registered Multimedia Information Public Header File
4: *
5: * Copyright (c) 1991,1992,1993 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: * 800-227-4679 x11771
21: *
22: * Last Update: 01/21/93
23: *
24: ***************************************************************************/
25:
26: // Define the following to skip definitions
27: //
28: // NOMMIDS Multimedia IDs are not defined
29: // NONEWWAVE No new waveform types are defined except WAVEFORMATEX
30: // NONEWRIFF No new RIFF forms are defined
31: // NONEWIC No new Image Compressor types are defined
32:
33: #ifndef _INC_MMREG
34: /* use version number to verify compatibility */
35: #define _INC_MMREG 130 // version * 100 + revision
36:
37: #ifndef RC_INVOKED
38: #pragma pack(1) /* Assume byte packing throughout */
39: #endif /* RC_INVOKED */
40:
41: #ifdef __cplusplus
42: extern "C" { /* Assume C declarations for C++ */
43: #endif /* __cplusplus */
44:
45: #ifndef NOMMIDS
46:
47: /* manufacturer IDs */
48: #ifndef MM_MICROSOFT
49: #define MM_MICROSOFT 1 /* Microsoft Corporation */
50: #endif
51: #define MM_CREATIVE 2 /* Creative Labs Inc. */
52: #define MM_MEDIAVISION 3 /* Media Vision Inc. */
53: #define MM_FUJITSU 4
54: #define MM_ARTISOFT 20 /* Artisoft Inc. */
55: #define MM_TURTLE_BEACH 21
56: #define MM_IBM 22 /* International Bussiness Machines Corp. */
57: #define MM_VOCALTEC 23 /* Vocaltec LTD. */
58: #define MM_ROLAND 24
59: #define MM_DIGISPEECH 25 /* Digispeech, Inc. */
60: #define MM_NEC 26 /* NEC */
61: #define MM_ATI 27 /* ATI */
62: #define MM_WANGLABS 28 /* Wang Laboratories, Inc. */
63: #define MM_TANDY 29 /* Tandy Corporation */
64: #define MM_VOYETRA 30 /* Voyetra */
65: #define MM_ANTEX 31 /* Antex */
66: #define MM_ICL_PS 32
67: #define MM_INTEL 33
68: #define MM_GRAVIS 34
69: #define MM_VAL 35 /* Video Associates Labs */
70: #define MM_INTERACTIVE 36 /* InterActive, Inc. */
71: #define MM_YAMAHA 37 /* Yamaha Corp. of America */
72: #define MM_EVEREX 38 /* Everex Systems, Inc. */
73: #define MM_ECHO 39 /* Echo Speech Corporation */
74: #define MM_SIERRA 40 /* Sierra Semiconductor */
75: #define MM_CAT 41 /* Computer Aided Technologies */
76: #define MM_APPS 42 /* APPS Software International */
77: #define MM_DSP_GROUP 43 /* DSP Group, Inc. */
78: #define MM_MELABS 44 /* microEngineering Labs */
79: #define MM_COMPUTER_FRIENDS 45 /* Computer Friends, Inc */
80:
81: /* MM_MICROSOFT product IDs */
82: #ifndef MM_MIDI_MAPPER
83:
84: #define MM_MIDI_MAPPER 1 /* MIDI Mapper */
85: #define MM_WAVE_MAPPER 2 /* Wave Mapper */
86: #define MM_SNDBLST_MIDIOUT 3 /* Sound Blaster MIDI output port */
87: #define MM_SNDBLST_MIDIIN 4 /* Sound Blaster MIDI input port */
88: #define MM_SNDBLST_SYNTH 5 /* Sound Blaster internal synthesizer */
89: #define MM_SNDBLST_WAVEOUT 6 /* Sound Blaster waveform output */
90: #define MM_SNDBLST_WAVEIN 7 /* Sound Blaster waveform input */
91: #define MM_ADLIB 9 /* Ad Lib-compatible synthesizer */
92: #define MM_MPU401_MIDIOUT 10 /* MPU401-compatible MIDI output port */
93: #define MM_MPU401_MIDIIN 11 /* MPU401-compatible MIDI input port */
94: #define MM_PC_JOYSTICK 12 /* Joystick adapter */
95: #endif
96:
97: #define MM_PCSPEAKER_WAVEOUT 13 /* PC Speaker waveform output */
98:
99: #define MM_MSFT_WSS_WAVEIN 14 /* MS Audio Board waveform input */
100: #define MM_MSFT_WSS_WAVEOUT 15 /* MS Audio Board waveform output */
101: #define MM_MSFT_WSS_FMSYNTH_STEREO 16 /* MS Audio Board Stereo FM synthesizer */
102: #define MM_MSFT_WSS_OEM_WAVEIN 18 /* MS OEM Audio Board waveform input */
103: #define MM_MSFT_WSS_OEM_WAVEOUT 19 /* MS OEM Audio Board waveform Output */
104: #define MM_MSFT_WSS_OEM_FMSYNTH_STEREO 20 /* MS OEM Audio Board Stereo FM synthesizer */
105: #define MM_MSFT_WSS_AUX 21 /* MS Audio Board Auxiliary Port */
106: #define MM_MSFT_WSS_OEM_AUX 22 /* MS OEM Audio Auxiliary Port */
107:
108: #define MM_MSFT_GENERIC_WAVEIN 23 /* MS vanilla driver waveform input */
109: #define MM_MSFT_GENERIC_WAVEOUT 24 /* MS vanilla driver waveform output */
110: #define MM_MSFT_GENERIC_MIDIIN 25 /* MS vanilla driver MIDI input */
111: #define MM_MSFT_GENERIC_MIDIOUT 26 /* MS vanilla driver external MIDI output */
112: #define MM_MSFT_GENERIC_MIDISYNTH 27 /* MS vanilla driver MIDI synthesizer */
113: #define MM_MSFT_GENERIC_AUX_LINE 28 /* MS vanilla driver aux (line in) */
114: #define MM_MSFT_GENERIC_AUX_MIC 29 /* MS vanilla driver aux (mic) */
115: #define MM_MSFT_GENERIC_AUX_CD 30 /* MS vanilla driver aux (CD) */
116:
117:
118: /* MM_CREATIVE product IDs */
119: #define MM_CREATIVE_SB15_WAVEIN 1 /* SB (r) 1.5 waveform input */
120: #define MM_CREATIVE_SB20_WAVEIN 2 /* SB (r) 2.0 waveform input */
121: #define MM_CREATIVE_SBPRO_WAVEIN 3 /* SB Pro (r) waveform input */
122: #define MM_CREATIVE_SBP16_WAVEIN 4 /* SBP16 (r) waveform input */
123: #define MM_CREATIVE_SB15_WAVEOUT 101 /* SB (r) 1.5 waveform output */
124: #define MM_CREATIVE_SB20_WAVEOUT 102 /* SB (r) 2.0 waveform output */
125: #define MM_CREATIVE_SBPRO_WAVEOUT 103 /* SB Pro (r) waveform output */
126: #define MM_CREATIVE_SBP16_WAVEOUT 104 /* SBP16 (r) waveform output */
127: #define MM_CREATIVE_MIDIOUT 201 /* SB (r) MIDI output port */
128: #define MM_CREATIVE_MIDIIN 202 /* SB (r) MIDI input port */
129: #define MM_CREATIVE_FMSYNTH_MONO 301 /* SB (r) FM synthesizer */
130: #define MM_CREATIVE_FMSYNTH_STEREO 302 /* SB Pro (r) stereo FM synthesizer */
131: #define MM_CREATIVE_AUX_CD 401 /* SB Pro (r) aux (CD) */
132: #define MM_CREATIVE_AUX_LINE 402 /* SB Pro (r) aux (line in) */
133: #define MM_CREATIVE_AUX_MIC 403 /* SB Pro (r) aux (mic) */
134:
135:
136: /* MM_ARTISOFT product IDs */
137: #define MM_ARTISOFT_SBWAVEIN 1 /* Artisoft Sounding Board waveform input */
138: #define MM_ARTISOFT_SBWAVEOUT 2 /* Artisoft Sounding Board waveform output */
139:
140: /* MM_IBM Product IDs */
141: #define MM_MMOTION_WAVEAUX 1 /* IBM M-Motion Auxiliary Device */
142: #define MM_MMOTION_WAVEOUT 2 /* IBM M-Motion Waveform Output */
143: #define MM_MMOTION_WAVEIN 3 /* IBM M-Motion Waveform Input */
144:
145: /* MM_MEDIAVISION Product IDs */
146: #define MM_MEDIAVISION_PROAUDIO 0x10
147: #define MM_PROAUD_MIDIOUT MM_MEDIAVISION_PROAUDIO+1
148: #define MM_PROAUD_MIDIIN MM_MEDIAVISION_PROAUDIO+2
149: #define MM_PROAUD_SYNTH MM_MEDIAVISION_PROAUDIO+3
150: #define MM_PROAUD_WAVEOUT MM_MEDIAVISION_PROAUDIO+4
151: #define MM_PROAUD_WAVEIN MM_MEDIAVISION_PROAUDIO+5
152: #define MM_PROAUD_MIXER MM_MEDIAVISION_PROAUDIO+6
153: #define MM_PROAUD_AUX MM_MEDIAVISION_PROAUDIO+7
154:
155: #define MM_MEDIAVISION_THUNDER 0x20
156: #define MM_THUNDER_WAVEOUT MM_MEDIAVISION_THUNDER+1
157: #define MM_THUNDER_WAVEIN MM_MEDIAVISION_THUNDER+2
158: #define MM_THUNDER_SYNTH MM_MEDIAVISION_THUNDER+3
159:
160: #define MM_MEDIAVISION_TPORT 0x40
161: #define MM_TPORT_WAVEOUT MM_MEDIAVISION_TPORT+1
162: #define MM_TPORT_WAVEIN MM_MEDIAVISION_TPORT+2
163: #define MM_TPORT_SYNTH MM_MEDIAVISION_TPORT+3
164:
165: // THIS CARD IS THE OEM VERSION OF THE NEXT PAS
166: #define MM_MEDIAVISION_PROAUDIO_PLUS 0x50
167: #define MM_PROAUD_PLUS_MIDIOUT MM_MEDIAVISION_PROAUDIO_PLUS+1
168: #define MM_PROAUD_PLUS_MIDIIN MM_MEDIAVISION_PROAUDIO_PLUS+2
169: #define MM_PROAUD_PLUS_SYNTH MM_MEDIAVISION_PROAUDIO_PLUS+3
170: #define MM_PROAUD_PLUS_WAVEOUT MM_MEDIAVISION_PROAUDIO_PLUS+4
171: #define MM_PROAUD_PLUS_WAVEIN MM_MEDIAVISION_PROAUDIO_PLUS+5
172: #define MM_PROAUD_PLUS_MIXER MM_MEDIAVISION_PROAUDIO_PLUS+6
173: #define MM_PROAUD_PLUS_AUX MM_MEDIAVISION_PROAUDIO_PLUS+7
174:
175:
176: // THIS CARD IS THE NEW MEDIA VISION 16-bit card
177: #define MM_MEDIAVISION_PROAUDIO_16 0x60
178: #define MM_PROAUD_16_MIDIOUT MM_MEDIAVISION_PROAUDIO_16+1
179: #define MM_PROAUD_16_MIDIIN MM_MEDIAVISION_PROAUDIO_16+2
180: #define MM_PROAUD_16_SYNTH MM_MEDIAVISION_PROAUDIO_16+3
181: #define MM_PROAUD_16_WAVEOUT MM_MEDIAVISION_PROAUDIO_16+4
182: #define MM_PROAUD_16_WAVEIN MM_MEDIAVISION_PROAUDIO_16+5
183: #define MM_PROAUD_16_MIXER MM_MEDIAVISION_PROAUDIO_16+6
184: #define MM_PROAUD_16_AUX MM_MEDIAVISION_PROAUDIO_16+7
185:
186:
187: // THIS CARD IS THE NEW MEDIA VISION CDPC card
188: #define MM_MEDIAVISION_CDPC 0x70
189: #define MM_CDPC_MIDIOUT MM_MEDIAVISION_CDPC+1
190: #define MM_CDPC_MIDIIN MM_MEDIAVISION_CDPC+2
191: #define MM_CDPC_SYNTH MM_MEDIAVISION_CDPC+3
192: #define MM_CDPC_WAVEOUT MM_MEDIAVISION_CDPC+4
193: #define MM_CDPC_WAVEIN MM_MEDIAVISION_CDPC+5
194: #define MM_CDPC_MIXER MM_MEDIAVISION_CDPC+6
195: #define MM_CDPC_AUX MM_MEDIAVISION_CDPC+7
196:
197:
198: //
199: // Opus MV1208 Chipset
200: //
201: #define MM_MEDIAVISION_OPUS1208 0x80
202: #define MM_OPUS401_MIDIOUT MM_MEDIAVISION_OPUS1208+1
203: #define MM_OPUS401_MIDIIN MM_MEDIAVISION_OPUS1208+2
204: #define MM_OPUS1208_SYNTH MM_MEDIAVISION_OPUS1208+3
205: #define MM_OPUS1208_WAVEOUT MM_MEDIAVISION_OPUS1208+4
206: #define MM_OPUS1208_WAVEIN MM_MEDIAVISION_OPUS1208+5
207: #define MM_OPUS1208_MIXER MM_MEDIAVISION_OPUS1208+6
208: #define MM_OPUS1208_AUX MM_MEDIAVISION_OPUS1208+7
209:
210:
211: //
212: // Opus MV1216 Chipset
213: //
214: #define MM_MEDIAVISION_OPUS1216 0x90
215: #define MM_OPUS1216_MIDIOUT MM_MEDIAVISION_OPUS1216+1
216: #define MM_OPUS1216_MIDIIN MM_MEDIAVISION_OPUS1216+2
217: #define MM_OPUS1216_SYNTH MM_MEDIAVISION_OPUS1216+3
218: #define MM_OPUS1216_WAVEOUT MM_MEDIAVISION_OPUS1216+4
219: #define MM_OPUS1216_WAVEIN MM_MEDIAVISION_OPUS1216+5
220: #define MM_OPUS1216_MIXER MM_MEDIAVISION_OPUS1216+6
221: #define MM_OPUS1216_AUX MM_MEDIAVISION_OPUS1216+7
222:
223:
224: //
225: // Mixer
226: //
227: #define MIXERR_BASE 512
228:
229: /* MM_VOCALTEC Product IDs */
230: #define MM_VOCALTEC_WAVEOUT 1 /* Vocaltec Waveform output port */
231: #define MM_VOCALTEC_WAVEIN 2 /* Vocaltec Waveform input port */
232:
233: /* MM_ROLAND Product IDs */
234: #define MM_ROLAND_MPU401_MIDIOUT 15
235: #define MM_ROLAND_MPU401_MIDIIN 16
236: #define MM_ROLAND_SMPU_MIDIOUTA 17
237: #define MM_ROLAND_SMPU_MIDIOUTB 18
238: #define MM_ROLAND_SMPU_MIDIINA 19
239: #define MM_ROLAND_SMPU_MIDIINB 20
240: #define MM_ROLAND_SC7_MIDIOUT 21
241: #define MM_ROLAND_SC7_MIDIIN 22
242:
243:
244: /* MM_DIGISPEECH Product IDs */
245: #define MM_DIGISP_WAVEOUT 1 /* Digispeech Waveform output port */
246: #define MM_DIGISP_WAVEIN 2 /* Digispeech Waveform input port */
247:
248: /* MM_NEC Product IDs */
249:
250: /* MM_ATI Product IDs */
251:
252: /* MM_WANGLABS Product IDs */
253:
254: #define MM_WANGLABS_WAVEIN1 1
255: /* 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 */
256: #define MM_WANGLABS_WAVEOUT1 2
257: /* Output audio wave device present on the CPU board of the Wang models listed above. */
258:
259: /* MM_TANDY Product IDs */
260:
261: /* MM_VOYETRA Product IDs */
262:
263: /* MM_ANTEX Product IDs */
264:
265: /* MM_ICL_PS Product IDs */
266:
267: /* MM_INTEL Product IDs */
268:
269: #define MM_INTELOPD_WAVEIN 1 // HID2 WaveAudio Input driver
270: #define MM_INTELOPD_WAVEOUT 101 // HID2 WaveAudio Output driver
271: #define MM_INTELOPD_AUX 401 // HID2 Auxiliary driver (required for mixing functions)
272:
273: /* MM_GRAVIS Product IDs */
274:
275: /* MM_VAL Product IDs */
276:
277: // values not defined by Manufacturer
278:
279: // #define MM_VAL_MICROKEY_AP_WAVEIN ??? // Microkey/AudioPort Waveform Input
280: // #define MM_VAL_MICROKEY_AP_WAVEOUT ??? // Microkey/AudioPort Waveform Output
281:
282: /* MM_INTERACTIVE Product IDs */
283:
284: #define MM_INTERACTIVE_WAVEIN 0x45 // no comment provided by Manufacturer
285: #define MM_INTERACTIVE_WAVEOUT 0x45 // no comment provided by Manufacturer
286:
287: /* MM_YAMAHA Product IDs */
288:
289: #define MM_YAMAHA_GSS_SYNTH 0x01 // Yamaha Gold Sound Standard FM sythesis driver
290: #define MM_YAMAHA_GSS_WAVEOUT 0x02 // Yamaha Gold Sound Standard wave output driver
291: #define MM_YAMAHA_GSS_WAVEIN 0x03 // Yamaha Gold Sound Standard wave input driver
292: #define MM_YAMAHA_GSS_MIDIOUT 0x04 // Yamaha Gold Sound Standard midi output driver
293: #define MM_YAMAHA_GSS_MIDIIN 0x05 // Yamaha Gold Sound Standard midi input driver
294: #define MM_YAMAHA_GSS_AUX 0x06 // Yamaha Gold Sound Standard auxillary driver for mixer functions
295:
296: /* MM_EVEREX Product IDs */
297:
298: #define MM_EVEREX_CARRIER 0x01 // Everex Carrier SL/25 Notebook
299:
300: /* MM_ECHO Product IDs */
301:
302: #define MM_ECHO_SYNTH 0x01 // Echo EuSythesis driver
303: #define MM_ECHO_WAVEOUT 0x02 // Wave output driver
304: #define MM_ECHO_WAVEIN 0x03 // Wave input driver
305: #define MM_ECHO_MIDIOUT 0x04 // MIDI output driver
306: #define MM_ECHO_MIDIIN 0x05 // MIDI input driver
307: #define MM_ECHO_AUX 0x06 // auxillary driver for mixer functions
308:
309:
310: /* MM_SIERRA Product IDs */
311:
312: #define MM_SIERRA_ARIA_MIDIOUT 0x14 // Sierra Aria MIDI output
313: #define MM_SIERRA_ARIA_MIDIIN 0x15 // Sierra Aria MIDI input
314: #define MM_SIERRA_ARIA_SYNTH 0x16 // Sierra Aria Synthesizer
315: #define MM_SIERRA_ARIA_WAVEOUT 0x17 // Sierra Aria Waveform output
316: #define MM_SIERRA_ARIA_WAVEIN 0x18 // Sierra Aria Waveform input
317: #define MM_SIERRA_ARIA_AUX 0x19 // Siarra Aria Auxiliary device
318:
319: /* MM_CAT Product IDs */
320:
321: /* MM_APPS Product IDs */
322:
323: /* MM_DSP_GROUP Product IDs */
324:
325: #define MM_DSP_GROUP_TRUESPEECH 0x01 // High quality 9.54:1 Speech Compression Vocoder
326:
327: /* MM_MELABS Product IDs */
328:
329: #define MM_MELABS_MIDI2GO 0x01 // parellel port MIDI interface
330:
331: #endif
332:
333: /*////////////////////////////////////////////////////////////////////////// */
334:
335: #ifndef NONEWWAVE
336:
337: /* WAVE form wFormatTag IDs */
338: #define WAVE_FORMAT_UNKNOWN (0x0000)
339: #define WAVE_FORMAT_ADPCM (0x0002)
340: #define WAVE_FORMAT_IBM_CVSD (0x0005)
341: #define WAVE_FORMAT_ALAW (0x0006)
342: #define WAVE_FORMAT_MULAW (0x0007)
343: #define WAVE_FORMAT_OKI_ADPCM (0x0010)
344: #define WAVE_FORMAT_DVI_ADPCM (0x0011)
345: #define WAVE_FORMAT_IMA_ADPCM (WAVE_FORMAT_DVI_ADPCM)
346: #define WAVE_FORMAT_DIGISTD (0x0015)
347: #define WAVE_FORMAT_DIGIFIX (0x0016)
348: #define WAVE_FORMAT_YAMAHA_ADPCM (0x0020)
349: #define WAVE_FORMAT_SONARC (0x0021)
350: #define WAVE_FORMAT_DSPGROUP_TRUESPEECH (0x0022)
351: #define WAVE_FORMAT_ECHOSC1 (0x0023)
352: #define WAVE_FORMAT_CREATIVE_ADPCM (0x0200)
353:
354: #endif /* NONEWWAVE */
355:
356:
357: #ifndef WAVE_FORMAT_PCM
358:
359: /* general waveform format structure (information common to all formats) */
360: typedef struct waveformat_tag {
361: WORD wFormatTag; /* format type */
362: WORD nChannels; /* number of channels (i.e. mono, stereo...) */
363: DWORD nSamplesPerSec; /* sample rate */
364: DWORD nAvgBytesPerSec; /* for buffer estimation */
365: WORD nBlockAlign; /* block size of data */
366: } WAVEFORMAT;
367: typedef WAVEFORMAT *PWAVEFORMAT;
368: typedef WAVEFORMAT NEAR *NPWAVEFORMAT;
369: typedef WAVEFORMAT FAR *LPWAVEFORMAT;
370:
371: /* flags for wFormatTag field of WAVEFORMAT */
372: #define WAVE_FORMAT_PCM 1
373:
374: /* specific waveform format structure for PCM data */
375: typedef struct pcmwaveformat_tag {
376: WAVEFORMAT wf;
377: WORD wBitsPerSample;
378: } PCMWAVEFORMAT;
379: typedef PCMWAVEFORMAT *PPCMWAVEFORMAT;
380: typedef PCMWAVEFORMAT NEAR *NPPCMWAVEFORMAT;
381: typedef PCMWAVEFORMAT FAR *LPPCMWAVEFORMAT;
382:
383:
384: #endif /* WAVE_FORMAT_PCM */
385:
386:
387:
388: /* general extended waveform format structure
389: Use this for all NON PCM formats
390: (information common to all formats)
391: */
392:
393: typedef struct waveformat_extended_tag {
394: WORD wFormatTag; /* format type */
395: WORD nChannels; /* number of channels (i.e. mono, stereo...) */
396: DWORD nSamplesPerSec; /* sample rate */
397: DWORD nAvgBytesPerSec; /* for buffer estimation */
398: WORD nBlockAlign; /* block size of data */
399: WORD wBitsPerSample; /* Number of bits per sample of mono data */
400: WORD cbSize; /* The count in bytes of the size of
401: extra information (after cbSize) */
402:
403: } WAVEFORMATEX;
404: typedef WAVEFORMATEX *PWAVEFORMATEX;
405: typedef WAVEFORMATEX NEAR *NPWAVEFORMATEX;
406: typedef WAVEFORMATEX FAR *LPWAVEFORMATEX;
407:
408:
409: #ifndef NONEWWAVE
410:
411: /* Define data for MS ADPCM */
412:
413: typedef struct adpcmcoef_tag {
414: short iCoef1;
415: short iCoef2;
416: } ADPCMCOEFSET;
417: typedef ADPCMCOEFSET *PADPCMCOEFSET;
418: typedef ADPCMCOEFSET NEAR *NPADPCMCOEFSET;
419: typedef ADPCMCOEFSET FAR *LPADPCMCOEFSET;
420:
421: typedef struct adpcmwaveformat_tag {
422: WAVEFORMATEX wfx;
423: WORD wSamplesPerBlock;
424: WORD wNumCoef;
425: ADPCMCOEFSET aCoef[];
426: } ADPCMWAVEFORMAT;
427: typedef ADPCMWAVEFORMAT *PADPCMWAVEFORMAT;
428: typedef ADPCMWAVEFORMAT NEAR *NPADPCMWAVEFORMAT;
429: typedef ADPCMWAVEFORMAT FAR *LPADPCMWAVEFORMAT;
430:
431:
432: //
433: // Intel's DVI ADPCM structure definitions
434: //
435: // for WAVE_FORMAT_DVI_ADPCM (0x0011)
436: //
437: //
438:
439: typedef struct dvi_adpcmwaveformat_tag {
440: WAVEFORMATEX wfx;
441: WORD wSamplesPerBlock;
442: } DVIADPCMWAVEFORMAT;
443: typedef DVIADPCMWAVEFORMAT *PDVIADPCMWAVEFORMAT;
444: typedef DVIADPCMWAVEFORMAT NEAR *NPDVIADPCMWAVEFORMAT;
445: typedef DVIADPCMWAVEFORMAT FAR *LPDVIADPCMWAVEFORMAT;
446:
447:
448: //
449: // IMA endorsed ADPCM structure definitions--note that this is exactly
450: // the same format as Intel's DVI ADPCM.
451: //
452: // for WAVE_FORMAT_IMA_ADPCM (0x0011)
453: //
454: //
455:
456: typedef struct ima_adpcmwaveformat_tag {
457: WAVEFORMATEX wfx;
458: WORD wSamplesPerBlock;
459: } IMAADPCMWAVEFORMAT;
460: typedef IMAADPCMWAVEFORMAT *PIMAADPCMWAVEFORMAT;
461: typedef IMAADPCMWAVEFORMAT NEAR *NPIMAADPCMWAVEFORMAT;
462: typedef IMAADPCMWAVEFORMAT FAR *LPIMAADPCMWAVEFORMAT;
463:
464:
465: //
466: // Speech Compression's Sonarc structure definitions
467: //
468: // for WAVE_FORMAT_SONARC (0x0021)
469: //
470: //
471:
472: typedef struct sonarcwaveformat_tag {
473: WAVEFORMATEX wfx;
474: WORD wCompType;
475: } SONARCWAVEFORMAT;
476: typedef SONARCWAVEFORMAT *PSONARCWAVEFORMAT;
477: typedef SONARCWAVEFORMAT NEAR *NPSONARCWAVEFORMAT;
478: typedef SONARCWAVEFORMAT FAR *LPSONARCWAVEFORMAT;
479:
480: //
481: // DSP Groups's TRUESPEECH structure definitions
482: //
483: // for WAVE_FORMAT_DSPGROUP_TRUESPEECH (0x0022)
484: //
485: //
486:
487: typedef struct truespeechwaveformat_tag {
488: WAVEFORMATEX wfx;
489: WORD nSamplesPerBlock;
490: } TRUESPEECHWAVEFORMAT;
491: typedef TRUESPEECHWAVEFORMAT *PTRUESPEECHWAVEFORMAT;
492: typedef TRUESPEECHWAVEFORMAT NEAR *NPTRUESPEECHWAVEFORMAT;
493: typedef TRUESPEECHWAVEFORMAT FAR *LPTRUESPEECHWAVEFORMAT;
494:
495:
496:
497: //
498: // Creative's ADPCM structure definitions
499: //
500: // for WAVE_FORMAT_CREATIVE_ADPCM (0x0200)
501: //
502: //
503:
504: typedef struct creative_adpcmwaveformat_tag {
505: WAVEFORMATEX wfx;
506: WORD wRevision;
507: } CREATIVEADPCMWAVEFORMAT;
508: typedef CREATIVEADPCMWAVEFORMAT *PCREATIVEADPCMWAVEFORMAT;
509: typedef CREATIVEADPCMWAVEFORMAT NEAR *NPCREATIVEADPCMWAVEFORMAT;
510: typedef CREATIVEADPCMWAVEFORMAT FAR *LPCREATIVEADPCMWAVEFORMAT;
511:
512: /*//////////////////////////////////////////////////////////////////////////
513: //
514: // New RIFF WAVE Chunks
515: //
516: */
517:
518: #define RIFFWAVE_inst mmioFOURCC('i','n','s','t')
519:
520: struct tag_s_RIFFWAVE_inst {
521: BYTE bUnshiftedNote;
522: char chFineTune;
523: char chGain;
524: BYTE bLowNote;
525: BYTE bHighNote;
526: BYTE bLowVelocity;
527: BYTE bHighVelocity;
528: };
529:
530: typedef struct tag_s_RIFFWAVE_INST s_RIFFWAVE_inst;
531:
532: #endif
533:
534: /*//////////////////////////////////////////////////////////////////////////
535: //
536: // New RIFF Forms
537: //
538: */
539:
540: #ifndef NONEWRIFF
541:
542: /* RIFF AVI */
543:
544: //
545: // AVI file format is specified in a seperate file (AVIFMT.H),
546: // which is available from the sources listed in MSFTMM
547: //
548:
549: /* RIFF CPPO */
550:
551: #define RIFFCPPO mmioFOURCC('C','P','P','O')
552:
553: #define RIFFCPPO_objr mmioFOURCC('o','b','j','r')
554: #define RIFFCPPO_obji mmioFOURCC('o','b','j','i')
555:
556: #define RIFFCPPO_clsr mmioFOURCC('c','l','s','r')
557: #define RIFFCPPO_clsi mmioFOURCC('c','l','s','i')
558:
559: #define RIFFCPPO_mbr mmioFOURCC('m','b','r',' ')
560:
561: #define RIFFCPPO_char mmioFOURCC('c','h','a','r')
562:
563:
564: #define RIFFCPPO_byte mmioFOURCC('b','y','t','e')
565: #define RIFFCPPO_int mmioFOURCC('i','n','t',' ')
566: #define RIFFCPPO_word mmioFOURCC('w','o','r','d')
567: #define RIFFCPPO_long mmioFOURCC('l','o','n','g')
568: #define RIFFCPPO_dwrd mmioFOURCC('d','w','r','d')
569: #define RIFFCPPO_flt mmioFOURCC('f','l','t',' ')
570: #define RIFFCPPO_dbl mmioFOURCC('d','b','l',' ')
571: #define RIFFCPPO_str mmioFOURCC('s','t','r',' ')
572:
573:
574: #endif
575:
576: /*//////////////////////////////////////////////////////////////////////////
577: //
578: // DIB Compression Defines
579: //
580: */
581:
582: #ifndef BI_BITFIELDS
583: #define BI_BITFIELDS 3
584: #endif
585:
586: #ifndef QUERYDIBSUPPORT
587:
588: #define QUERYDIBSUPPORT 3073
589: #define QDI_SETDIBITS 0x0001
590: #define QDI_GETDIBITS 0x0002
591: #define QDI_DIBTOSCREEN 0x0004
592: #define QDI_STRETCHDIB 0x0008
593:
594: #endif
595:
596:
597: /*//////////////////////////////////////////////////////////////////////////
598: //
599: // Defined IC types
600: */
601:
602: #ifndef NONEWIC
603:
604: #ifndef ICTYPE_VIDEO
605: #define ICTYPE_VIDEO mmioFOURCC('v', 'i', 'd', 'c')
606: #define ICTYPE_AUDIO mmioFOURCC('a', 'u', 'd', 'c')
607: #endif
608:
609: #endif
610:
611: #ifndef RC_INVOKED
612: #pragma pack() /* Revert to default packing */
613: #endif /* RC_INVOKED */
614:
615: #ifdef __cplusplus
616: } /* End of extern "C" { */
617: #endif /* __cplusplus */
618:
619: #endif /* _INC_MMREG */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.