diff options
Diffstat (limited to '')
-rw-r--r-- | public/sdk/inc/mmreg.h | 1638 |
1 files changed, 1638 insertions, 0 deletions
diff --git a/public/sdk/inc/mmreg.h b/public/sdk/inc/mmreg.h new file mode 100644 index 000000000..26a63be3a --- /dev/null +++ b/public/sdk/inc/mmreg.h @@ -0,0 +1,1638 @@ +/**************************************************************************** + * + * mmreg.h - Registered Multimedia Information Public Header File + * + * Copyright (c) 1991-1995 Microsoft Corporation. All Rights Reserved. + * + * Multimedia Registration + * + * Place this system include file in your INCLUDE path with the Windows SDK + * include files. + * + * Obtain the Multimedia Developer Registration Kit from Compuserve in WINMM mrdk.zip. + * Please send applications and corrections to + * + * Heidi Breslauer + * Microsoft Corporation + * Multimedia Technology Group + * One Microsoft Way + * Redmond, WA 98052-6399 + * + * Developer Services: + * 800-227-4679 x11771 + * + * Last Update: 04/05/94 * + ***************************************************************************/ + +// Define the following to skip definitions +// +// NOMMIDS Multimedia IDs are not defined +// NONEWWAVE No new waveform types are defined except WAVEFORMATEX +// NONEWRIFF No new RIFF forms are defined +// NOJPEGDIB No JPEG DIB definitions +// NONEWIC No new Image Compressor types are defined +// NOBITMAP No extended bitmap info header definition + +#ifndef _INC_MMREG +/* use version number to verify compatibility */ +#define _INC_MMREG 144 // version * 100 + revision + +#ifndef RC_INVOKED +//current chicago line#pragma pack(1) /* Assume byte packing throughout */ +#include "pshpack1.h" /* Assume byte packing throughout */ +#endif /* RC_INVOKED */ + +#ifdef __cplusplus +extern "C" { /* Assume C declarations for C++ */ +#endif /* __cplusplus */ + +#ifndef NOMMIDS + +/* manufacturer IDs */ +#ifndef MM_MICROSOFT +#define MM_MICROSOFT 1 /* Microsoft Corporation */ +#endif + +#define MM_CREATIVE 2 /* Creative Labs, Inc */ +#define MM_MEDIAVISION 3 /* Media Vision, Inc. */ +#define MM_FUJITSU 4 /* Fujitsu Corp. */ +#define MM_ARTISOFT 20 /* Artisoft, Inc. */ +#define MM_TURTLE_BEACH 21 /* Turtle Beach, Inc. */ +#define MM_IBM 22 /* IBM Corporation */ +#define MM_VOCALTEC 23 /* Vocaltec LTD. */ +#define MM_ROLAND 24 /* Roland */ +#define MM_DSP_SOLUTIONS 25 /* DSP Solutions, Inc. */ +#define MM_NEC 26 /* NEC */ +#define MM_ATI 27 /* ATI */ +#define MM_WANGLABS 28 /* Wang Laboratories, Inc */ +#define MM_TANDY 29 /* Tandy Corporation */ +#define MM_VOYETRA 30 /* Voyetra */ +#define MM_ANTEX 31 /* Antex Electronics Corporation */ +#define MM_ICL_PS 32 /* ICL Personal Systems */ +#define MM_INTEL 33 /* Intel Corporation */ +#define MM_GRAVIS 34 /* Advanced Gravis */ +#define MM_VAL 35 /* Video Associates Labs, Inc. */ +#define MM_INTERACTIVE 36 /* InterActive Inc */ +#define MM_YAMAHA 37 /* Yamaha Corporation of America */ +#define MM_EVEREX 38 /* Everex Systems, Inc */ +#define MM_ECHO 39 /* Echo Speech Corporation */ +#define MM_SIERRA 40 /* Sierra Semiconductor Corp */ +#define MM_CAT 41 /* Computer Aided Technologies */ +#define MM_APPS 42 /* APPS Software International */ +#define MM_DSP_GROUP 43 /* DSP Group, Inc */ +#define MM_MELABS 44 /* microEngineering Labs */ +#define MM_COMPUTER_FRIENDS 45 /* Computer Friends, Inc. */ +#define MM_ESS 46 /* ESS Technology */ +#define MM_AUDIOFILE 47 /* Audio, Inc. */ +#define MM_MOTOROLA 48 /* Motorola, Inc. */ +#define MM_CANOPUS 49 /* Canopus, co., Ltd. */ +#define MM_EPSON 50 /* Seiko Epson Corporation */ +#define MM_TRUEVISION 51 /* Truevision */ +#define MM_AZTECH 52 /* Aztech Labs, Inc. */ +#define MM_VIDEOLOGIC 53 /* Videologic */ +#define MM_SCALACS 54 /* SCALACS */ +#define MM_KORG 55 /* Toshihiko Okuhura, Korg Inc. */ +#define MM_APT 56 /* Audio Processing Technology */ +#define MM_ICS 57 /* Integrated Circuit Systems, Inc. */ +#define MM_ITERATEDSYS 58 /* Iterated Systems, Inc. */ +#define MM_METHEUS 59 /* Metheus */ +#define MM_LOGITECH 60 /* Logitech, Inc. */ +#define MM_WINNOV 61 /* Winnov, Inc. */ +#define MM_NCR 62 /* NCR Corporation */ +#define MM_EXAN 63 /* EXAN */ +#define MM_AST 64 /* AST Research Inc. */ +#define MM_WILLOWPOND 65 /* Willow Pond Corporation */ +#define MM_SONICFOUNDRY 66 /* Sonic Foundry */ +#define MM_VITEC 67 /* Vitec Multimedia */ +#define MM_MOSCOM 68 /* MOSCOM Corporation */ +#define MM_SILICONSOFT 69 /* Silicon Soft, Inc. */ +#define MM_SUPERMAC 73 /* Supermac */ +#define MM_AUDIOPT 74 /* Audio Processing Technology */ +#define MM_SPEECHCOMP 76 /* Speech Compression */ +#define MM_DOLBY 78 /* Dolby Laboratories */ +#define MM_OKI 79 /* OKI */ +#define MM_AURAVISION 80 /* AuraVision Corporation */ +#define MM_OLIVETTI 81 /* Olivetti */ +#define MM_IOMAGIC 82 /* I/O Magic Corporation */ +#define MM_MATSUSHITA 83 /* Matsushita Electric Industrial Co., LTD. */ +#define MM_CONTROLRES 84 /* Control Resources Limited */ +#define MM_XEBEC 85 /* Xebec Multimedia Solutions Limited */ +#define MM_NEWMEDIA 86 /* New Media Corporation */ +#define MM_NMS 87 /* Natural MicroSystems */ +#define MM_LYRRUS 88 /* Lyrrus Inc. */ +#define MM_COMPUSIC 89 /* Compusic */ +#define MM_OPTI 90 /* OPTi Computers Inc. */ +#define MM_DIALOGIC 93 /* Dialogic Corporation */ + +/* MM_MICROSOFT product IDs */ + +#ifndef MM_MIDI_MAPPER + +#define MM_MIDI_MAPPER 1 /* Midi Mapper */ +#define MM_WAVE_MAPPER 2 /* Wave Mapper */ +#define MM_SNDBLST_MIDIOUT 3 /* Sound Blaster MIDI output port */ +#define MM_SNDBLST_MIDIIN 4 /* Sound Blaster MIDI input port */ +#define MM_SNDBLST_SYNTH 5 /* Sound Blaster internal synth */ +#define MM_SNDBLST_WAVEOUT 6 /* Sound Blaster waveform output */ +#define MM_SNDBLST_WAVEIN 7 /* Sound Blaster waveform input */ +#define MM_ADLIB 9 /* Ad Lib Compatible synth */ +#define MM_MPU401_MIDIOUT 10 /* MPU 401 compatible MIDI output port */ +#define MM_MPU401_MIDIIN 11 /* MPU 401 compatible MIDI input port */ +#define MM_PC_JOYSTICK 12 /* Joystick adapter */ + +#endif + +#define MM_PCSPEAKER_WAVEOUT 13 /* PC speaker waveform output */ +#define MM_MSFT_WSS_WAVEIN 14 /* MS Audio Board waveform input */ +#define MM_MSFT_WSS_WAVEOUT 15 /* MS Audio Board waveform output */ +#define MM_MSFT_WSS_FMSYNTH_STEREO 16 /* MS Audio Board Stereo FM synth */ +#define MM_MSFT_WSS_MIXER 17 /* MS Audio Board Mixer Driver */ +#define MM_MSFT_WSS_OEM_WAVEIN 18 /* MS OEM Audio Board waveform input */ +#define MM_MSFT_WSS_OEM_WAVEOUT 19 /* MS OEM Audio Board waveform output */ +#define MM_MSFT_WSS_OEM_FMSYNTH_STEREO 20 /* MS OEM Audio Board Stereo FM Synth */ +#define MM_MSFT_WSS_AUX 21 /* MS Audio Board Aux. Port */ +#define MM_MSFT_WSS_OEM_AUX 22 /* MS OEM Audio Aux Port */ +#define MM_MSFT_GENERIC_WAVEIN 23 /* MS Vanilla driver waveform input */ +#define MM_MSFT_GENERIC_WAVEOUT 24 /* MS Vanilla driver wavefrom output */ +#define MM_MSFT_GENERIC_MIDIIN 25 /* MS Vanilla driver MIDI in */ +#define MM_MSFT_GENERIC_MIDIOUT 26 /* MS Vanilla driver MIDI external out */ +#define MM_MSFT_GENERIC_MIDISYNTH 27 /* MS Vanilla driver MIDI synthesizer */ +#define MM_MSFT_GENERIC_AUX_LINE 28 /* MS Vanilla driver aux (line in) */ +#define MM_MSFT_GENERIC_AUX_MIC 29 /* MS Vanilla driver aux (mic) */ +#define MM_MSFT_GENERIC_AUX_CD 30 /* MS Vanilla driver aux (CD) */ +#define MM_MSFT_WSS_OEM_MIXER 31 /* MS OEM Audio Board Mixer Driver */ +#define MM_MSFT_MSACM 32 /* MS Audio Compression Manager */ +#define MM_MSFT_ACM_MSADPCM 33 /* MS ADPCM Codec */ +#define MM_MSFT_ACM_IMAADPCM 34 /* IMA ADPCM Codec */ +#define MM_MSFT_ACM_MSFILTER 35 /* MS Filter */ +#define MM_MSFT_ACM_GSM610 36 /* GSM 610 codec */ +#define MM_MSFT_ACM_G711 37 /* G.711 codec */ +#define MM_MSFT_ACM_PCM 38 /* PCM converter */ + + // Microsoft Windows Sound System drivers + +#define MM_WSS_SB16_WAVEIN 39 /* Sound Blaster 16 waveform input */ +#define MM_WSS_SB16_WAVEOUT 40 /* Sound Blaster 16 waveform output */ +#define MM_WSS_SB16_MIDIIN 41 /* Sound Blaster 16 midi-in */ +#define MM_WSS_SB16_MIDIOUT 42 /* Sound Blaster 16 midi out */ +#define MM_WSS_SB16_SYNTH 43 /* Sound Blaster 16 FM Synthesis */ +#define MM_WSS_SB16_AUX_LINE 44 /* Sound Blaster 16 aux (line in) */ +#define MM_WSS_SB16_AUX_CD 45 /* Sound Blaster 16 aux (CD) */ +#define MM_WSS_SB16_MIXER 46 /* Sound Blaster 16 mixer device */ +#define MM_WSS_SBPRO_WAVEIN 47 /* Sound Blaster Pro waveform input */ +#define MM_WSS_SBPRO_WAVEOUT 48 /* Sound Blaster Pro waveform output */ +#define MM_WSS_SBPRO_MIDIIN 49 /* Sound Blaster Pro midi in */ +#define MM_WSS_SBPRO_MIDIOUT 50 /* Sound Blaster Pro midi out */ +#define MM_WSS_SBPRO_SYNTH 51 /* Sound Blaster Pro FM synthesis */ +#define MM_WSS_SBPRO_AUX_LINE 52 /* Sound Blaster Pro aux (line in ) */ +#define MM_WSS_SBPRO_AUX_CD 53 /* Sound Blaster Pro aux (CD) */ +#define MM_WSS_SBPRO_MIXER 54 /* Sound Blaster Pro mixer */ + +#define MM_MSFT_WSS_NT_WAVEIN 55 /* WSS NT wave in */ +#define MM_MSFT_WSS_NT_WAVEOUT 56 /* WSS NT wave out */ +#define MM_MSFT_WSS_NT_FMSYNTH_STEREO 57 /* WSS NT FM synth */ +#define MM_MSFT_WSS_NT_MIXER 58 /* WSS NT mixer */ +#define MM_MSFT_WSS_NT_AUX 59 /* WSS NT aux */ + +#define MM_MSFT_SB16_WAVEIN 60 /* Sound Blaster 16 waveform input */ +#define MM_MSFT_SB16_WAVEOUT 61 /* Sound Blaster 16 waveform output */ +#define MM_MSFT_SB16_MIDIIN 62 /* Sound Blaster 16 midi-in */ +#define MM_MSFT_SB16_MIDIOUT 63 /* Sound Blaster 16 midi out */ +#define MM_MSFT_SB16_SYNTH 64 /* Sound Blaster 16 FM Synthesis */ +#define MM_MSFT_SB16_AUX_LINE 65 /* Sound Blaster 16 aux (line in) */ +#define MM_MSFT_SB16_AUX_CD 66 /* Sound Blaster 16 aux (CD) */ +#define MM_MSFT_SB16_MIXER 67 /* Sound Blaster 16 mixer device */ +#define MM_MSFT_SBPRO_WAVEIN 68 /* Sound Blaster Pro waveform input */ +#define MM_MSFT_SBPRO_WAVEOUT 69 /* Sound Blaster Pro waveform output */ +#define MM_MSFT_SBPRO_MIDIIN 70 /* Sound Blaster Pro midi in */ +#define MM_MSFT_SBPRO_MIDIOUT 71 /* Sound Blaster Pro midi out */ +#define MM_MSFT_SBPRO_SYNTH 72 /* Sound Blaster Pro FM synthesis */ +#define MM_MSFT_SBPRO_AUX_LINE 73 /* Sound Blaster Pro aux (line in ) */ +#define MM_MSFT_SBPRO_AUX_CD 74 /* Sound Blaster Pro aux (CD) */ +#define MM_MSFT_SBPRO_MIXER 75 /* Sound Blaster Pro mixer */ + +#define MM_MSFT_MSOPL_SYNTH 76 /* Yamaha OPL2/OPL3 compatible FM synthesis */ + +/* MM_CREATIVE product IDs */ +#define MM_CREATIVE_SB15_WAVEIN 1 /* SB (r) 1.5 waveform input */ +#define MM_CREATIVE_SB20_WAVEIN 2 +#define MM_CREATIVE_SBPRO_WAVEIN 3 +#define MM_CREATIVE_SBP16_WAVEIN 4 +#define MM_CREATIVE_SB15_WAVEOUT 101 +#define MM_CREATIVE_SB20_WAVEOUT 102 +#define MM_CREATIVE_SBPRO_WAVEOUT 103 +#define MM_CREATIVE_SBP16_WAVEOUT 104 +#define MM_CREATIVE_MIDIOUT 201 /* SB (r) */ +#define MM_CREATIVE_MIDIIN 202 /* SB (r) */ +#define MM_CREATIVE_FMSYNTH_MONO 301 /* SB (r) */ +#define MM_CREATIVE_FMSYNTH_STEREO 302 /* SB Pro (r) stereo synthesizer */ +#define MM_CREATIVE_AUX_CD 401 /* SB Pro (r) aux (CD) */ +#define MM_CREATIVE_AUX_LINE 402 /* SB Pro (r) aux (Line in ) */ +#define MM_CREATIVE_AUX_MIC 403 /* SB Pro (r) aux (mic) */ +#define MM_CREATIVE_AUX_MASTER 404 +#define MM_CREATIVE_AUX_PCSPK 405 +#define MM_CREATIVE_AUX_WAVE 406 +#define MM_CREATIVE_AUX_MIDI 407 +#define MM_CREATIVE_SBPRO_MIXER 408 +#define MM_CREATIVE_SB16_MIXER 409 + +/* MM_MEDIAVISION product IDs */ + +// Pro Audio Spectrum +#define MM_MEDIAVISION_PROAUDIO 0x10 +#define MM_PROAUD_MIDIOUT (MM_MEDIAVISION_PROAUDIO+1) +#define MM_PROAUD_MIDIIN (MM_MEDIAVISION_PROAUDIO+2) +#define MM_PROAUD_SYNTH (MM_MEDIAVISION_PROAUDIO+3) +#define MM_PROAUD_WAVEOUT (MM_MEDIAVISION_PROAUDIO+4) +#define MM_PROAUD_WAVEIN (MM_MEDIAVISION_PROAUDIO+5) +#define MM_PROAUD_MIXER (MM_MEDIAVISION_PROAUDIO+6) +#define MM_PROAUD_AUX (MM_MEDIAVISION_PROAUDIO+7) + +// Thunder Board +#define MM_MEDIAVISION_THUNDER 0x20 +#define MM_THUNDER_SYNTH (MM_MEDIAVISION_THUNDER+3) +#define MM_THUNDER_WAVEOUT (MM_MEDIAVISION_THUNDER+4) +#define MM_THUNDER_WAVEIN (MM_MEDIAVISION_THUNDER+5) +#define MM_THUNDER_AUX (MM_MEDIAVISION_THUNDER+7) + +// Audio Port +#define MM_MEDIAVISION_TPORT 0x40 +#define MM_TPORT_WAVEOUT (MM_MEDIAVISION_TPORT+1) +#define MM_TPORT_WAVEIN (MM_MEDIAVISION_TPORT+2) +#define MM_TPORT_SYNTH (MM_MEDIAVISION_TPORT+3) + +// Pro Audio Spectrum Plus +#define MM_MEDIAVISION_PROAUDIO_PLUS 0x50 +#define MM_PROAUD_PLUS_MIDIOUT (MM_MEDIAVISION_PROAUDIO_PLUS+1) +#define MM_PROAUD_PLUS_MIDIIN (MM_MEDIAVISION_PROAUDIO_PLUS+2) +#define MM_PROAUD_PLUS_SYNTH (MM_MEDIAVISION_PROAUDIO_PLUS+3) +#define MM_PROAUD_PLUS_WAVEOUT (MM_MEDIAVISION_PROAUDIO_PLUS+4) +#define MM_PROAUD_PLUS_WAVEIN (MM_MEDIAVISION_PROAUDIO_PLUS+5) +#define MM_PROAUD_PLUS_MIXER (MM_MEDIAVISION_PROAUDIO_PLUS+6) +#define MM_PROAUD_PLUS_AUX (MM_MEDIAVISION_PROAUDIO_PLUS+7) + +// Pro Audio Spectrum 16 +#define MM_MEDIAVISION_PROAUDIO_16 0x60 +#define MM_PROAUD_16_MIDIOUT (MM_MEDIAVISION_PROAUDIO_16+1) +#define MM_PROAUD_16_MIDIIN (MM_MEDIAVISION_PROAUDIO_16+2) +#define MM_PROAUD_16_SYNTH (MM_MEDIAVISION_PROAUDIO_16+3) +#define MM_PROAUD_16_WAVEOUT (MM_MEDIAVISION_PROAUDIO_16+4) +#define MM_PROAUD_16_WAVEIN (MM_MEDIAVISION_PROAUDIO_16+5) +#define MM_PROAUD_16_MIXER (MM_MEDIAVISION_PROAUDIO_16+6) +#define MM_PROAUD_16_AUX (MM_MEDIAVISION_PROAUDIO_16+7) + +// Pro Audio Studio 16 +#define MM_MEDIAVISION_PROSTUDIO_16 0x60 +#define MM_STUDIO_16_MIDIOUT (MM_MEDIAVISION_PROSTUDIO_16+1) +#define MM_STUDIO_16_MIDIIN (MM_MEDIAVISION_PROSTUDIO_16+2) +#define MM_STUDIO_16_SYNTH (MM_MEDIAVISION_PROSTUDIO_16+3) +#define MM_STUDIO_16_WAVEOUT (MM_MEDIAVISION_PROSTUDIO_16+4) +#define MM_STUDIO_16_WAVEIN (MM_MEDIAVISION_PROSTUDIO_16+5) +#define MM_STUDIO_16_MIXER (MM_MEDIAVISION_PROSTUDIO_16+6) +#define MM_STUDIO_16_AUX (MM_MEDIAVISION_PROSTUDIO_16+7) + +// CDPC +#define MM_MEDIAVISION_CDPC 0x70 +#define MM_CDPC_MIDIOUT (MM_MEDIAVISION_CDPC+1) +#define MM_CDPC_MIDIIN (MM_MEDIAVISION_CDPC+2) +#define MM_CDPC_SYNTH (MM_MEDIAVISION_CDPC+3) +#define MM_CDPC_WAVEOUT (MM_MEDIAVISION_CDPC+4) +#define MM_CDPC_WAVEIN (MM_MEDIAVISION_CDPC+5) +#define MM_CDPC_MIXER (MM_MEDIAVISION_CDPC+6) +#define MM_CDPC_AUX (MM_MEDIAVISION_CDPC+7) + +// Opus MV 1208 Chipsent +#define MM_MEDIAVISION_OPUS1208 0x80 +#define MM_OPUS401_MIDIOUT (MM_MEDIAVISION_OPUS1208+1) +#define MM_OPUS401_MIDIIN (MM_MEDIAVISION_OPUS1208+2) +#define MM_OPUS1208_SYNTH (MM_MEDIAVISION_OPUS1208+3) +#define MM_OPUS1208_WAVEOUT (MM_MEDIAVISION_OPUS1208+4) +#define MM_OPUS1208_WAVEIN (MM_MEDIAVISION_OPUS1208+5) +#define MM_OPUS1208_MIXER (MM_MEDIAVISION_OPUS1208+6) +#define MM_OPUS1208_AUX (MM_MEDIAVISION_OPUS1208+7) + +// Opus MV 1216 chipset +#define MM_MEDIAVISION_OPUS1216 0x90 +#define MM_OPUS1216_MIDIOUT (MM_MEDIAVISION_OPUS1216+1) +#define MM_OPUS1216_MIDIIN (MM_MEDIAVISION_OPUS1216+2) +#define MM_OPUS1216_SYNTH (MM_MEDIAVISION_OPUS1216+3) +#define MM_OPUS1216_WAVEOUT (MM_MEDIAVISION_OPUS1216+4) +#define MM_OPUS1216_WAVEIN (MM_MEDIAVISION_OPUS1216+5) +#define MM_OPUS1216_MIXER (MM_MEDIAVISION_OPUS1216+6) +#define MM_OPUS1216_AUX (MM_MEDIAVISION_OPUS1216+7) + +/* MM_ARTISOFT product IDs */ +#define MM_ARTISOFT_SBWAVEIN 1 /* Artisoft sounding Board waveform input */ +#define MM_ARTISOFT_SBWAVEOUT 2 /* Artisoft sounding Board waveform output */ + +/* MM_IBM product IDs */ +#define MM_MMOTION_WAVEAUX 1 /* IBM M-Motion Auxiliary Device */ +#define MM_MMOTION_WAVEOUT 2 /* IBM M-Motion Waveform output */ +#define MM_MMOTION_WAVEIN 3 /* IBM M-Motion Waveform Input */ +#define MM_IBM_PCMCIA_WAVEIN 11 /* IBM waveform input */ +#define MM_IBM_PCMCIA_WAVEOUT 12 /* IBM Waveform output */ +#define MM_IBM_PCMCIA_SYNTH 13 /* IBM Midi Synthesis */ +#define MM_IBM_PCMCIA_MIDIIN 14 /* IBM external MIDI in */ +#define MM_IBM_PCMCIA_MIDIOUT 15 /* IBM external MIDI out */ +#define MM_IBM_PCMCIA_AUX 16 /* IBM auxiliary control */ + +/* MM_VOCALTEC product IDs */ +#define MM_VOCALTEC_WAVEOUT 1 +#define MM_VOCALTEC_WAVEIN 2 + +/* MM_ROLAND product IDs */ +#define MM_ROLAND_MPU401_MIDIOUT 15 +#define MM_ROLAND_MPU401_MIDIIN 16 +#define MM_ROLAND_SMPU_MIDIOUTA 17 +#define MM_ROLAND_SMPU_MIDIOUTB 18 +#define MM_ROLAND_SMPU_MIDIINA 19 +#define MM_ROLAND_SMPU_MIDIINB 20 +#define MM_ROLAND_SC7_MIDIOUT 21 +#define MM_ROLAND_SC7_MIDIIN 22 +#define MM_ROLAND_SERIAL_MIDIOUT 23 +#define MM_ROLAND_SERIAL_MIDIIN 24 + +/* MM_DSP_SOLUTIONS product IDs */ +#define MM_DSP_SOLUTIONS_WAVEOUT 1 +#define MM_DSP_SOLUTIONS_WAVEIN 2 +#define MM_DSP_SOLUTIONS_SYNTH 3 +#define MM_DSP_SOLUTIONS_AUX 4 + +/* MM_WANGLABS product IDs */ +#define MM_WANGLABS_WAVEIN1 1 /* Input audio wave on CPU board models: Exec 4010, 4030, 3450; PC 251/25c, pc 461/25s , pc 461/33c */ +#define MM_WANGLABS_WAVEOUT1 2 + +/* MM_TANDY product IDs */ +#define MM_TANDY_VISWAVEIN 1 +#define MM_TANDY_VISWAVEOUT 2 +#define MM_TANDY_VISBIOSSYNTH 3 +#define MM_TANDY_SENS_MMAWAVEIN 4 +#define MM_TANDY_SENS_MMAWAVEOUT 5 +#define MM_TANDY_SENS_MMAMIDIIN 6 +#define MM_TANDY_SENS_MMAMIDIOUT 7 +#define MM_TANDY_SENS_VISWAVEOUT 8 +#define MM_TANDY_PSSJWAVEIN 9 +#define MM_TANDY_PSSJWAVEOUT 10 + +/* product IDs */ +#define MM_INTELOPD_WAVEIN 1 /* HID2 WaveAudio Driver */ +#define MM_INTELOPD_WAVEOUT 101 /* HID2 */ +#define MM_INTELOPD_AUX 401 /* HID2 for mixing */ + +/* MM_INTERACTIVE product IDs */ +#define MM_INTERACTIVE_WAVEIN 0x45 +#define MM_INTERACTIVE_WAVEOUT 0x45 + +/* MM_YAMAHA product IDs */ +#define MM_YAMAHA_GSS_SYNTH 0x01 +#define MM_YAMAHA_GSS_WAVEOUT 0x02 +#define MM_YAMAHA_GSS_WAVEIN 0x03 +#define MM_YAMAHA_GSS_MIDIOUT 0x04 +#define MM_YAMAHA_GSS_MIDIIN 0x05 +#define MM_YAMAHA_GSS_AUX 0x06 + +/* MM_EVEREX product IDs */ +#define MM_EVEREX_CARRIER 0x01 + +/* MM_ECHO product IDs */ +#define MM_ECHO_SYNTH 0x01 +#define MM_ECHO_WAVEOUT 0x02 +#define MM_ECHO_WAVEIN 0x03 +#define MM_ECHO_MIDIOUT 0x04 +#define MM_ECHO_MIDIIN 0x05 +#define MM_ECHO_AUX 0x06 + +/* MM_SIERRA product IDs */ +#define MM_SIERRA_ARIA_MIDIOUT 0x14 +#define MM_SIERRA_ARIA_MIDIIN 0x15 +#define MM_SIERRA_ARIA_SYNTH 0x16 +#define MM_SIERRA_ARIA_WAVEOUT 0x17 +#define MM_SIERRA_ARIA_WAVEIN 0x18 +#define MM_SIERRA_ARIA_AUX 0x19 +#define MM_SIERRA_ARIA_AUX2 0x20 + +/* MM_CAT product IDs */ +#define MM_CAT_WAVEOUT 1 + +/* MM_DSP_GROUP product IDs */ +#define MM_DSP_GROUP_TRUESPEECH 0x01 + +/* MM_MELABS product IDs */ +#define MM_MELABS_MIDI2GO 0x01 + +/* MM_ESS product IDs */ +#define MM_ESS_AMWAVEOUT 0x01 +#define MM_ESS_AMWAVEIN 0x02 +#define MM_ESS_AMAUX 0x03 +#define MM_ESS_AMSYNTH 0x04 +#define MM_ESS_AMMIDIOUT 0x05 +#define MM_ESS_AMMIDIIN 0x06 + +/* product IDs */ +#define MM_EPS_FMSND 1 + +/* MM_TRUEVISION product IDs */ +#define MM_TRUEVISION_WAVEIN1 1 +#define MM_TRUEVISION_WAVEOUT1 2 + +/* MM_AZTECH product IDs */ +#define MM_AZTECH_MIDIOUT 3 +#define MM_AZTECH_MIDIIN 4 +#define MM_AZTECH_WAVEIN 17 +#define MM_AZTECH_WAVEOUT 18 +#define MM_AZTECH_FMSYNTH 20 +#define MM_AZTECH_PRO16_WAVEIN 33 +#define MM_AZTECH_PRO16_WAVEOUT 34 +#define MM_AZTECH_PRO16_FMSYNTH 38 +#define MM_AZTECH_DSP16_WAVEIN 65 +#define MM_AZTECH_DSP16_WAVEOUT 66 +#define MM_AZTECH_DSP16_FMSYNTH 68 +#define MM_AZTECH_DSP16_WAVESYNTH 70 +#define MM_AZTECH_AUX_CD 401 +#define MM_AZTECH_AUX_LINE 402 +#define MM_AZTECH_AUX_MIC 403 + +/* MM_VIDEOLOGIC product IDs */ +#define MM_VIDEOLOGIC_MSWAVEIN 1 +#define MM_VIDEOLOGIC_MSWAVEOUT 2 + +/* MM_KORG product IDs */ +#define MM_KORG_PCIF_MIDIOUT 1 +#define MM_KORG_PCIF_MIDIIN 2 + +/* MM_APT product IDs */ +#define MM_APT_ACE100CD 1 + +/* MM_ICS product IDs */ +#define MM_ICS_WAVEDECK_WAVEOUT 1 /* MS WSS compatible card and driver */ +#define MM_ICS_WAVEDECK_WAVEIN 2 +#define MM_ICS_WAVEDECK_MIXER 3 +#define MM_ICS_WAVEDECK_AUX 4 +#define MM_ICS_WAVEDECK_SYNTH 5 + +/* MM_ITERATEDSYS product IDs */ +#define MM_ITERATEDSYS_FUFCODEC 1 + +/* MM_METHEUS product IDs */ +#define MM_METHEUS_ZIPPER 1 + +/* MM_WINNOV product IDs */ +#define MM_WINNOV_CAVIAR_WAVEIN 1 +#define MM_WINNOV_CAVIAR_WAVEOUT 2 +#define MM_WINNOV_CAVIAR_VIDC 3 +#define MM_WINNOV_CAVIAR_CHAMPAGNE 4 /* Fourcc is CHAM */ +#define MM_WINNOV_CAVIAR_YUV8 5 /* Fourcc is YUV8 */ + +/* MM_NCR product IDs */ +#define MM_NCR_BA_WAVEIN 1 +#define MM_NCR_BA_WAVEOUT 2 +#define MM_NCR_BA_SYNTH 3 +#define MM_NCR_BA_AUX 4 +#define MM_NCR_BA_MIXER 5 + +/* MM_VITEC product IDs */ +#define MM_VITEC_VMAKER 1 +#define MM_VITEC_VMPRO 2 + +/* MM_MOSCOM product IDs */ +#define MM_MOSCOM_VPC2400 1 /* Four Port Voice Processing / Voice Recognition Board */ + +/* MM_SILICONSOFT product IDs */ +#define MM_SILICONSOFT_SC1_WAVEIN 1 /* Waveform in , high sample rate */ +#define MM_SILICONSOFT_SC1_WAVEOUT 2 /* Waveform out , high sample rate */ +#define MM_SILICONSOFT_SC2_WAVEIN 3 /* Waveform in 2 channels, high sample rate */ +#define MM_SILICONSOFT_SC2_WAVEOUT 4 /* Waveform out 2 channels, high sample rate */ +#define MM_SILICONSOFT_SOUNDJR2_WAVEOUT 5 /* Waveform out, self powered, efficient */ +#define MM_SILICONSOFT_SOUNDJR2PR_WAVEIN 6 /* Waveform in, self powered, efficient */ +#define MM_SILICONSOFT_SOUNDJR2PR_WAVEOUT 7 /* Waveform out 2 channels, self powered, efficient */ +#define MM_SILICONSOFT_SOUNDJR3_WAVEOUT 8 /* Waveform in 2 channels, self powered, efficient */ + +/* MM_OLIVETTI product IDs */ +#define MM_OLIVETTI_WAVEIN 1 +#define MM_OLIVETTI_WAVEOUT 2 +#define MM_OLIVETTI_MIXER 3 +#define MM_OLIVETTI_AUX 4 +#define MM_OLIVETTI_MIDIIN 5 +#define MM_OLIVETTI_MIDIOUT 6 +#define MM_OLIVETTI_SYNTH 7 +#define MM_OLIVETTI_JOYSTICK 8 +#define MM_OLIVETTI_ACM_GSM 9 +#define MM_OLIVETTI_ACM_ADPCM 10 +#define MM_OLIVETTI_ACM_CELP 11 +#define MM_OLIVETTI_ACM_SBC 12 +#define MM_OLIVETTI_ACM_OPR 13 + +/* MM_IOMAGIC product IDs */ + +/* The I/O Magic Tempo is a PCMCIA Type 2 audio card featuring wave audio + record and playback, FM synthesizer, and MIDI output. The I/O Magic + Tempo WaveOut device supports mono and stereo PCM playback at rates + of 7350, 11025, 22050, and 44100 samples */ + +#define MM_IOMAGIC_TEMPO_WAVEOUT 1 +#define MM_IOMAGIC_TEMPO_WAVEIN 2 +#define MM_IOMAGIC_TEMPO_SYNTH 3 +#define MM_IOMAGIC_TEMPO_MIDIOUT 4 +#define MM_IOMAGIC_TEMPO_MXDOUT 5 +#define MM_IOMAGIC_TEMPO_AUXOUT 6 + +/* MM_MATSUSHITA product IDs */ +#define MM_MATSUSHITA_WAVEIN 1 +#define MM_MATSUSHITA_WAVEOUT 2 +#define MM_MATSUSHITA_FMSYNTH_STEREO 3 +#define MM_MATSUSHITA_MIXER 4 +#define MM_MATSUSHITA_AUX 5 + +/* MM_NEWMEDIA product IDs */ +#define MM_NEWMEDIA_WAVJAMMER 1 /* WSS Compatible sound card. */ + +/* MM_LYRRUS product IDs */ + +/* Bridge is a MIDI driver that allows the the Lyrrus G-VOX hardware to + communicate with Windows base transcription and sequencer applications. + The driver also provides a mechanism for the user to configure the system + to their personal playing style. */ + +#define MM_LYRRUS_BRIDGE_GUITAR 1 + +/* MM_OPTI product IDs */ +#define MM_OPTI_M16_FMSYNTH_STEREO 0x0001 +#define MM_OPTI_M16_MIDIIN 0x0002 +#define MM_OPTI_M16_MIDIOUT 0x0003 +#define MM_OPTI_M16_WAVEIN 0x0004 +#define MM_OPTI_M16_WAVEOUT 0x0005 +#define MM_OPTI_M16_MIXER 0x0006 +#define MM_OPTI_M16_AUX 0x0007 +#define MM_OPTI_P16_FMSYNTH_STEREO 0x0010 +#define MM_OPTI_P16_MIDIIN 0x0011 +#define MM_OPTI_P16_MIDIOUT 0x0012 +#define MM_OPTI_P16_WAVEIN 0x0013 +#define MM_OPTI_P16_WAVEOUT 0x0014 +#define MM_OPTI_P16_MIXER 0x0015 +#define MM_OPTI_P16_AUX 0x0016 +#define MM_OPTI_M32_WAVEIN 0x0020 +#define MM_OPTI_M32_WAVEOUT 0x0021 +#define MM_OPTI_M32_MIDIIN 0x0022 +#define MM_OPTI_M32_MIDIOUT 0x0023 +#define MM_OPTI_M32_SYNTH_STEREO 0x0024 +#define MM_OPTI_M32_MIXER 0x0025 +#define MM_OPTI_M32_AUX 0x0026 + +#endif // !NOMMIDS + + +/*////////////////////////////////////////////////////////////////////////// */ + +/* INFO LIST CHUNKS (from the Multimedia Programmer's Reference + plus new ones) +*/ +#define RIFFINFO_IARL mmioFOURCC ('I', 'A', 'R', 'L') /*Archival location */ +#define RIFFINFO_IART mmioFOURCC ('I', 'A', 'R', 'T') /*Artist */ +#define RIFFINFO_ICMS mmioFOURCC ('I', 'C', 'M', 'S') /*Commissioned */ +#define RIFFINFO_ICMT mmioFOURCC ('I', 'C', 'M', 'T') /*Comments */ +#define RIFFINFO_ICOP mmioFOURCC ('I', 'C', 'O', 'P') /*Copyright */ +#define RIFFINFO_ICRD mmioFOURCC ('I', 'C', 'R', 'D') /*Creation date of subject */ +#define RIFFINFO_ICRP mmioFOURCC ('I', 'C', 'R', 'P') /*Cropped */ +#define RIFFINFO_IDIM mmioFOURCC ('I', 'D', 'I', 'M') /*Dimensions */ +#define RIFFINFO_IDPI mmioFOURCC ('I', 'D', 'P', 'I') /*Dots per inch */ +#define RIFFINFO_IENG mmioFOURCC ('I', 'E', 'N', 'G') /*Engineer */ +#define RIFFINFO_IGNR mmioFOURCC ('I', 'G', 'N', 'R') /*Genre */ +#define RIFFINFO_IKEY mmioFOURCC ('I', 'K', 'E', 'Y') /*Keywords */ +#define RIFFINFO_ILGT mmioFOURCC ('I', 'L', 'G', 'T') /*Lightness settings */ +#define RIFFINFO_IMED mmioFOURCC ('I', 'M', 'E', 'D') /*Medium */ +#define RIFFINFO_INAM mmioFOURCC ('I', 'N', 'A', 'M') /*Name of subject */ +#define RIFFINFO_IPLT mmioFOURCC ('I', 'P', 'L', 'T') /*Palette Settings. No. of colors requested. */ +#define RIFFINFO_IPRD mmioFOURCC ('I', 'P', 'R', 'D') /*Product */ +#define RIFFINFO_ISBJ mmioFOURCC ('I', 'S', 'B', 'J') /*Subject description */ +#define RIFFINFO_ISFT mmioFOURCC ('I', 'S', 'F', 'T') /*Software. Name of package used to create file. */ +#define RIFFINFO_ISHP mmioFOURCC ('I', 'S', 'H', 'P') /*Sharpness. */ +#define RIFFINFO_ISRC mmioFOURCC ('I', 'S', 'R', 'C') /*Source. */ +#define RIFFINFO_ISRF mmioFOURCC ('I', 'S', 'R', 'F') /*Source Form. ie slide, paper */ +#define RIFFINFO_ITCH mmioFOURCC ('I', 'T', 'C', 'H') /*Technician who digitized the subject. */ + +/* New INFO Chunks as of August 30, 1993: */ +#define RIFFINFO_ISMP mmioFOURCC ('I', 'S', 'M', 'P') /*SMPTE time code */ +/* ISMP: SMPTE time code of digitization start point expressed as a NULL terminated + text string "HH:MM:SS:FF". If performing MCI capture in AVICAP, this + chunk will be automatically set based on the MCI start time. +*/ +#define RIFFINFO_IDIT mmioFOURCC ('I', 'D', 'I', 'T') /*Digitization Time */ +/* IDIT: "Digitization Time" Specifies the time and date that the digitization commenced. + The digitization time is contained in an ASCII string which + contains exactly 26 characters and is in the format + "Wed Jan 02 02:03:55 1990\n\0". + The ctime(), asctime(), functions can be used to create strings + in this format. This chunk is automatically added to the capture + file based on the current system time at the moment capture is initiated. +*/ + +/*Template line for new additions*/ +/*#define RIFFINFO_I mmioFOURCC ('I', '', '', '') */ + + +/*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/ + +#ifndef NONEWWAVE + +/* WAVE form wFormatTag IDs */ +#define WAVE_FORMAT_UNKNOWN 0x0000 /* Microsoft Corporation */ +#define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */ +#define WAVE_FORMAT_IBM_CVSD 0x0005 /* IBM Corporation */ +#define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */ +#define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */ +#define WAVE_FORMAT_OKI_ADPCM 0x0010 /* OKI */ +#define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel Corporation */ +#define WAVE_FORMAT_IMA_ADPCM (WAVE_FORMAT_DVI_ADPCM) /* Intel Corporation */ +#define WAVE_FORMAT_MEDIASPACE_ADPCM 0x0012 /* Videologic */ +#define WAVE_FORMAT_SIERRA_ADPCM 0x0013 /* Sierra Semiconductor Corp */ +#define WAVE_FORMAT_G723_ADPCM 0x0014 /* Antex Electronics Corporation */ +#define WAVE_FORMAT_DIGISTD 0x0015 /* DSP Solutions, Inc. */ +#define WAVE_FORMAT_DIGIFIX 0x0016 /* DSP Solutions, Inc. */ +#define WAVE_FORMAT_DIALOGIC_OKI_ADPCM 0x0017 /* Dialogic Corporation */ +#define WAVE_FORMAT_YAMAHA_ADPCM 0x0020 /* Yamaha Corporation of America */ +#define WAVE_FORMAT_SONARC 0x0021 /* Speech Compression */ +#define WAVE_FORMAT_DSPGROUP_TRUESPEECH 0x0022 /* DSP Group, Inc */ +#define WAVE_FORMAT_ECHOSC1 0x0023 /* Echo Speech Corporation */ +#define WAVE_FORMAT_AUDIOFILE_AF36 0x0024 /* */ +#define WAVE_FORMAT_APTX 0x0025 /* Audio Processing Technology */ +#define WAVE_FORMAT_AUDIOFILE_AF10 0x0026 /* */ +#define WAVE_FORMAT_DOLBY_AC2 0x0030 /* Dolby Laboratories */ +#define WAVE_FORMAT_GSM610 0x0031 /* Microsoft Corporation */ +#define WAVE_FORMAT_ANTEX_ADPCME 0x0033 /* Antex Electronics Corporation */ +#define WAVE_FORMAT_CONTROL_RES_VQLPC 0x0034 /* Control Resources Limited */ +#define WAVE_FORMAT_DIGIREAL 0x0035 /* DSP Solutions, Inc. */ +#define WAVE_FORMAT_DIGIADPCM 0x0036 /* DSP Solutions, Inc. */ +#define WAVE_FORMAT_CONTROL_RES_CR10 0x0037 /* Control Resources Limited */ +#define WAVE_FORMAT_NMS_VBXADPCM 0x0038 /* Natural MicroSystems */ +#define WAVE_FORMAT_G721_ADPCM 0x0040 /* Antex Electronics Corporation */ +#define WAVE_FORMAT_MPEG 0x0050 /* Microsoft Corporation */ +#define WAVE_FORMAT_CREATIVE_ADPCM 0x0200 /* Creative Labs, Inc */ +#define WAVE_FORMAT_CREATIVE_FASTSPEECH8 0x0202 /* Creative Labs, Inc */ +#define WAVE_FORMAT_CREATIVE_FASTSPEECH10 0x0203 /* Creative Labs, Inc */ +#define WAVE_FORMAT_FM_TOWNS_SND 0x0300 /* Fujitsu Corp. */ +#define WAVE_FORMAT_OLIGSM 0x1000 /* Ing C. Olivetti & C., S.p.A. */ +#define WAVE_FORMAT_OLIADPCM 0x1001 /* Ing C. Olivetti & C., S.p.A. */ +#define WAVE_FORMAT_OLICELP 0x1002 /* Ing C. Olivetti & C., S.p.A. */ +#define WAVE_FORMAT_OLISBC 0x1003 /* Ing C. Olivetti & C., S.p.A. */ +#define WAVE_FORMAT_OLIOPR 0x1004 /* Ing C. Olivetti & C., S.p.A. */ + +// +// the WAVE_FORMAT_DEVELOPMENT format tag can be used during the +// development phase of a new wave format. Before shipping, you MUST +// acquire an official format tag from Microsoft. +// +#define WAVE_FORMAT_DEVELOPMENT (0xFFFF) + +#endif /* NONEWWAVE */ + + +#ifndef WAVE_FORMAT_PCM + +/* general waveform format structure (information common to all formats) */ +typedef struct waveformat_tag { + WORD wFormatTag; /* format type */ + WORD nChannels; /* number of channels (i.e. mono, stereo...) */ + DWORD nSamplesPerSec; /* sample rate */ + DWORD nAvgBytesPerSec; /* for buffer estimation */ + WORD nBlockAlign; /* block size of data */ +} WAVEFORMAT; +typedef WAVEFORMAT *PWAVEFORMAT; +typedef WAVEFORMAT NEAR *NPWAVEFORMAT; +typedef WAVEFORMAT FAR *LPWAVEFORMAT; + +/* flags for wFormatTag field of WAVEFORMAT */ +#define WAVE_FORMAT_PCM 1 + +/* specific waveform format structure for PCM data */ +typedef struct pcmwaveformat_tag { + WAVEFORMAT wf; + WORD wBitsPerSample; +} PCMWAVEFORMAT; +typedef PCMWAVEFORMAT *PPCMWAVEFORMAT; +typedef PCMWAVEFORMAT NEAR *NPPCMWAVEFORMAT; +typedef PCMWAVEFORMAT FAR *LPPCMWAVEFORMAT; + + +#endif /* WAVE_FORMAT_PCM */ + + + +/* general extended waveform format structure + Use this for all NON PCM formats + (information common to all formats) +*/ +#ifndef _WAVEFORMATEX_ +#define _WAVEFORMATEX_ +typedef struct tWAVEFORMATEX +{ + WORD wFormatTag; /* format type */ + WORD nChannels; /* number of channels (i.e. mono, stereo...) */ + DWORD nSamplesPerSec; /* sample rate */ + DWORD nAvgBytesPerSec; /* for buffer estimation */ + WORD nBlockAlign; /* block size of data */ + WORD wBitsPerSample; /* Number of bits per sample of mono data */ + WORD cbSize; /* The count in bytes of the size of + extra information (after cbSize) */ + +} WAVEFORMATEX; +typedef WAVEFORMATEX *PWAVEFORMATEX; +typedef WAVEFORMATEX NEAR *NPWAVEFORMATEX; +typedef WAVEFORMATEX FAR *LPWAVEFORMATEX; +#endif /* _WAVEFORMATEX_ */ + + +#ifndef NONEWWAVE + +/* Define data for MS ADPCM */ + +typedef struct adpcmcoef_tag { + short iCoef1; + short iCoef2; +} ADPCMCOEFSET; +typedef ADPCMCOEFSET *PADPCMCOEFSET; +typedef ADPCMCOEFSET NEAR *NPADPCMCOEFSET; +typedef ADPCMCOEFSET FAR *LPADPCMCOEFSET; + + +/* + * this pragma disables the warning issued by the Microsoft C compiler + * when using a zero size array as place holder when compiling for + * C++ or with -W4. + * + */ +#ifdef _MSC_VER +#pragma warning(disable:4200) +#endif + +typedef struct adpcmwaveformat_tag { + WAVEFORMATEX wfx; + WORD wSamplesPerBlock; + WORD wNumCoef; + ADPCMCOEFSET aCoef[]; +} ADPCMWAVEFORMAT; +typedef ADPCMWAVEFORMAT *PADPCMWAVEFORMAT; +typedef ADPCMWAVEFORMAT NEAR *NPADPCMWAVEFORMAT; +typedef ADPCMWAVEFORMAT FAR *LPADPCMWAVEFORMAT; + +#ifdef _MSC_VER +#pragma warning(default:4200) +#endif + +// +// Intel's DVI ADPCM structure definitions +// +// for WAVE_FORMAT_DVI_ADPCM (0x0011) +// +// + +typedef struct dvi_adpcmwaveformat_tag { + WAVEFORMATEX wfx; + WORD wSamplesPerBlock; +} DVIADPCMWAVEFORMAT; +typedef DVIADPCMWAVEFORMAT *PDVIADPCMWAVEFORMAT; +typedef DVIADPCMWAVEFORMAT NEAR *NPDVIADPCMWAVEFORMAT; +typedef DVIADPCMWAVEFORMAT FAR *LPDVIADPCMWAVEFORMAT; + + +// +// IMA endorsed ADPCM structure definitions--note that this is exactly +// the same format as Intel's DVI ADPCM. +// +// for WAVE_FORMAT_IMA_ADPCM (0x0011) +// +// + +typedef struct ima_adpcmwaveformat_tag { + WAVEFORMATEX wfx; + WORD wSamplesPerBlock; +} IMAADPCMWAVEFORMAT; +typedef IMAADPCMWAVEFORMAT *PIMAADPCMWAVEFORMAT; +typedef IMAADPCMWAVEFORMAT NEAR *NPIMAADPCMWAVEFORMAT; +typedef IMAADPCMWAVEFORMAT FAR *LPIMAADPCMWAVEFORMAT; + +/* +//VideoLogic's Media Space ADPCM Structure definitions +// for WAVE_FORMAT_MEDIASPACE_ADPCM (0x0012) +// +// +*/ +typedef struct mediaspace_adpcmwaveformat_tag { + WAVEFORMATEX wfx; + WORD wRevision; +} MEDIASPACEADPCMWAVEFORMAT; +typedef MEDIASPACEADPCMWAVEFORMAT *PMEDIASPACEADPCMWAVEFORMAT; +typedef MEDIASPACEADPCMWAVEFORMAT NEAR *NPMEDIASPACEADPCMWAVEFORMAT; +typedef MEDIASPACEADPCMWAVEFORMAT FAR *LPMEDIASPACEADPCMWAVEFORMAT; + +// +// Sierra Semiconductor +// +// for WAVE_FORMAT_SIERRA_ADPCM (0x0013) +// +// + +typedef struct sierra_adpcmwaveformat_tag { + WAVEFORMATEX wfx; + WORD wRevision; +} SIERRAADPCMWAVEFORMAT; +typedef SIERRAADPCMWAVEFORMAT *PSIERRAADPCMWAVEFORMAT; +typedef SIERRAADPCMWAVEFORMAT NEAR *NPSIERRAADPCMWAVEFORMAT; +typedef SIERRAADPCMWAVEFORMAT FAR *LPSIERRAADPCMWAVEFORMAT; + + + +// +// Antex Electronics structure definitions +// +// for WAVE_FORMAT_G723_ADPCM (0x0014) +// +// + +typedef struct g723_adpcmwaveformat_tag { + WAVEFORMATEX wfx; + WORD cbExtraSize; + WORD nAuxBlockSize; +} G723_ADPCMWAVEFORMAT; +typedef G723_ADPCMWAVEFORMAT *PG723_ADPCMWAVEFORMAT; +typedef G723_ADPCMWAVEFORMAT NEAR *NPG723_ADPCMWAVEFORMAT; +typedef G723_ADPCMWAVEFORMAT FAR *LPG723_ADPCMWAVEFORMAT; + +// +// DSP Solutions (formerly DIGISPEECH) structure definitions +// +// for WAVE_FORMAT_DIGISTD (0x0015) +// +// + +typedef struct digistdwaveformat_tag { + WAVEFORMATEX wfx; +} DIGISTDWAVEFORMAT; +typedef DIGISTDWAVEFORMAT *PDIGISTDWAVEFORMAT; +typedef DIGISTDWAVEFORMAT NEAR *NPDIGISTDWAVEFORMAT; +typedef DIGISTDWAVEFORMAT FAR *LPDIGISTDWAVEFORMAT; + +// +// DSP Solutions (formerly DIGISPEECH) structure definitions +// +// for WAVE_FORMAT_DIGIFIX (0x0016) +// +// + +typedef struct digifixwaveformat_tag { + WAVEFORMATEX wfx; +} DIGIFIXWAVEFORMAT; +typedef DIGIFIXWAVEFORMAT *PDIGIFIXWAVEFORMAT; +typedef DIGIFIXWAVEFORMAT NEAR *NPDIGIFIXWAVEFORMAT; +typedef DIGIFIXWAVEFORMAT FAR *LPDIGIFIXWAVEFORMAT; + +// +// Dialogic Corporation +// WAVEFORMAT_DIALOGIC_OKI_ADPCM (0x0017) +// +typedef struct creative_fastspeechformat_tag{ + WAVEFORMATEX ewf; +}DIALOGICOKIADPCMWAVEFORMAT; +typedef DIALOGICOKIADPCMWAVEFORMAT *PDIALOGICOKIADPCMWAVEFORMAT; +typedef DIALOGICOKIADPCMWAVEFORMAT NEAR *NPDIALOGICOKIADPCMWAVEFORMAT; +typedef DIALOGICOKIADPCMWAVEFORMAT FAR *LPDIALOGICOKIADPCMWAVEFORMAT; + + +// +// Yamaha Compression's ADPCM structure definitions +// +// for WAVE_FORMAT_YAMAHA_ADPCM (0x0020) +// +// + +typedef struct yamaha_adpmcwaveformat_tag { + WAVEFORMATEX wfx; + +} YAMAHA_ADPCMWAVEFORMAT; +typedef YAMAHA_ADPCMWAVEFORMAT *PYAMAHA_ADPCMWAVEFORMAT; +typedef YAMAHA_ADPCMWAVEFORMAT NEAR *NPYAMAHA_ADPCMWAVEFORMAT; +typedef YAMAHA_ADPCMWAVEFORMAT FAR *LPYAMAHA_ADPCMWAVEFORMAT; + +// +// Speech Compression's Sonarc structure definitions +// +// for WAVE_FORMAT_SONARC (0x0021) +// +// + +typedef struct sonarcwaveformat_tag { + WAVEFORMATEX wfx; + WORD wCompType; +} SONARCWAVEFORMAT; +typedef SONARCWAVEFORMAT *PSONARCWAVEFORMAT; +typedef SONARCWAVEFORMAT NEAR *NPSONARCWAVEFORMAT; +typedef SONARCWAVEFORMAT FAR *LPSONARCWAVEFORMAT; + +// +// DSP Groups's TRUESPEECH structure definitions +// +// for WAVE_FORMAT_DSPGROUP_TRUESPEECH (0x0022) +// +// + +typedef struct truespeechwaveformat_tag { + WAVEFORMATEX wfx; + WORD wRevision; + WORD nSamplesPerBlock; + BYTE abReserved[28]; +} TRUESPEECHWAVEFORMAT; +typedef TRUESPEECHWAVEFORMAT *PTRUESPEECHWAVEFORMAT; +typedef TRUESPEECHWAVEFORMAT NEAR *NPTRUESPEECHWAVEFORMAT; +typedef TRUESPEECHWAVEFORMAT FAR *LPTRUESPEECHWAVEFORMAT; + +// +// Echo Speech Corp structure definitions +// +// for WAVE_FORMAT_ECHOSC1 (0x0023) +// +// + +typedef struct echosc1waveformat_tag { + WAVEFORMATEX wfx; +} ECHOSC1WAVEFORMAT; +typedef ECHOSC1WAVEFORMAT *PECHOSC1WAVEFORMAT; +typedef ECHOSC1WAVEFORMAT NEAR *NPECHOSC1WAVEFORMAT; +typedef ECHOSC1WAVEFORMAT FAR *LPECHOSC1WAVEFORMAT; + +// +// Audiofile Inc.structure definitions +// +// for WAVE_FORMAT_AUDIOFILE_AF36 (0x0024) +// +// + +typedef struct audiofile_af36waveformat_tag { + WAVEFORMATEX wfx; +} AUDIOFILE_AF36WAVEFORMAT; +typedef AUDIOFILE_AF36WAVEFORMAT *PAUDIOFILE_AF36WAVEFORMAT; +typedef AUDIOFILE_AF36WAVEFORMAT NEAR *NPAUDIOFILE_AF36WAVEFORMAT; +typedef AUDIOFILE_AF36WAVEFORMAT FAR *LPAUDIOFILE_AF36WAVEFORMAT; + +// +// Audio Processing Technology structure definitions +// +// for WAVE_FORMAT_APTX (0x0025) +// +// +typedef struct aptxwaveformat_tag { + WAVEFORMATEX wfx; +} APTXWAVEFORMAT; +typedef APTXWAVEFORMAT *PAPTXWAVEFORMAT; +typedef APTXWAVEFORMAT NEAR *NPAPTXWAVEFORMAT; +typedef APTXWAVEFORMAT FAR *LPAPTXWAVEFORMAT; + +// +// Audiofile Inc.structure definitions +// +// for WAVE_FORMAT_AUDIOFILE_AF10 (0x0026) +// +// + +typedef struct audiofile_af10waveformat_tag { + WAVEFORMATEX wfx; +} AUDIOFILE_AF10WAVEFORMAT; +typedef AUDIOFILE_AF10WAVEFORMAT *PAUDIOFILE_AF10WAVEFORMAT; +typedef AUDIOFILE_AF10WAVEFORMAT NEAR *NPAUDIOFILE_AF10WAVEFORMAT; +typedef AUDIOFILE_AF10WAVEFORMAT FAR *LPAUDIOFILE_AF10WAVEFORMAT; + +// +/* Dolby's AC-2 wave format structure definition + WAVE_FORMAT_DOLBY_AC2 (0x0030)*/ +// +typedef struct dolbyac2waveformat_tag { + WAVEFORMATEX wfx; + WORD nAuxBitsCode; +} DOLBYAC2WAVEFORMAT; + +/*Microsoft's */ +// WAVE_FORMAT_GSM 610 0x0031 +// +typedef struct gsm610waveformat_tag { +WAVEFORMATEX wfx; +WORD wSamplesPerBlock; +} GSM610WAVEFORMAT; +typedef GSM610WAVEFORMAT *PGSM610WAVEFORMAT; +typedef GSM610WAVEFORMAT NEAR *NPGSM610WAVEFORMAT; +typedef GSM610WAVEFORMAT FAR *LPGSM610WAVEFORMAT; + +// +// Antex Electronics Corp +// +// for WAVE_FORMAT_ADPCME (0x0033) +// +// + +typedef struct adpcmewaveformat_tag { + WAVEFORMATEX wfx; + WORD wSamplesPerBlock; +} ADPCMEWAVEFORMAT; +typedef ADPCMEWAVEFORMAT *PADPCMEWAVEFORMAT; +typedef ADPCMEWAVEFORMAT NEAR *NPADPCMEWAVEFORMAT; +typedef ADPCMEWAVEFORMAT FAR *LPADPCMEWAVEFORMAT; + +/* Control Resources Limited */ +// WAVE_FORMAT_CONTROL_RES_VQLPC 0x0034 +// +typedef struct contres_vqlpcwaveformat_tag { +WAVEFORMATEX wfx; +WORD wSamplesPerBlock; +} CONTRESVQLPCWAVEFORMAT; +typedef CONTRESVQLPCWAVEFORMAT *PCONTRESVQLPCWAVEFORMAT; +typedef CONTRESVQLPCWAVEFORMAT NEAR *NPCONTRESVQLPCWAVEFORMAT; +typedef CONTRESVQLPCWAVEFORMAT FAR *LPCONTRESVQLPCWAVEFORMAT; + +// +// +// +// for WAVE_FORMAT_DIGIREAL (0x0035) +// +// + +typedef struct digirealwaveformat_tag { + WAVEFORMATEX wfx; + WORD wSamplesPerBlock; +} DIGIREALWAVEFORMAT; +typedef DIGIREALWAVEFORMAT *PDIGIREALWAVEFORMAT; +typedef DIGIREALWAVEFORMAT NEAR *NPDIGIREALWAVEFORMAT; +typedef DIGIREALWAVEFORMAT FAR *LPDIGIREALWAVEFORMAT; + +// +// DSP Solutions +// +// for WAVE_FORMAT_DIGIADPCM (0x0036) +// +// + +typedef struct digiadpcmmwaveformat_tag { + WAVEFORMATEX wfx; + WORD wSamplesPerBlock; +} DIGIADPCMWAVEFORMAT; +typedef DIGIADPCMWAVEFORMAT *PDIGIADPCMWAVEFORMAT; +typedef DIGIADPCMWAVEFORMAT NEAR *NPDIGIADPCMWAVEFORMAT; +typedef DIGIADPCMWAVEFORMAT FAR *LPDIGIADPCMWAVEFORMAT; + + +/* Control Resources Limited */ +// WAVE_FORMAT_CONTROL_RES_CR10 0x0037 +// +typedef struct contres_cr10waveformat_tag { +WAVEFORMATEX wfx; +WORD wSamplesPerBlock; +} CONTRESCR10WAVEFORMAT; +typedef CONTRESCR10WAVEFORMAT *PCONTRESCR10WAVEFORMAT; +typedef CONTRESCR10WAVEFORMAT NEAR *NPCONTRESCR10WAVEFORMAT; +typedef CONTRESCR10WAVEFORMAT FAR *LPCONTRESCR10WAVEFORMAT; + + + +// +// Natural Microsystems +// +// for WAVE_FORMAT_NMS_VBXADPCM (0x0038) +// +// + +typedef struct nms_vbxadpcmmwaveformat_tag { + WAVEFORMATEX wfx; + WORD wSamplesPerBlock; +} NMS_VBXADPCMWAVEFORMAT; +typedef NMS_VBXADPCMWAVEFORMAT *PNMS_VBXADPCMWAVEFORMAT; +typedef NMS_VBXADPCMWAVEFORMAT NEAR *NPNMS_VBXADPCMWAVEFORMAT; +typedef NMS_VBXADPCMWAVEFORMAT FAR *LPNMS_VBXADPCMWAVEFORMAT; + + +// +// Antex Electronics structure definitions +// +// for WAVE_FORMAT_G721_ADPCM (0x0040) +// +// + +typedef struct g721_adpcmwaveformat_tag { + WAVEFORMATEX wfx; + WORD nAuxBlockSize; +} G721_ADPCMWAVEFORMAT; +typedef G721_ADPCMWAVEFORMAT *PG721_ADPCMWAVEFORMAT; +typedef G721_ADPCMWAVEFORMAT NEAR *NPG721_ADPCMWAVEFORMAT; +typedef G721_ADPCMWAVEFORMAT FAR *LPG721_ADPCMWAVEFORMAT; + +// +// +// Microsoft MPEG audio WAV definition +// +/* MPEG-1 audio wave format (audio layer only). (0x0050) */ +typedef struct mpeg1waveformat_tag { + WAVEFORMATEX wfx; + WORD fwHeadLayer; + DWORD dwHeadBitrate; + WORD fwHeadMode; + WORD fwHeadModeExt; + WORD wHeadEmphasis; + WORD fwHeadFlags; + DWORD dwPTSLow; + DWORD dwPTSHigh; +} MPEG1WAVEFORMAT; +typedef MPEG1WAVEFORMAT *PMPEG1WAVEFORMAT; +typedef MPEG1WAVEFORMAT NEAR *NPMPEG1WAVEFORMAT; +typedef MPEG1WAVEFORMAT FAR *LPMPEG1WAVEFORMAT; + +#define ACM_MPEG_LAYER1 (0x0001) +#define ACM_MPEG_LAYER2 (0x0002) +#define ACM_MPEG_LAYER3 (0x0004) +#define ACM_MPEG_STEREO (0x0001) +#define ACM_MPEG_JOINTSTEREO (0x0002) +#define ACM_MPEG_DUALCHANNEL (0x0004) +#define ACM_MPEG_SINGLECHANNEL (0x0008) +#define ACM_MPEG_PRIVATEBIT (0x0001) +#define ACM_MPEG_COPYRIGHT (0x0002) +#define ACM_MPEG_ORIGINALHOME (0x0004) +#define ACM_MPEG_PROTECTIONBIT (0x0008) +#define ACM_MPEG_ID_MPEG1 (0x0010) + + +// +// Creative's ADPCM structure definitions +// +// for WAVE_FORMAT_CREATIVE_ADPCM (0x0200) +// +// + +typedef struct creative_adpcmwaveformat_tag { + WAVEFORMATEX wfx; + WORD wRevision; +} CREATIVEADPCMWAVEFORMAT; +typedef CREATIVEADPCMWAVEFORMAT *PCREATIVEADPCMWAVEFORMAT; +typedef CREATIVEADPCMWAVEFORMAT NEAR *NPCREATIVEADPCMWAVEFORMAT; +typedef CREATIVEADPCMWAVEFORMAT FAR *LPCREATIVEADPCMWAVEFORMAT; + +// +// Creative FASTSPEECH +// WAVEFORMAT_CREATIVE_FASTSPEECH8 (0x0202) +// +typedef struct creative_fastspeech8format_tag { + WAVEFORMATEX wfx; + WORD wRevision; +} CREATIVEFASTSPEECH8WAVEFORMAT; +typedef CREATIVEFASTSPEECH8WAVEFORMAT *PCREATIVEFASTSPEECH8WAVEFORMAT; +typedef CREATIVEFASTSPEECH8WAVEFORMAT NEAR *NPCREATIVEFASTSPEECH8WAVEFORMAT; +typedef CREATIVEFASTSPEECH8WAVEFORMAT FAR *LPCREATIVEFASTSPEECH8WAVEFORMAT; +// +// Creative FASTSPEECH +// WAVEFORMAT_CREATIVE_FASTSPEECH10 (0x0203) +// +typedef struct creative_fastspeech10format_tag { + WAVEFORMATEX wfx; + WORD wRevision; +} CREATIVEFASTSPEECH10WAVEFORMAT; +typedef CREATIVEFASTSPEECH10WAVEFORMAT *PCREATIVEFASTSPEECH10WAVEFORMAT; +typedef CREATIVEFASTSPEECH10WAVEFORMAT NEAR *NPCREATIVEFASTSPEECH10WAVEFORMAT; +typedef CREATIVEFASTSPEECH10WAVEFORMAT FAR *LPCREATIVEFASTSPEECH10WAVEFORMAT; + + +// +// Fujitsu FM Towns 'SND' structure +// +// for WAVE_FORMAT_FMMTOWNS_SND (0x0300) +// +// + +typedef struct fmtowns_snd_waveformat_tag { + WAVEFORMATEX wfx; + WORD wRevision; +} FMTOWNS_SND_WAVEFORMAT; +typedef FMTOWNS_SND_WAVEFORMAT *PFMTOWNS_SND_WAVEFORMAT; +typedef FMTOWNS_SND_WAVEFORMAT NEAR *NPFMTOWNS_SND_WAVEFORMAT; +typedef FMTOWNS_SND_WAVEFORMAT FAR *LPFMTOWNS_SND_WAVEFORMAT; + +// +// Olivetti structure +// +// for WAVE_FORMAT_OLIGSM (0x1000) +// +// + +typedef struct oligsmwaveformat_tag { + WAVEFORMATEX wfx; +} OLIGSMWAVEFORMAT; +typedef OLIGSMWAVEFORMAT *POLIGSMWAVEFORMAT; +typedef OLIGSMWAVEFORMAT NEAR *NPOLIGSMWAVEFORMAT; +typedef OLIGSMWAVEFORMAT FAR *LPOLIGSMWAVEFORMAT; + + +// +// Olivetti structure +// +// for WAVE_FORMAT_OLIADPCM (0x1001) +// +// + +typedef struct oliadpcmwaveformat_tag { + WAVEFORMATEX wfx; +} OLIADPCMWAVEFORMAT; +typedef OLIADPCMWAVEFORMAT *POLIADPCMWAVEFORMAT; +typedef OLIADPCMWAVEFORMAT NEAR *NPOLIADPCMWAVEFORMAT ; +typedef OLIADPCMWAVEFORMAT FAR *LPOLIADPCMWAVEFORMAT; + + + + +// +// Olivetti structure +// +// for WAVE_FORMAT_OLICELP (0x1002) +// +// + +typedef struct olicelpwaveformat_tag { + WAVEFORMATEX wfx; +} OLICELPWAVEFORMAT; +typedef OLICELPWAVEFORMAT *POLICELPWAVEFORMAT; +typedef OLICELPWAVEFORMAT NEAR *NPOLICELPWAVEFORMAT ; +typedef OLICELPWAVEFORMAT FAR *LPOLICELPWAVEFORMAT; + + + + +// +// Olivetti structure +// +// for WAVE_FORMAT_OLISBC (0x1003) +// +// + +typedef struct olisbcwaveformat_tag { + WAVEFORMATEX wfx; +} OLISBCWAVEFORMAT; +typedef OLISBCWAVEFORMAT *POLISBCWAVEFORMAT; +typedef OLISBCWAVEFORMAT NEAR *NPOLISBCWAVEFORMAT ; +typedef OLISBCWAVEFORMAT FAR *LPOLISBCWAVEFORMAT; + + + + +// +// Olivetti structure +// +// for WAVE_FORMAT_OLIOPR (0x1004) +// +// + +typedef struct olioprwaveformat_tag { + WAVEFORMATEX wfx; +} OLIOPRWAVEFORMAT; +typedef OLIOPRWAVEFORMAT *POLIOPRWAVEFORMAT; +typedef OLIOPRWAVEFORMAT NEAR *NPOLIOPRWAVEFORMAT ; +typedef OLIOPRWAVEFORMAT FAR *LPOLIOPRWAVEFORMAT; + + + + + + + +//==========================================================================; +// +// ACM Wave Filters +// +// +//==========================================================================; + +#ifndef _ACM_WAVEFILTER +#define _ACM_WAVEFILTER + +#define WAVE_FILTER_UNKNOWN 0x0000 +#define WAVE_FILTER_DEVELOPMENT (0xFFFF) + +typedef struct wavefilter_tag { + DWORD cbStruct; /* Size of the filter in bytes */ + DWORD dwFilterTag; /* filter type */ + DWORD fdwFilter; /* Flags for the filter (Universal Dfns) */ + DWORD dwReserved[5]; /* Reserved for system use */ +} WAVEFILTER; +typedef WAVEFILTER *PWAVEFILTER; +typedef WAVEFILTER NEAR *NPWAVEFILTER; +typedef WAVEFILTER FAR *LPWAVEFILTER; + +#endif /* _ACM_WAVEFILTER */ + + +#ifndef WAVE_FILTER_VOLUME +#define WAVE_FILTER_VOLUME 0x0001 + + +typedef struct wavefilter_volume_tag { + WAVEFILTER wfltr; + DWORD dwVolume; +} VOLUMEWAVEFILTER; +typedef VOLUMEWAVEFILTER *PVOLUMEWAVEFILTER; +typedef VOLUMEWAVEFILTER NEAR *NPVOLUMEWAVEFILTER; +typedef VOLUMEWAVEFILTER FAR *LPVOLUMEWAVEFILTER; + +#endif /* WAVE_FILTER_VOLUME */ + +#ifndef WAVE_FILTER_ECHO +#define WAVE_FILTER_ECHO 0x0002 + + +typedef struct wavefilter_echo_tag { + WAVEFILTER wfltr; + DWORD dwVolume; + DWORD dwDelay; +} ECHOWAVEFILTER; +typedef ECHOWAVEFILTER *PECHOWAVEFILTER; +typedef ECHOWAVEFILTER NEAR *NPECHOWAVEFILTER; +typedef ECHOWAVEFILTER FAR *LPECHOWAVEFILTER; + +#endif /* WAVEFILTER_ECHO */ + + + + +/*////////////////////////////////////////////////////////////////////////// +// +// New RIFF WAVE Chunks +// +*/ + +#define RIFFWAVE_inst mmioFOURCC('i','n','s','t') + +struct tag_s_RIFFWAVE_inst { + BYTE bUnshiftedNote; + char chFineTune; + char chGain; + BYTE bLowNote; + BYTE bHighNote; + BYTE bLowVelocity; + BYTE bHighVelocity; +}; + +typedef struct tag_s_RIFFWAVE_inst s_RIFFWAVE_inst; + +#endif + +/*////////////////////////////////////////////////////////////////////////// +// +// New RIFF Forms +// +*/ + +#ifndef NONEWRIFF + +/* RIFF AVI */ + +// +// AVI file format is specified in a seperate file (AVIFMT.H), +// which is available in the VfW and Chicago SDK +// + +/* RIFF CPPO */ + +#define RIFFCPPO mmioFOURCC('C','P','P','O') + +#define RIFFCPPO_objr mmioFOURCC('o','b','j','r') +#define RIFFCPPO_obji mmioFOURCC('o','b','j','i') + +#define RIFFCPPO_clsr mmioFOURCC('c','l','s','r') +#define RIFFCPPO_clsi mmioFOURCC('c','l','s','i') + +#define RIFFCPPO_mbr mmioFOURCC('m','b','r',' ') + +#define RIFFCPPO_char mmioFOURCC('c','h','a','r') + + +#define RIFFCPPO_byte mmioFOURCC('b','y','t','e') +#define RIFFCPPO_int mmioFOURCC('i','n','t',' ') +#define RIFFCPPO_word mmioFOURCC('w','o','r','d') +#define RIFFCPPO_long mmioFOURCC('l','o','n','g') +#define RIFFCPPO_dwrd mmioFOURCC('d','w','r','d') +#define RIFFCPPO_flt mmioFOURCC('f','l','t',' ') +#define RIFFCPPO_dbl mmioFOURCC('d','b','l',' ') +#define RIFFCPPO_str mmioFOURCC('s','t','r',' ') + + +#endif + +/* +////////////////////////////////////////////////////////////////////////// +// +// DIB Compression Defines +// +*/ + +#ifndef BI_BITFIELDS +#define BI_BITFIELDS 3 +#endif + +#ifndef QUERYDIBSUPPORT + +#define QUERYDIBSUPPORT 3073 +#define QDI_SETDIBITS 0x0001 +#define QDI_GETDIBITS 0x0002 +#define QDI_DIBTOSCREEN 0x0004 +#define QDI_STRETCHDIB 0x0008 + + +#endif + +#ifndef NOBITMAP +/* Structure definitions */ + +typedef struct tagEXBMINFOHEADER { + BITMAPINFOHEADER bmi; + /* extended BITMAPINFOHEADER fields */ + DWORD biExtDataOffset; + + /* Other stuff will go here */ + + /* ... */ + + /* Format-specific information */ + /* biExtDataOffset points here */ + +} EXBMINFOHEADER; + +#endif //NOBITMAP + +/* New DIB Compression Defines */ + +#define BICOMP_IBMULTIMOTION mmioFOURCC('U', 'L', 'T', 'I') +#define BICOMP_IBMPHOTOMOTION mmioFOURCC('P', 'H', 'M', 'O') +#define BICOMP_CREATIVEYUV mmioFOURCC('c', 'y', 'u', 'v') + +#ifndef NOJPEGDIB + +/* New DIB Compression Defines */ +#define JPEG_DIB mmioFOURCC('J','P','E','G') /* Still image JPEG DIB biCompression */ +#define MJPG_DIB mmioFOURCC('M','J','P','G') /* Motion JPEG DIB biCompression */ + +/* JPEGProcess Definitions */ +#define JPEG_PROCESS_BASELINE 0 /* Baseline DCT */ + +/* AVI File format extensions */ +#define AVIIF_CONTROLFRAME 0x00000200L /* This is a control frame */ + + /* JIF Marker byte pairs in JPEG Interchange Format sequence */ +#define JIFMK_SOF0 0xFFC0 /* SOF Huff - Baseline DCT*/ +#define JIFMK_SOF1 0xFFC1 /* SOF Huff - Extended sequential DCT*/ +#define JIFMK_SOF2 0xFFC2 /* SOF Huff - Progressive DCT*/ +#define JIFMK_SOF3 0xFFC3 /* SOF Huff - Spatial (sequential) lossless*/ +#define JIFMK_SOF5 0xFFC5 /* SOF Huff - Differential sequential DCT*/ +#define JIFMK_SOF6 0xFFC6 /* SOF Huff - Differential progressive DCT*/ +#define JIFMK_SOF7 0xFFC7 /* SOF Huff - Differential spatial*/ +#define JIFMK_JPG 0xFFC8 /* SOF Arith - Reserved for JPEG extensions*/ +#define JIFMK_SOF9 0xFFC9 /* SOF Arith - Extended sequential DCT*/ +#define JIFMK_SOF10 0xFFCA /* SOF Arith - Progressive DCT*/ +#define JIFMK_SOF11 0xFFCB /* SOF Arith - Spatial (sequential) lossless*/ +#define JIFMK_SOF13 0xFFCD /* SOF Arith - Differential sequential DCT*/ +#define JIFMK_SOF14 0xFFCE /* SOF Arith - Differential progressive DCT*/ +#define JIFMK_SOF15 0xFFCF /* SOF Arith - Differential spatial*/ +#define JIFMK_DHT 0xFFC4 /* Define Huffman Table(s) */ +#define JIFMK_DAC 0xFFCC /* Define Arithmetic coding conditioning(s) */ +#define JIFMK_RST0 0xFFD0 /* Restart with modulo 8 count 0 */ +#define JIFMK_RST1 0xFFD1 /* Restart with modulo 8 count 1 */ +#define JIFMK_RST2 0xFFD2 /* Restart with modulo 8 count 2 */ +#define JIFMK_RST3 0xFFD3 /* Restart with modulo 8 count 3 */ +#define JIFMK_RST4 0xFFD4 /* Restart with modulo 8 count 4 */ +#define JIFMK_RST5 0xFFD5 /* Restart with modulo 8 count 5 */ +#define JIFMK_RST6 0xFFD6 /* Restart with modulo 8 count 6 */ +#define JIFMK_RST7 0xFFD7 /* Restart with modulo 8 count 7 */ +#define JIFMK_SOI 0xFFD8 /* Start of Image */ +#define JIFMK_EOI 0xFFD9 /* End of Image */ +#define JIFMK_SOS 0xFFDA /* Start of Scan */ +#define JIFMK_DQT 0xFFDB /* Define quantization Table(s) */ +#define JIFMK_DNL 0xFFDC /* Define Number of Lines */ +#define JIFMK_DRI 0xFFDD /* Define Restart Interval */ +#define JIFMK_DHP 0xFFDE /* Define Hierarchical progression */ +#define JIFMK_EXP 0xFFDF /* Expand Reference Component(s) */ +#define JIFMK_APP0 0xFFE0 /* Application Field 0*/ +#define JIFMK_APP1 0xFFE1 /* Application Field 1*/ +#define JIFMK_APP2 0xFFE2 /* Application Field 2*/ +#define JIFMK_APP3 0xFFE3 /* Application Field 3*/ +#define JIFMK_APP4 0xFFE4 /* Application Field 4*/ +#define JIFMK_APP5 0xFFE5 /* Application Field 5*/ +#define JIFMK_APP6 0xFFE6 /* Application Field 6*/ +#define JIFMK_APP7 0xFFE7 /* Application Field 7*/ +#define JIFMK_JPG0 0xFFF0 /* Reserved for JPEG extensions */ +#define JIFMK_JPG1 0xFFF1 /* Reserved for JPEG extensions */ +#define JIFMK_JPG2 0xFFF2 /* Reserved for JPEG extensions */ +#define JIFMK_JPG3 0xFFF3 /* Reserved for JPEG extensions */ +#define JIFMK_JPG4 0xFFF4 /* Reserved for JPEG extensions */ +#define JIFMK_JPG5 0xFFF5 /* Reserved for JPEG extensions */ +#define JIFMK_JPG6 0xFFF6 /* Reserved for JPEG extensions */ +#define JIFMK_JPG7 0xFFF7 /* Reserved for JPEG extensions */ +#define JIFMK_JPG8 0xFFF8 /* Reserved for JPEG extensions */ +#define JIFMK_JPG9 0xFFF9 /* Reserved for JPEG extensions */ +#define JIFMK_JPG10 0xFFFA /* Reserved for JPEG extensions */ +#define JIFMK_JPG11 0xFFFB /* Reserved for JPEG extensions */ +#define JIFMK_JPG12 0xFFFC /* Reserved for JPEG extensions */ +#define JIFMK_JPG13 0xFFFD /* Reserved for JPEG extensions */ +#define JIFMK_COM 0xFFFE /* Comment */ +#define JIFMK_TEM 0xFF01 /* for temp private use arith code */ +#define JIFMK_RES 0xFF02 /* Reserved */ +#define JIFMK_00 0xFF00 /* Zero stuffed byte - entropy data */ +#define JIFMK_FF 0xFFFF /* Fill byte */ + + +/* JPEGColorSpaceID Definitions */ +#define JPEG_Y 1 /* Y only component of YCbCr */ +#define JPEG_YCbCr 2 /* YCbCr as define by CCIR 601 */ +#define JPEG_RGB 3 /* 3 component RGB */ + +/* Structure definitions */ + +typedef struct tagJPEGINFOHEADER { + /* compression-specific fields */ + /* these fields are defined for 'JPEG' and 'MJPG' */ + DWORD JPEGSize; + DWORD JPEGProcess; + + /* Process specific fields */ + DWORD JPEGColorSpaceID; + DWORD JPEGBitsPerSample; + DWORD JPEGHSubSampling; + DWORD JPEGVSubSampling; +} JPEGINFOHEADER; + + +#ifdef MJPGDHTSEG_STORAGE + +/* Default DHT Segment */ + +MJPGHDTSEG_STORAGE BYTE MJPGDHTSeg[0x1A4] = { + /* JPEG DHT Segment for YCrCb omitted from MJPG data */ +0xFF,0xC4,0x01,0xA2, +0x00,0x00,0x01,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x01,0x00,0x03,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, +0x08,0x09,0x0A,0x0B,0x10,0x00,0x02,0x01,0x03,0x03,0x02,0x04,0x03,0x05,0x05,0x04,0x04,0x00, +0x00,0x01,0x7D,0x01,0x02,0x03,0x00,0x04,0x11,0x05,0x12,0x21,0x31,0x41,0x06,0x13,0x51,0x61, +0x07,0x22,0x71,0x14,0x32,0x81,0x91,0xA1,0x08,0x23,0x42,0xB1,0xC1,0x15,0x52,0xD1,0xF0,0x24, +0x33,0x62,0x72,0x82,0x09,0x0A,0x16,0x17,0x18,0x19,0x1A,0x25,0x26,0x27,0x28,0x29,0x2A,0x34, +0x35,0x36,0x37,0x38,0x39,0x3A,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x53,0x54,0x55,0x56, +0x57,0x58,0x59,0x5A,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x73,0x74,0x75,0x76,0x77,0x78, +0x79,0x7A,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99, +0x9A,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9, +0xBA,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9, +0xDA,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7, +0xF8,0xF9,0xFA,0x11,0x00,0x02,0x01,0x02,0x04,0x04,0x03,0x04,0x07,0x05,0x04,0x04,0x00,0x01, +0x02,0x77,0x00,0x01,0x02,0x03,0x11,0x04,0x05,0x21,0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71, +0x13,0x22,0x32,0x81,0x08,0x14,0x42,0x91,0xA1,0xB1,0xC1,0x09,0x23,0x33,0x52,0xF0,0x15,0x62, +0x72,0xD1,0x0A,0x16,0x24,0x34,0xE1,0x25,0xF1,0x17,0x18,0x19,0x1A,0x26,0x27,0x28,0x29,0x2A, +0x35,0x36,0x37,0x38,0x39,0x3A,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x53,0x54,0x55,0x56, +0x57,0x58,0x59,0x5A,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x73,0x74,0x75,0x76,0x77,0x78, +0x79,0x7A,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x92,0x93,0x94,0x95,0x96,0x97,0x98, +0x99,0x9A,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8, +0xB9,0xBA,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8, +0xD9,0xDA,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8, +0xF9,0xFA +}; + +/* End DHT default */ +#endif + +/* End JPEG */ +#endif + +/*////////////////////////////////////////////////////////////////////////// +// +// Defined IC types +*/ + +#ifndef NONEWIC + +#ifndef ICTYPE_VIDEO +#define ICTYPE_VIDEO mmioFOURCC('v', 'i', 'd', 'c') +#define ICTYPE_AUDIO mmioFOURCC('a', 'u', 'd', 'c') +#endif + +#endif +/* +// Misc. FOURCC registration +*/ + +/* Sierra Semiconductor: RDSP- Confidential RIFF file format +// for the storage and downloading of DSP +// code for Audio and communications devices. +*/ +#define FOURCC_RDSP mmioFOURCC('R', 'D', 'S', 'P') + +#ifndef MMNOMIXER +#define MIXERCONTROL_CONTROLTYPE_SRS_MTS (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 6) +#define MIXERCONTROL_CONTROLTYPE_SRS_ONOFF (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 7) +#define MIXERCONTROL_CONTROLTYPE_SRS_SYNTHSELECT (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 8) +#endif + +#ifndef RC_INVOKED +//current chicago line#pragma pack() /* Revert to default packing */ +#include "poppack.h" /* Revert to default packing */ +#endif /* RC_INVOKED */ + +#ifdef __cplusplus +} /* End of extern "C" { */ +#endif /* __cplusplus */ + +#endif /* _INC_MMREG */ |