//==========================================================================;
//
// Copyright (C) Microsoft Corporation, 1991 - 1997
//
// Module Name:
//
// mmreg.h
//
// Abstract:
//
// Multimedia Registration
//
// Revision History:
//
//==========================================================================;
//
// Translated to Delphi 1998-03-05 by Volker Siebert, Unna, Germany.
// Partially upgraded to current version 2005-09-09 by Volker Siebert, Unna, Germany.
//
//==========================================================================;
unit MMReg;
interface
uses
SysUtils, Windows, Messages, MMSystem {, ActiveX};
//***************************************************************************
// MMREG.H (standard include file for MM defines, like FOURCC and things)
//***************************************************************************
const
_INC_MMREG = 158; // version * 100 + revision
const
// manufacturer IDs
MM_MICROSOFT = 1; // Microsoft Corporation
MM_CREATIVE = 2; // Creative Labs, Inc
MM_MEDIAVISION = 3; // Media Vision, Inc.
MM_FUJITSU = 4; // Fujitsu Corp.
MM_PRAGMATRAX = 5; // PRAGMATRAX Software
MM_CYRIX = 6; // Cyrix Corporation
MM_PHILIPS_SPEECH_PROCESSING = 7; // Philips Speech Processing
MM_NETXL = 8; // NetXL, Inc.
MM_ZYXEL = 9; // ZyXEL Communications, Inc.
MM_BECUBED = 10; // BeCubed Software Inc.
MM_AARDVARK = 11; // Aardvark Computer Systems, Inc.
MM_BINTEC = 12; // Bin Tec Communications GmbH
MM_HEWLETT_PACKARD = 13; // Hewlett-Packard Company
MM_ACULAB = 14; // Aculab plc
MM_FAITH = 15; // Faith,Inc.
MM_MITEL = 16; // Mitel Corporation
MM_QUANTUM3D = 17; // Quantum3D, Inc.
MM_SNI = 18; // Siemens-Nixdorf
MM_EMU = 19; // E-mu Systems, Inc.
MM_ARTISOFT = 20; // Artisoft, Inc.
MM_TURTLE_BEACH = 21; // Turtle Beach, Inc.
MM_IBM = 22; // IBM Corporation
MM_VOCALTEC = 23; // Vocaltec LTD.
MM_ROLAND = 24; // Roland
MM_DSP_SOLUTIONS = 25; // DSP Solutions, Inc.
MM_NEC = 26; // NEC
MM_ATI = 27; // ATI
MM_WANGLABS = 28; // Wang Laboratories, Inc
MM_TANDY = 29; // Tandy Corporation
MM_VOYETRA = 30; // Voyetra
MM_ANTEX = 31; // Antex Electronics Corporation
MM_ICL_PS = 32; // ICL Personal Systems
MM_INTEL = 33; // Intel Corporation
MM_GRAVIS = 34; // Advanced Gravis
MM_VAL = 35; // Video Associates Labs, Inc.
MM_INTERACTIVE = 36; // InterActive Inc
MM_YAMAHA = 37; // Yamaha Corporation of America
MM_EVEREX = 38; // Everex Systems, Inc
MM_ECHO = 39; // Echo Speech Corporation
MM_SIERRA = 40; // Sierra Semiconductor Corp
MM_CAT = 41; // Computer Aided Technologies
MM_APPS = 42; // APPS Software International
MM_DSP_GROUP = 43; // DSP Group, Inc
MM_MELABS = 44; // microEngineering Labs
MM_COMPUTER_FRIENDS = 45; // Computer Friends, Inc.
MM_ESS = 46; // ESS Technology
MM_AUDIOFILE = 47; // Audio, Inc.
MM_MOTOROLA = 48; // Motorola, Inc.
MM_CANOPUS = 49; // Canopus, co., Ltd.
MM_EPSON = 50; // Seiko Epson Corporation
MM_TRUEVISION = 51; // Truevision
MM_AZTECH = 52; // Aztech Labs, Inc.
MM_VIDEOLOGIC = 53; // Videologic
MM_SCALACS = 54; // SCALACS
MM_KORG = 55; // Toshihiko Okuhura, Korg Inc.
MM_APT = 56; // Audio Processing Technology
MM_ICS = 57; // Integrated Circuit Systems, Inc.
MM_ITERATEDSYS = 58; // Iterated Systems, Inc.
MM_METHEUS = 59; // Metheus
MM_LOGITECH = 60; // Logitech, Inc.
MM_WINNOV = 61; // Winnov, Inc.
MM_NCR = 62; // NCR Corporation
MM_EXAN = 63; // EXAN
MM_AST = 64; // AST Research Inc.
MM_WILLOWPOND = 65; // Willow Pond Corporation
MM_SONICFOUNDRY = 66; // Sonic Foundry
MM_VITEC = 67; // Vitec Multimedia
MM_MOSCOM = 68; // MOSCOM Corporation
MM_SILICONSOFT = 69; // Silicon Soft, Inc.
MM_TERRATEC = 70; // TerraTec Electronic GmbH
MM_MEDIASONIC = 71; // MediaSonic Ltd.
MM_SANYO = 72; // SANYO Electric Co., Ltd.
MM_SUPERMAC = 73; // Supermac
MM_AUDIOPT = 74; // Audio Processing Technology
MM_NOGATECH = 75; // NOGATECH Ltd.
MM_SPEECHCOMP = 76; // Speech Compression
MM_DOLBY = 78; // Dolby Laboratories
MM_OKI = 79; // OKI
MM_AURAVISION = 80; // AuraVision Corporation
MM_OLIVETTI = 81; // Olivetti
MM_IOMAGIC = 82; // I/O Magic Corporation
MM_MATSUSHITA = 83; // Matsushita Electric Industrial Co., LTD.
MM_CONTROLRES = 84; // Control Resources Limited
MM_XEBEC = 85; // Xebec Multimedia Solutions Limited
MM_NEWMEDIA = 86; // New Media Corporation
MM_NMS = 87; // Natural MicroSystems
MM_LYRRUS = 88; // Lyrrus Inc.
MM_COMPUSIC = 89; // Compusic
MM_OPTI = 90; // OPTi Computers Inc.
MM_DIALOGIC = 93; // Dialogic Corporation
MM_INSOFT = 94; // InSoft, Inc.
MM_MPTUS = 95; // M.P. Technologies, Inc.
MM_WEITEK = 96; // Weitek
MM_LERNOUT_AND_HAUSPIE = 97; // Lernout & Hauspie
MM_QCIAR = 98; // Quanta Computer Inc.
MM_APPLE = 99; // Apple Computer, Inc.
MM_DIGITAL = 100; // Digital Equipment Corporation
MM_MOTU = 101; // Mark of the Unicorn
MM_WORKBIT = 102; // Workbit Corporation
MM_OSITECH = 103; // Ositech Communications Inc.
MM_MIRO = 104; // miro Computer Products AG
MM_CIRRUSLOGIC = 105; // Cirrus Logic
MM_ISOLUTION = 106; // ISOLUTION B.V.
MM_HORIZONS = 107; // Horizons Technology, Inc.
MM_CONCEPTS = 108; // Computer Concepts Ltd.
MM_VTG = 109; // Voice Technologies Group, Inc.
MM_RADIUS = 110; // Radius
MM_ROCKWELL = 111; // Rockwell International
MM_XYZ = 112; // Co. XYZ for testing
MM_OPCODE = 113; // Opcode Systems
MM_VOXWARE = 114; // Voxware Inc.
MM_NORTHERN_TELECOM = 115; // Northern Telecom Limited
MM_APICOM = 116; // APICOM
MM_GRANDE = 117; // Grande Software
MM_ADDX = 118; // ADDX
MM_WILDCAT = 119; // Wildcat Canyon Software
MM_RHETOREX = 120; // Rhetorex Inc.
MM_BROOKTREE = 121; // Brooktree Corporation
MM_ENSONIQ = 125; // ENSONIQ Corporation
MM_FAST = 126; // FAST Multimedia AG
MM_NVIDIA = 127; // NVidia Corporation
MM_OKSORI = 128; // OKSORI Co., Ltd.
MM_DIACOUSTICS = 129; // DiAcoustics, Inc.
MM_GULBRANSEN = 130; // Gulbransen, Inc.
MM_KAY_ELEMETRICS = 131; // Kay Elemetrics, Inc.
MM_CRYSTAL = 132; // Crystal Semiconductor Corporation
MM_SPLASH_STUDIOS = 133; // Splash Studios
MM_QUARTERDECK = 134; // Quarterdeck Corporation
MM_TDK = 135; // TDK Corporation
MM_DIGITAL_AUDIO_LABS = 136; // Digital Audio Labs, Inc.
MM_SEERSYS = 137; // Seer Systems, Inc.
MM_PICTURETEL = 138; // PictureTel Corporation
MM_ATT_MICROELECTRONICS = 139; // AT&T Microelectronics
MM_OSPREY = 140; // Osprey Technologies, Inc.
MM_MEDIATRIX = 141; // Mediatrix Peripherals
MM_SOUNDESIGNS = 142; // SounDesignS M.C.S. Ltd.
MM_ALDIGITAL = 143; // A.L. Digital Ltd.
MM_SPECTRUM_SIGNAL_PROCESSING = 144; // Spectrum Signal Processing, Inc.
MM_ECS = 145; // Electronic Courseware Systems, Inc.
MM_AMD = 146; // AMD
MM_COREDYNAMICS = 147; // Core Dynamics
MM_CANAM = 148; // CANAM Computers
MM_SOFTSOUND = 149; // Softsound, Ltd.
MM_NORRIS = 150; // Norris Communications, Inc.
MM_DDD = 151; // Danka Data Devices
MM_EUPHONICS = 152; // EuPhonics
MM_PRECEPT = 153; // Precept Software, Inc.
MM_CRYSTAL_NET = 154; // Crystal Net Corporation
MM_CHROMATIC = 155; // Chromatic Research, Inc.
MM_VOICEINFO = 156; // Voice Information Systems, Inc.
MM_VIENNASYS = 157; // Vienna Systems
MM_CONNECTIX = 158; // Connectix Corporation
MM_GADGETLABS = 159; // Gadget Labs LLC
MM_FRONTIER = 160; // Frontier Design Group LLC
MM_VIONA = 161; // Viona Development GmbH
MM_CASIO = 162; // Casio Computer Co., LTD
MM_DIAMONDMM = 163; // Diamond Multimedia
MM_S3 = 164; // S3
MM_DVISION = 165; // D-Vision Systems, Inc.
MM_NETSCAPE = 166; // Netscape Communications
MM_SOUNDSPACE = 167; // Soundspace Audio
MM_VANKOEVERING = 168; // VanKoevering Company
MM_QTEAM = 169; // Q-Team
MM_ZEFIRO = 170; // Zefiro Acoustics
MM_STUDER = 171; // Studer Professional Audio AG
MM_FRAUNHOFER_IIS = 172; // Fraunhofer IIS
MM_QUICKNET = 173; // Quicknet Technologies
MM_ALARIS = 174; // Alaris, Inc.
MM_SICRESOURCE = 175; // SIC Resource Inc.
MM_NEOMAGIC = 176; // NeoMagic Corporation
MM_MERGING_TECHNOLOGIES = 177; // Merging Technologies S.A.
MM_XIRLINK = 178; // Xirlink, Inc.
MM_COLORGRAPH = 179; // Colorgraph (UK) Ltd
MM_OTI = 180; // Oak Technology, Inc.
MM_AUREAL = 181; // Aureal Semiconductor
MM_VIVO = 182; // Vivo Software
MM_SHARP = 183; // Sharp
MM_LUCENT = 184; // Lucent Technologies
MM_ATT = 185; // AT&T Labs, Inc.
MM_SUNCOM = 186; // Sun Communications, Inc.
MM_SORVIS = 187; // Sorenson Vision
MM_INVISION = 188; // InVision Interactive
MM_BERKOM = 189; // Deutsche Telekom Berkom GmbH
MM_MARIAN = 190; // Marian GbR Leipzig
MM_DPSINC = 191; // Digital Processing Systems, Inc.
MM_BCB = 192; // BCB Holdings Inc.
MM_MOTIONPIXELS = 193; // Motion Pixels
MM_QDESIGN = 194; // QDesign Corporation
MM_NMP = 195; // Nokia Mobile Phones
MM_DATAFUSION = 196; // DataFusion Systems (Pty) (Ltd)
MM_DUCK = 197; // The Duck Corporation
MM_FTR = 198; // Future Technology Resources Pty Ltd
MM_BERCOS = 199; // BERCOS GmbH
MM_ONLIVE = 200; // OnLive! Technologies, Inc.
MM_SIEMENS_SBC = 201; // Siemens Business Communications Systems
MM_TERALOGIC = 202; // TeraLogic, Inc.
MM_PHONET = 203; // PhoNet Communications Ltd.
MM_WINBOND = 204; // Winbond Electronics Corp
MM_VIRTUALMUSIC = 205; // Virtual Music, Inc.
MM_ENET = 206; // e-Net, Inc.
MM_GUILLEMOT = 207; // Guillemot International
MM_EMAGIC = 208; // Emagic Soft- und Hardware GmbH
MM_MWM = 209; // MWM Acoustics LLC
MM_PACIFICRESEARCH = 210; // Pacific Research and Engineering Corporation
MM_SIPROLAB = 211; // Sipro Lab Telecom Inc.
MM_LYNX = 212; // Lynx Studio Technology, Inc.
MM_SPECTRUM_PRODUCTIONS = 213; // Spectrum Productions
MM_DICTAPHONE = 214; // Dictaphone Corporation
MM_QUALCOMM = 215; // QUALCOMM, Inc.
MM_RZS = 216; // Ring Zero Systems, Inc
MM_AUDIOSCIENCE = 217; // AudioScience Inc.
MM_PINNACLE = 218; // Pinnacle Systems, Inc.
MM_EES = 219; // EES Technik für Musik GmbH
MM_HAFTMANN = 220; // haftmann#software
MM_LUCID = 221; // Lucid Technology, Symetrix Inc.
MM_HEADSPACE = 222; // Headspace, Inc
MM_UNISYS = 223; // UNISYS CORPORATION
MM_LUMINOSITI = 224; // Luminositi, Inc.
MM_ACTIVEVOICE = 225; // ACTIVE VOICE CORPORATION
MM_DTS = 226; // Digital Theater Systems, Inc.
MM_DIGIGRAM = 227; // DIGIGRAM
MM_SOFTLAB_NSK = 228; // Softlab-Nsk
MM_FORTEMEDIA = 229; // ForteMedia, Inc
MM_SONORUS = 230; // Sonorus, Inc.
MM_ARRAY = 231; // Array Microsystems, Inc.
MM_DATARAN = 232; // Data Translation, Inc.
MM_I_LINK = 233; // I-link Worldwide
MM_SELSIUS_SYSTEMS = 234; // Selsius Systems Inc.
MM_ADMOS = 235; // AdMOS Technology, Inc.
MM_LEXICON = 236; // Lexicon Inc.
MM_SGI = 237; // Silicon Graphics Inc.
MM_IPI = 238; // Interactive Product Inc.
MM_ICE = 239; // IC Ensemble, Inc.
MM_VQST = 240; // ViewQuest Technologies Inc.
MM_ETEK = 241; // eTEK Labs Inc.
MM_CS = 242; // Consistent Software
MM_ALESIS = 243; // Alesis Studio Electronics
MM_INTERNET = 244; // INTERNET Corporation
MM_SONY = 245; // Sony Corporation
MM_HYPERACTIVE = 246; // Hyperactive Audio Systems, Inc.
MM_UHER_INFORMATIC = 247; // UHER informatic GmbH
MM_SYDEC_NV = 248; // Sydec NV
MM_FLEXION = 249; // Flexion Systems Ltd.
MM_VIA = 250; // Via Technologies, Inc.
MM_MICRONAS = 251; // Micronas Semiconductors, Inc.
MM_ANALOGDEVICES = 252; // Analog Devices, Inc.
MM_HP = 253; // Hewlett Packard Company
MM_MATROX_DIV = 254; // Matrox
MM_QUICKAUDIO = 255; // Quick Audio, GbR
MM_YOUCOM = 256; // You/Com Audiocommunicatie BV
MM_RICHMOND = 257; // Richmond Sound Design Ltd.
MM_IODD = 258; // I-O Data Device, Inc.
MM_ICCC = 259; // ICCC A/S
MM_3COM = 260; // 3COM Corporation
MM_MALDEN = 261; // Malden Electronics Ltd.
MM_3DFX = 262; // 3Dfx Interactive, Inc.
MM_MINDMAKER = 263; // Mindmaker, Inc.
MM_TELEKOL = 264; // Telekol Corp.
MM_ST_MICROELECTRONICS = 265; // ST Microelectronics
MM_ALGOVISION = 266; // Algo Vision Systems GmbH
MM_UNMAPPED = $ffff; // extensible MID mapping
MM_PID_UNMAPPED = MM_UNMAPPED; // extensible PID mapping
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
// GUID stuff omitted
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// MM_MICROSOFT product IDs
MM_MIDI_MAPPER = 1; // Midi Mapper
MM_WAVE_MAPPER = 2; // Wave Mapper
MM_SNDBLST_MIDIOUT = 3; // Sound Blaster MIDI output port
MM_SNDBLST_MIDIIN = 4; // Sound Blaster MIDI input port
MM_SNDBLST_SYNTH = 5; // Sound Blaster internal synth
MM_SNDBLST_WAVEOUT = 6; // Sound Blaster waveform output
MM_SNDBLST_WAVEIN = 7; // Sound Blaster waveform input
MM_ADLIB = 9; // Ad Lib Compatible synth
MM_MPU401_MIDIOUT = 10; // MPU 401 compatible MIDI output port
MM_MPU401_MIDIIN = 11; // MPU 401 compatible MIDI input port
MM_PC_JOYSTICK = 12; // Joystick adapter
MM_PCSPEAKER_WAVEOUT = 13; // PC speaker waveform output
MM_MSFT_WSS_WAVEIN = 14; // MS Audio Board waveform input
MM_MSFT_WSS_WAVEOUT = 15; // MS Audio Board waveform output
MM_MSFT_WSS_FMSYNTH_STEREO = 16; // MS Audio Board Stereo FM synth
MM_MSFT_WSS_MIXER = 17; // MS Audio Board Mixer Driver
MM_MSFT_WSS_OEM_WAVEIN = 18; // MS OEM Audio Board waveform input
MM_MSFT_WSS_OEM_WAVEOUT = 19; // MS OEM Audio Board waveform output
MM_MSFT_WSS_OEM_FMSYNTH_STEREO = 20; // MS OEM Audio Board Stereo FM Synth
MM_MSFT_WSS_AUX = 21; // MS Audio Board Aux. Port
MM_MSFT_WSS_OEM_AUX = 22; // MS OEM Audio Aux Port
MM_MSFT_GENERIC_WAVEIN = 23; // MS Vanilla driver waveform input
MM_MSFT_GENERIC_WAVEOUT = 24; // MS Vanilla driver wavefrom output
MM_MSFT_GENERIC_MIDIIN = 25; // MS Vanilla driver MIDI in
MM_MSFT_GENERIC_MIDIOUT = 26; // MS Vanilla driver MIDI external out
MM_MSFT_GENERIC_MIDISYNTH = 27; // MS Vanilla driver MIDI synthesizer
MM_MSFT_GENERIC_AUX_LINE = 28; // MS Vanilla driver aux (line in)
MM_MSFT_GENERIC_AUX_MIC = 29; // MS Vanilla driver aux (mic)
MM_MSFT_GENERIC_AUX_CD = 30; // MS Vanilla driver aux (CD)
MM_MSFT_WSS_OEM_MIXER = 31; // MS OEM Audio Board Mixer Driver
MM_MSFT_MSACM = 32; // MS Audio Compression Manager
MM_MSFT_ACM_MSADPCM = 33; // MS ADPCM Codec
MM_MSFT_ACM_IMAADPCM = 34; // IMA ADPCM Codec
MM_MSFT_ACM_MSFILTER = 35; // MS Filter
MM_MSFT_ACM_GSM610 = 36; // GSM 610 codec
MM_MSFT_ACM_G711 = 37; // G.711 codec
MM_MSFT_ACM_PCM = 38; // PCM converter
// Microsoft Windows Sound System drivers
MM_WSS_SB16_WAVEIN = 39; // Sound Blaster 16 waveform input
MM_WSS_SB16_WAVEOUT = 40; // Sound Blaster 16 waveform output
MM_WSS_SB16_MIDIIN = 41; // Sound Blaster 16 midi-in
MM_WSS_SB16_MIDIOUT = 42; // Sound Blaster 16 midi out
MM_WSS_SB16_SYNTH = 43; // Sound Blaster 16 FM Synthesis
MM_WSS_SB16_AUX_LINE = 44; // Sound Blaster 16 aux (line in)
MM_WSS_SB16_AUX_CD = 45; // Sound Blaster 16 aux (CD)
MM_WSS_SB16_MIXER = 46; // Sound Blaster 16 mixer device
MM_WSS_SBPRO_WAVEIN = 47; // Sound Blaster Pro waveform input
MM_WSS_SBPRO_WAVEOUT = 48; // Sound Blaster Pro waveform output
MM_WSS_SBPRO_MIDIIN = 49; // Sound Blaster Pro midi in
MM_WSS_SBPRO_MIDIOUT = 50; // Sound Blaster Pro midi out
MM_WSS_SBPRO_SYNTH = 51; // Sound Blaster Pro FM synthesis
MM_WSS_SBPRO_AUX_LINE = 52; // Sound Blaster Pro aux (line in )
MM_WSS_SBPRO_AUX_CD = 53; // Sound Blaster Pro aux (CD)
MM_WSS_SBPRO_MIXER = 54; // Sound Blaster Pro mixer
MM_MSFT_WSS_NT_WAVEIN = 55; // WSS NT wave in
MM_MSFT_WSS_NT_WAVEOUT = 56; // WSS NT wave out
MM_MSFT_WSS_NT_FMSYNTH_STEREO = 57; // WSS NT FM synth
MM_MSFT_WSS_NT_MIXER = 58; // WSS NT mixer
MM_MSFT_WSS_NT_AUX = 59; // WSS NT aux
MM_MSFT_SB16_WAVEIN = 60; // Sound Blaster 16 waveform input
MM_MSFT_SB16_WAVEOUT = 61; // Sound Blaster 16 waveform output
MM_MSFT_SB16_MIDIIN = 62; // Sound Blaster 16 midi-in
MM_MSFT_SB16_MIDIOUT = 63; // Sound Blaster 16 midi out
MM_MSFT_SB16_SYNTH = 64; // Sound Blaster 16 FM Synthesis
MM_MSFT_SB16_AUX_LINE = 65; // Sound Blaster 16 aux (line in)
MM_MSFT_SB16_AUX_CD = 66; // Sound Blaster 16 aux (CD)
MM_MSFT_SB16_MIXER = 67; // Sound Blaster 16 mixer device
MM_MSFT_SBPRO_WAVEIN = 68; // Sound Blaster Pro waveform input
MM_MSFT_SBPRO_WAVEOUT = 69; // Sound Blaster Pro waveform output
MM_MSFT_SBPRO_MIDIIN = 70; // Sound Blaster Pro midi in
MM_MSFT_SBPRO_MIDIOUT = 71; // Sound Blaster Pro midi out
MM_MSFT_SBPRO_SYNTH = 72; // Sound Blaster Pro FM synthesis
MM_MSFT_SBPRO_AUX_LINE = 73; // Sound Blaster Pro aux (line in )
MM_MSFT_SBPRO_AUX_CD = 74; // Sound Blaster Pro aux (CD)
MM_MSFT_SBPRO_MIXER = 75; // Sound Blaster Pro mixer
MM_MSFT_MSOPL_SYNTH = 76; // Yamaha OPL2/OPL3 compatible FM synthesis
MM_MSFT_VMDMS_LINE_WAVEIN = 80; // Voice Modem Serial Line Wave Input
MM_MSFT_VMDMS_LINE_WAVEOUT = 81; // Voice Modem Serial Line Wave Output
MM_MSFT_VMDMS_HANDSET_WAVEIN = 82; // Voice Modem Serial Handset Wave Input
MM_MSFT_VMDMS_HANDSET_WAVEOUT = 83; // Voice Modem Serial Handset Wave Output
MM_MSFT_VMDMW_LINE_WAVEIN = 84; // Voice Modem Wrapper Line Wave Input
MM_MSFT_VMDMW_LINE_WAVEOUT = 85; // Voice Modem Wrapper Line Wave Output
MM_MSFT_VMDMW_HANDSET_WAVEIN = 86; // Voice Modem Wrapper Handset Wave Input
MM_MSFT_VMDMW_HANDSET_WAVEOUT = 87; // Voice Modem Wrapper Handset Wave Output
MM_MSFT_VMDMW_MIXER = 88; // Voice Modem Wrapper Mixer
MM_MSFT_VMDM_GAME_WAVEOUT = 89; // Voice Modem Game Compatible Wave Device
MM_MSFT_VMDM_GAME_WAVEIN = 90; // Voice Modem Game Compatible Wave Device
MM_MSFT_ACM_MSNAUDIO = 91; //
MM_MSFT_ACM_MSG723 = 92; //
MM_MSFT_ACM_MSRT24 = 93; //
MM_MSFT_WDMAUDIO_WAVEOUT = 100; // Generic id for WDM Audio drivers
MM_MSFT_WDMAUDIO_WAVEIN = 101; // Generic id for WDM Audio drivers
MM_MSFT_WDMAUDIO_MIDIOUT = 102; // Generic id for WDM Audio drivers
MM_MSFT_WDMAUDIO_MIDIIN = 103; // Generic id for WDM Audio drivers
MM_MSFT_WDMAUDIO_MIXER = 104; // Generic id for WDM Audio drivers
MM_MSFT_WDMAUDIO_AUX = 105; // Generic id for WDM Audio drivers
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
// Vendor media/product ID stuff omitted
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
//////////////////////////////////////////////////////////////////////////
const
// INFO LIST CHUNKS (from the Multimedia Programmer's Reference plus new ones)
RIFFINFO_IARL = $4c524149; // 'IARL' Archival location
RIFFINFO_IART = $544d4349; // 'IART' Artist
RIFFINFO_ICMS = $534d4349; // 'ICMS' Commissioned
RIFFINFO_ICMT = $544d4349; // 'ICMT' Comments
RIFFINFO_ICOP = $504f4349; // 'ICOP' Copyright
RIFFINFO_ICRD = $44524349; // 'ICRD' Creation date of subject
RIFFINFO_ICRP = $50524349; // 'ICRP' Cropped
RIFFINFO_IDIM = $4d494449; // 'IDIM' Dimensions
RIFFINFO_IDPI = $49504449; // 'IDPI' Dots per inch
RIFFINFO_IENG = $474e4549; // 'IENG' Engineer
RIFFINFO_IGNR = $524e4749; // 'IGNR' Genre
RIFFINFO_IKEY = $59454b49; // 'IKEY' Keywords
RIFFINFO_ILGT = $54474c49; // 'ILGT' Lightness settings
RIFFINFO_IMED = $44454d49; // 'IMED' Medium
RIFFINFO_INAM = $4d414e49; // 'INAM' Name of subject
RIFFINFO_IPLT = $544c5049; // 'IPLT' Palette Settings. No. of colors requested.
RIFFINFO_IPRD = $44525049; // 'IPRD' Product
RIFFINFO_ISBJ = $4a425349; // 'ISBJ' Subject description
RIFFINFO_ISFT = $54465349; // 'ISFT' Software. Name of package used to create file.
RIFFINFO_ISHP = $50485349; // 'ISHP' Sharpness.
RIFFINFO_ISRC = $43525349; // 'ISRC' Source.
RIFFINFO_ISRF = $46525349; // 'ISRF' Source Form. ie slide, paper
RIFFINFO_ITCH = $47435449; // 'ITCH' Technician who digitized the subject.
RIFFINFO_ISMP = $504d5349; // 'ISMP' SMPTE time code
RIFFINFO_IDIT = $54494449; // 'IDIT' Digitization Time
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
const
// WAVE form wFormatTag IDs
WAVE_FORMAT_UNKNOWN = $0000; // Microsoft Corporation
WAVE_FORMAT_ADPCM = $0002; // Microsoft Corporation
WAVE_FORMAT_IEEE_FLOAT = $0003; // Microsoft Corporation
// IEEE754: range (+1, -1]
// 32-bit/64-bit format as defined by
// MSVC++ float/double type
WAVE_FORMAT_VSELP = $0004; // Compaq Computer Corp. */
WAVE_FORMAT_IBM_CVSD = $0005; // IBM Corporation
WAVE_FORMAT_ALAW = $0006; // Microsoft Corporation
WAVE_FORMAT_MULAW = $0007; // Microsoft Corporation
WAVE_FORMAT_DTS = $0008; // Microsoft Corporation */
WAVE_FORMAT_DRM = $0009; // Microsoft Corporation */
WAVE_FORMAT_OKI_ADPCM = $0010; // OKI
WAVE_FORMAT_DVI_ADPCM = $0011; // Intel Corporation
WAVE_FORMAT_IMA_ADPCM = WAVE_FORMAT_DVI_ADPCM; // Intel Corporation
WAVE_FORMAT_MEDIASPACE_ADPCM = $0012; // Videologic
WAVE_FORMAT_SIERRA_ADPCM = $0013; // Sierra Semiconductor Corp
WAVE_FORMAT_G723_ADPCM = $0014; // Antex Electronics Corporation
WAVE_FORMAT_DIGISTD = $0015; // DSP Solutions, Inc.
WAVE_FORMAT_DIGIFIX = $0016; // DSP Solutions, Inc.
WAVE_FORMAT_DIALOGIC_OKI_ADPCM = $0017; // Dialogic Corporation
WAVE_FORMAT_MEDIAVISION_ADPCM = $0018; // Media Vision, Inc. */
WAVE_FORMAT_CU_CODEC = $0019; // Hewlett-Packard Company */
WAVE_FORMAT_YAMAHA_ADPCM = $0020; // Yamaha Corporation of America
WAVE_FORMAT_SONARC = $0021; // Speech Compression
WAVE_FORMAT_DSPGROUP_TRUESPEECH = $0022; // DSP Group, Inc
WAVE_FORMAT_ECHOSC1 = $0023; // Echo Speech Corporation
WAVE_FORMAT_AUDIOFILE_AF36 = $0024; //
WAVE_FORMAT_APTX = $0025; // Audio Processing Technology
WAVE_FORMAT_AUDIOFILE_AF10 = $0026; //
WAVE_FORMAT_PROSODY_1612 = $0027; // Aculab plc */
WAVE_FORMAT_LRC = $0028; // Merging Technologies S.A. */
WAVE_FORMAT_DOLBY_AC2 = $0030; // Dolby Laboratories
WAVE_FORMAT_GSM610 = $0031; // Microsoft Corporation
WAVE_FORMAT_MSNAUDIO = $0032; // Microsoft Corporation */
WAVE_FORMAT_ANTEX_ADPCME = $0033; // Antex Electronics Corporation
WAVE_FORMAT_CONTROL_RES_VQLPC = $0034; // Control Resources Limited
WAVE_FORMAT_DIGIREAL = $0035; // DSP Solutions, Inc.
WAVE_FORMAT_DIGIADPCM = $0036; // DSP Solutions, Inc.
WAVE_FORMAT_CONTROL_RES_CR10 = $0037; // Control Resources Limited
WAVE_FORMAT_NMS_VBXADPCM = $0038; // Natural MicroSystems
WAVE_FORMAT_CS_IMAADPCM = $0039; // Crystal Semiconductor IMA ADPCM
WAVE_FORMAT_ECHOSC3 = $003A; // Echo Speech Corporation */
WAVE_FORMAT_ROCKWELL_ADPCM = $003B; // Rockwell International */
WAVE_FORMAT_ROCKWELL_DIGITALK = $003C; // Rockwell International */
WAVE_FORMAT_XEBEC = $003D; // Xebec Multimedia Solutions Limited */
WAVE_FORMAT_G721_ADPCM = $0040; // Antex Electronics Corporation
WAVE_FORMAT_G728_CELP = $0041; // Antex Electronics Corporation */
WAVE_FORMAT_MSG723 = $0042; // Microsoft Corporation */
WAVE_FORMAT_MPEG = $0050; // Microsoft Corporation
WAVE_FORMAT_RT24 = $0052; // InSoft, Inc. */
WAVE_FORMAT_PAC = $0053; // InSoft, Inc. */
WAVE_FORMAT_MPEGLAYER3 = $0055; // ISO/MPEG Layer3 Format Tag */
WAVE_FORMAT_LUCENT_G723 = $0059; // Lucent Technologies */
WAVE_FORMAT_CIRRUS = $0060; // Cirrus Logic */
WAVE_FORMAT_ESPCM = $0061; // ESS Technology */
WAVE_FORMAT_VOXWARE = $0062; // Voxware Inc */
WAVE_FORMAT_CANOPUS_ATRAC = $0063; // Canopus, co., Ltd. */
WAVE_FORMAT_G726_ADPCM = $0064; // APICOM */
WAVE_FORMAT_G722_ADPCM = $0065; // APICOM */
WAVE_FORMAT_DSAT_DISPLAY = $0067; // Microsoft Corporation */
WAVE_FORMAT_VOXWARE_BYTE_ALIGNED = $0069; // Voxware Inc */
WAVE_FORMAT_VOXWARE_AC8 = $0070; // Voxware Inc */
WAVE_FORMAT_VOXWARE_AC10 = $0071; // Voxware Inc */
WAVE_FORMAT_VOXWARE_AC16 = $0072; // Voxware Inc */
WAVE_FORMAT_VOXWARE_AC20 = $0073; // Voxware Inc */
WAVE_FORMAT_VOXWARE_RT24 = $0074; // Voxware Inc */
WAVE_FORMAT_VOXWARE_RT29 = $0075; // Voxware Inc */
WAVE_FORMAT_VOXWARE_RT29HW = $0076; // Voxware Inc */
WAVE_FORMAT_VOXWARE_VR12 = $0077; // Voxware Inc */
WAVE_FORMAT_VOXWARE_VR18 = $0078; // Voxware Inc */
WAVE_FORMAT_VOXWARE_TQ40 = $0079; // Voxware Inc */
WAVE_FORMAT_SOFTSOUND = $0080; // Softsound, Ltd. */
WAVE_FORMAT_VOXWARE_TQ60 = $0081; // Voxware Inc */
WAVE_FORMAT_MSRT24 = $0082; // Microsoft Corporation */
WAVE_FORMAT_G729A = $0083; // AT&T Labs, Inc. */
WAVE_FORMAT_MVI_MVI2 = $0084; // Motion Pixels */
WAVE_FORMAT_DF_G726 = $0085; // DataFusion Systems (Pty) (Ltd) */
WAVE_FORMAT_DF_GSM610 = $0086; // DataFusion Systems (Pty) (Ltd) */
WAVE_FORMAT_ISIAUDIO = $0088; // Iterated Systems, Inc. */
WAVE_FORMAT_ONLIVE = $0089; // OnLive! Technologies, Inc. */
WAVE_FORMAT_SBC24 = $0091; // Siemens Business Communications Sys */
WAVE_FORMAT_DOLBY_AC3_SPDIF = $0092; // Sonic Foundry */
WAVE_FORMAT_MEDIASONIC_G723 = $0093; // MediaSonic */
WAVE_FORMAT_PROSODY_8KBPS = $0094; // Aculab plc */
WAVE_FORMAT_ZYXEL_ADPCM = $0097; // ZyXEL Communications, Inc. */
WAVE_FORMAT_PHILIPS_LPCBB = $0098; // Philips Speech Processing */
WAVE_FORMAT_PACKED = $0099; // Studer Professional Audio AG */
WAVE_FORMAT_MALDEN_PHONYTALK = $00A0; // Malden Electronics Ltd. */
WAVE_FORMAT_RHETOREX_ADPCM = $0100; // Rhetorex Inc. */
WAVE_FORMAT_IRAT = $0101; // BeCubed Software Inc. */
WAVE_FORMAT_VIVO_G723 = $0111; // Vivo Software */
WAVE_FORMAT_VIVO_SIREN = $0112; // Vivo Software */
WAVE_FORMAT_DIGITAL_G723 = $0123; // Digital Equipment Corporation */
WAVE_FORMAT_SANYO_LD_ADPCM = $0125; // Sanyo Electric Co., Ltd. */
WAVE_FORMAT_SIPROLAB_ACEPLNET = $0130; // Sipro Lab Telecom Inc. */
WAVE_FORMAT_SIPROLAB_ACELP4800 = $0131; // Sipro Lab Telecom Inc. */
WAVE_FORMAT_SIPROLAB_ACELP8V3 = $0132; // Sipro Lab Telecom Inc. */
WAVE_FORMAT_SIPROLAB_G729 = $0133; // Sipro Lab Telecom Inc. */
WAVE_FORMAT_SIPROLAB_G729A = $0134; // Sipro Lab Telecom Inc. */
WAVE_FORMAT_SIPROLAB_KELVIN = $0135; // Sipro Lab Telecom Inc. */
WAVE_FORMAT_G726ADPCM = $0140; // Dictaphone Corporation */
WAVE_FORMAT_QUALCOMM_PUREVOICE = $0150; // Qualcomm, Inc. */
WAVE_FORMAT_QUALCOMM_HALFRATE = $0151; // Qualcomm, Inc. */
WAVE_FORMAT_TUBGSM = $0155; // Ring Zero Systems, Inc. */
WAVE_FORMAT_MSAUDIO1 = $0160; // Microsoft Corporation */
WAVE_FORMAT_UNISYS_NAP_ADPCM = $0170; // Unisys Corp. */
WAVE_FORMAT_UNISYS_NAP_ULAW = $0171; // Unisys Corp. */
WAVE_FORMAT_UNISYS_NAP_ALAW = $0172; // Unisys Corp. */
WAVE_FORMAT_UNISYS_NAP_16K = $0173; // Unisys Corp. */
WAVE_FORMAT_CREATIVE_ADPCM = $0200; // Creative Labs, Inc
WAVE_FORMAT_CREATIVE_FASTSPEECH8 = $0202; // Creative Labs, Inc
WAVE_FORMAT_CREATIVE_FASTSPEECH10 = $0203; // Creative Labs, Inc
WAVE_FORMAT_UHER_ADPCM = $0210; // UHER informatic GmbH */
WAVE_FORMAT_QUARTERDECK = $0220; // Quarterdeck Corporation */
WAVE_FORMAT_ILINK_VC = $0230; // I-link Worldwide */
WAVE_FORMAT_RAW_SPORT = $0240; // Aureal Semiconductor */
WAVE_FORMAT_ESST_AC3 = $0241; // ESS Technology, Inc. */
WAVE_FORMAT_IPI_HSX = $0250; // Interactive Products, Inc. */
WAVE_FORMAT_IPI_RPELP = $0251; // Interactive Products, Inc. */
WAVE_FORMAT_CS2 = $0260; // Consistent Software */
WAVE_FORMAT_SONY_SCX = $0270; // Sony Corp. */
WAVE_FORMAT_FM_TOWNS_SND = $0300; // Fujitsu Corp.
WAVE_FORMAT_BTV_DIGITAL = $0400; // Brooktree Corporation */
WAVE_FORMAT_QDESIGN_MUSIC = $0450; // QDesign Corporation */
WAVE_FORMAT_VME_VMPCM = $0680; // AT&T Labs, Inc. */
WAVE_FORMAT_TPC = $0681; // AT&T Labs, Inc. */
WAVE_FORMAT_OLIGSM = $1000; // Ing C. Olivetti & C., S.p.A.
WAVE_FORMAT_OLIADPCM = $1001; // Ing C. Olivetti & C., S.p.A.
WAVE_FORMAT_OLICELP = $1002; // Ing C. Olivetti & C., S.p.A.
WAVE_FORMAT_OLISBC = $1003; // Ing C. Olivetti & C., S.p.A.
WAVE_FORMAT_OLIOPR = $1004; // Ing C. Olivetti & C., S.p.A.
WAVE_FORMAT_LH_CODEC = $1100; // Lernout & Hauspie */
WAVE_FORMAT_NORRIS = $1400; // Norris Communications, Inc. */
WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS = $1500; // AT&T Labs, Inc. */
WAVE_FORMAT_DVM = $2000; // FAST Multimedia AG */
WAVE_FORMAT_EXTENSIBLE = $FFFE; // Microsoft */
// 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.
WAVE_FORMAT_DEVELOPMENT = $FFFF;
type
// Define data for MS ADPCM
PADPCMCoefSet = ^TADPCMCoefSet;
TADPCMCoefSet = packed record
iCoef1: Word;
iCoef2: Word;
end;
PADPCMWaveFormat = ^TADPCMWaveFormat;
TADPCMWaveFormat = packed record
wfx: TWaveFormatEx;
wSamplesPerBlock: Word;
wNumCoef: Word;
aCoef: array [0 .. 0] of TADPCMCoefSet;
end;
// Intel's DVI ADPCM structure definitions
// for WAVE_FORMAT_DVI_ADPCM (0x0011)
PDVIADPCMWaveFormat = ^TDVIADPCMWaveFormat;
TDVIADPCMWaveFormat = packed record
wfx: TWaveFormatEx;
wSamplesPerBlock: Word;
end;
// IMA endorsed ADPCM structure definitions--note that this
// is exactly the same format as Intel's DVI ADPCM.
// for WAVE_FORMAT_IMA_ADPCM (0x0011)
PIMAADPCMWaveFormat = ^TIMAADPCMWaveFormat;
TIMAADPCMWaveFormat = packed record
wfx: TWaveFormatEx;
wSamplesPerBlock: Word;
end;
// VideoLogic's Media Space ADPCM Structure definitions
// for WAVE_FORMAT_MEDIASPACE_ADPCM (0x0012)
PMediaSpaceADPCMWaveFormat = ^TMediaSpaceADPCMWaveFormat;
TMediaSpaceADPCMWaveFormat = packed record
wfx: TWaveFormatEx;
wRevision: Word;
end;
// Sierra Semiconductor
// for WAVE_FORMAT_SIERRA_ADPCM (0x0013)
PSierraADPCMWaveFormat = ^TSierraADPCMWaveFormat;
TSierraADPCMWaveFormat = packed record
wfx: TWaveFormatEx;
wRevision: Word;
end;
// Antex Electronics structure definitions
// for WAVE_FORMAT_G723_ADPCM (0x0014)
PG723_ADPCMWaveFormat = ^TG723_ADPCMWaveFormat;
TG723_ADPCMWaveFormat = packed record
wfx: TWaveFormatEx;
cbExtraSize: Word;
nAuxBlockSize: Word;
end;
// DSP Solutions (formerly DIGISPEECH) structure definitions
// for WAVE_FORMAT_DIGISTD (0x0015)
PDigiStdWaveFormat = ^TDigiStdWaveFormat;
TDigiStdWaveFormat = packed record
wfx: TWaveFormatEx;
end;
// DSP Solutions (formerly DIGISPEECH) structure definitions
// for WAVE_FORMAT_DIGIFIX (0x0016)
PDigiFixWaveFormat = ^TDigiFixWaveFormat;
TDigiFixWaveFormat = packed record
wfx: TWaveFormatEx;
end;
// Dialogic Corporation
// WAVEFORMAT_DIALOGIC_OKI_ADPCM (0x0017)
PDialogIkokiADPCMWaveFormat = ^TDialogIkokiADPCMWaveFormat;
TDialogIkokiADPCMWaveFormat = packed record
wfx: TWaveFormatEx;
end;
// Yamaha Compression's ADPCM structure definitions
// for WAVE_FORMAT_YAMAHA_ADPCM (0x0020)
PYamaha_ADPCMWaveFormat = ^TYamaha_ADPCMWaveFormat;
TYamaha_ADPCMWaveFormat = packed record
wfx: TWaveFormatEx;
end;
// Speech Compression's Sonarc structure definitions
// for WAVE_FORMAT_SONARC (0x0021)
PSonarcWaveFormat = ^TSonarcWaveFormat;
TSonarcWaveFormat = packed record
wfx: TWaveFormatEx;
wCompType: Word;
end;
// DSP Groups's TRUESPEECH structure definitions
// for WAVE_FORMAT_DSPGROUP_TRUESPEECH (0x0022)
PTrueSpeechWaveFormat = ^TTrueSpeechWaveFormat;
TTrueSpeechWaveFormat = packed record
wfx: TWaveFormatEx;
wRevision: Word;
wSamplesPerBlock: Word;
abReserved: array [0 .. 27] of Byte;
end;
// Echo Speech Corp structure definitions
// for WAVE_FORMAT_ECHOSC1 (0x0023)
PEchoSC1WaveFormat = ^TEchoSC1WaveFormat;
TEchoSC1WaveFormat = packed record
wfx: TWaveFormatEx;
end;
// Audiofile Inc.structure definitions
// for WAVE_FORMAT_AUDIOFILE_AF36 (0x0024)
PAudioFile_AF36WaveFormat = ^TAudioFile_AF36WaveFormat;
TAudioFile_AF36WaveFormat = packed record
wfx: TWaveFormatEx;
end;
// Audio Processing Technology structure definitions
// for WAVE_FORMAT_APTX (0x0025)
PAPTXWaveFormat = ^TAPTXWaveFormat;
TAPTXWaveFormat = packed record
wfx: TWaveFormatEx;
end;
// Audiofile Inc.structure definitions
// for WAVE_FORMAT_AUDIOFILE_AF10 (0x0026)
PAudioFile_AF10WaveFormat = ^TAudioFile_AF10WaveFormat;
TAudioFile_AF10WaveFormat = packed record
wfx: TWaveFormatEx;
end;
// Dolby's AC-2 wave format structure definition
// WAVE_FORMAT_DOLBY_AC2 (0x0030)*/
PDolbyAC2WaveFormat = ^TDolbyAC2WaveFormat;
TDolbyAC2WaveFormat = packed record
wfx: TWaveFormatEx;
nAuxBitsCode: Word;
end;
// Microsoft's
// WAVE_FORMAT_GSM 610 0x0031
PGSM610WaveFormat = ^TGSM610WaveFormat;
TGSM610WaveFormat = packed record
wfx: TWaveFormatEx;
end;
// Antex Electronics Corp
// for WAVE_FORMAT_ADPCME (0x0033)
PADPCMEWaveFormat = ^TADPCMEWaveFormat;
TADPCMEWaveFormat = packed record
wfx: TWaveFormatEx;
wSamplesPerBlock: Word;
end;
// Control Resources Limited */
// WAVE_FORMAT_CONTROL_RES_VQLPC 0x0034
PContresVQLPCWaveFormat = ^TContresVQLPCWaveFormat;
TContresVQLPCWaveFormat = packed record
wfx: TWaveFormatEx;
wSamplesPerBlock: Word;
end;
// for WAVE_FORMAT_DIGIREAL (0x0035)
PDigiRealWaveFormat = ^TDigiRealWaveFormat;
TDigiRealWaveFormat = packed record
wfx: TWaveFormatEx;
wSamplesPerBlock: Word;
end;
// DSP Solutions
// for WAVE_FORMAT_DIGIADPCM (0x0036)
PDigiADPCMWaveFormat = ^TDigiADPCMWaveFormat;
TDigiADPCMWaveFormat = packed record
wfx: TWaveFormatEx;
wSamplesPerBlock: Word;
end;
// Control Resources Limited */
// WAVE_FORMAT_CONTROL_RES_CR10 0x0037
PContResCR10WaveFormat = ^TContResCR10WaveFormat;
TContResCR10WaveFormat = packed record
wfx: TWaveFormatEx;
wSamplesPerBlock: Word;
end;
// Natural Microsystems
// for WAVE_FORMAT_NMS_VBXADPCM (0x0038)
PVBXADPCMWaveFormat = ^TVBXADPCMWaveFormat;
TVBXADPCMWaveFormat = packed record
wfx: TWaveFormatEx;
wSamplesPerBlock: Word;
end;
// Antex Electronics structure definitions
// for WAVE_FORMAT_G721_ADPCM (0x0040)
PG721_ADPCMWaveFormat = ^TG721_ADPCMWaveFormat;
TG721_ADPCMWaveFormat = packed record
wfx: TWaveFormatEx;
wSamplesPerBlock: Word;
end;
// Microsoft MPEG audio WAV definition
// MPEG-1 audio wave format (audio layer only). (0x0050)
PMPEG1WaveFormat = ^TMPEG1WaveFormat;
TMPEG1WaveFormat = packed record
wfx: TWaveFormatEx;
fwHeadLayer: Word;
dwHeadBitrate: DWORD;
fwHeadMode: Word;
fwHeadModeExt: Word;
wHeadEmphasis: Word;
fwHeadFlags: Word;
dwPTSlow: DWORD;
dwPTShigh: DWORD;
end;
const
ACM_MPEG_LAYER1 = $0001;
ACM_MPEG_LAYER2 = $0002;
ACM_MPEG_LAYER3 = $0004;
ACM_MPEG_STEREO = $0001;
ACM_MPEG_JOINTSTEREO = $0002;
ACM_MPEG_DUALCHANNEL = $0004;
ACM_MPEG_SINGLECHANNEL = $0008;
ACM_MPEG_PRIVATEBIT = $0001;
ACM_MPEG_COPYRIGHT = $0002;
ACM_MPEG_ORIGINALHOME = $0004;
ACM_MPEG_PROTECTIONBIT = $0008;
ACM_MPEG_ID_MPEG1 = $0010;
type
// Creative's ADPCM structure definitions
// for WAVE_FORMAT_CREATIVE_ADPCM (0x0200)
PCreativeADPCMWaveFormat = ^TCreativeADPCMWaveFormat;
TCreativeADPCMWaveFormat = packed record
wfx: TWaveFormatEx;
wRevision: Word;
end;
// Creative FASTSPEECH
// WAVEFORMAT_CREATIVE_FASTSPEECH8 (0x0202)
PCreativeFastSpeech8WaveFormat = ^TCreativeFastSpeech8WaveFormat;
TCreativeFastSpeech8WaveFormat = packed record
wfx: TWaveFormatEx;
wRevision: Word;
end;
// Creative FASTSPEECH
// WAVEFORMAT_CREATIVE_FASTSPEECH10 (0x0203)
PCreativeFastSpeech10WaveFormat = ^TCreativeFastSpeech10WaveFormat;
TCreativeFastSpeech10WaveFormat = packed record
wfx: TWaveFormatEx;
wRevision: Word;
end;
// Fujitsu FM Towns 'SND' structure
// for WAVE_FORMAT_FMMTOWNS_SND (0x0300)
PFMTowns_Snd_WaveFormat = ^TFMTowns_Snd_WaveFormat;
TFMTowns_Snd_WaveFormat = packed record
wfx: TWaveFormatEx;
wRevision: Word;
end;
// Olivetti structure
// for WAVE_FORMAT_OLIGSM (0x1000)
POliGSMWaveFormat = ^TOliGSMWaveFormat;
TOliGSMWaveFormat = packed record
wfx: TWaveFormatEx;
end;
// Olivetti structure
// for WAVE_FORMAT_OLIADPCM (0x1001)
POliADPCMWaveFormat = ^TOliADPCMWaveFormat;
TOliADPCMWaveFormat = packed record
wfx: TWaveFormatEx;
end;
// Olivetti structure
// for WAVE_FORMAT_OLICELP (0x1002)
POliCelpWaveFormat = ^TOliCelpWaveFormat;
TOliCelpWaveFormat = packed record
wfx: TWaveFormatEx;
end;
// Olivetti structure
// for WAVE_FORMAT_OLISBC (0x1003)
POliSbcWaveFormat = ^TOliSbcWaveFormat;
TOliSbcWaveFormat = packed record
wfx: TWaveFormatEx;
end;
// Olivetti structure
// for WAVE_FORMAT_OLIOPR (0x1004)
POliOprWaveFormat = ^TOliOprWaveFormat;
TOliOprWaveFormat = packed record
wfx: TWaveFormatEx;
end;
// Crystal Semiconductor IMA ADPCM format
// for WAVE_FORMAT_CS_IMAADPCM (0x0039)
PCSIMAADPCMWaveFormat = ^TCSIMAADPCMWaveFormat;
TCSIMAADPCMWaveFormat = packed record
wfx: TWaveFormatEx;
end;
//======================================================================
const
//WAVE_FORMAT_MPEGLAYER3 = $55;
MPEGLAYER3_WFX_EXTRA_BYTES = 12;
MPEGLAYER3_ID_UNKNOWN = 0;
MPEGLAYER3_ID_MPEG = 1;
MPEGLAYER3_ID_CONSTANTFRAMESIZE = 2;
MPEGLAYER3_FLAG_PADDING_ISO = $00000000;
MPEGLAYER3_FLAG_PADDING_ON = $00000001;
MPEGLAYER3_FLAG_PADDING_OFF = $00000002;
{ Die Encoder unterscheiden sich ein wenig in der Art, wie ein MP3
"verunstaltet" wird.
Alle Encoder platzieren vor den originalen (umgewandelten) Samples einen
Block Stille von einer gewissen Länge. Diese hat mindestens einen Frame
Länge. In einer Wave-Datei wird die Länge dieser Stille durch das Feld
nCodecDelay angegeben (in vollen Samples, also ggf. stereo).
Bei Microsoft und dem Fraunhofer Codec steht dort (immer) der Wert 1393.
Decoder
1 Granule Stille: 576
Encoder
Standard MDTC Filterbank: 528
Attenuation (max): 288
====
Stille am Anfang: 1392
LAME erzeugt unterschiedliche Werte um die 2257 Samples, allerdings nur
~1105 bei VBR (also etwas mehr als eine Framelänge).
CBR VBR
Decoder ---- ----
1 Granule Stille: 576 576
Encoder
1 Frame Stille: 1152
Standard MDTC Filterbank: 528 528
==== ====
2256 1104
Außerdem generieren alle Encoder ebenso Stille am Ende der Datei.
Der MS generiert hier etwa 1/4 Sekunde, der Fraunhofer etwa 1/2 Sekunde.
LAME ist hier sehr sparsam: der letzte Frame wird abgeschlossen und darauf
folgen noch zwei leere Frames, bei VBR noch nicht einmal dies: nur der
letzte Frame wird abgeschlossen.
Da diese Werte automatisch generiert sind, sind sie in der Sample-Länge,
die im "fact"-Chunk angegeben wird, nicht enthalten!
}
type
PMpegLayer3WaveFormat = ^TMpegLayer3WaveFormat;
TMpegLayer3WaveFormat = packed record
wfx: TWaveFormatEx;
wID: word; // MPEGLAYER3_ID_MPEG
fdwFlags: cardinal; // MPEGLAYER3_FLAG_...
nBlockSize: word; // Größe eines MP3-Frames
nFramesPerBlock: word; // Norm. 1
nCodecDelay: word; // Leere Samples, die der Codec am Beginn hinzugefügt hat
// ACM codecs (MS, Fraunhofer): 1393 zu 1152
// Lame: 2257 zu 1152
end;
//==========================================================================;
// ACM Wave Filters
//==========================================================================;
const
WAVE_FILTER_UNKNOWN = $0000;
WAVE_FILTER_DEVELOPMENT = $FFFF;
type
PWaveFilter = ^TWaveFilter;
TWaveFilter = packed record
cbStruct: DWORD; // Size of the filter in bytes
dwFilterTag: DWORD; // filter type
fdwFilter: DWORD; // Flags for the filter (Universal Dfns)
dwReserved: array [0 .. 4] of DWORD; // Reserved for system use
end;
const
WAVE_FILTER_VOLUME = $0001;
type
PVolumeWaveFilter = ^TVolumeWaveFilter;
TVolumeWaveFilter = packed record
wfltr: TWaveFilter;
dwVolume: DWORD;
end;
const
WAVE_FILTER_ECHO = $0002;
type
PEchoWaveFilter = ^TEchoWaveFilter;
TEchoWaveFilter = packed record
wfltr: TWaveFilter;
dwVolume: DWORD;
dwDelay: DWORD;
end;
//////////////////////////////////////////////////////////////////////////
// New RIFF WAVE Chunks
const
RIFFWAVE_INST = $74736e69; // 'inst'
type
Ps_RIFFWAVE_INST = ^Ts_RIFFWAVE_INST;
Ts_RIFFWAVE_INST = packed record
bUnshiftedNote: Byte;
chFineTune: ShortInt;
chGain: ShortInt;
bLowNote: Byte;
bHighNote: Byte;
bLowVelocity: Byte;
bHighVelocity: Byte;
end;
//////////////////////////////////////////////////////////////////////////
// New RIFF Forms
// RIFF AVI
//
// AVI file format is specified in a seperate file (AVIFMT.H),
// which is available in the VfW and Win 32 SDK
// RIFF CPPO
const
RIFFCPPO = $4f505043; // 'CPPO'
RIFFCPPO_objr = $726a626f; // 'objr'
RIFFCPPO_obji = $696a626f; // 'obji'
RIFFCPPO_clsr = $72736c63; // 'clsr'
RIFFCPPO_clsi = $69736c63; // 'clsi'
RIFFCPPO_mbr = $2072626d; // 'mbr '
RIFFCPPO_char = $72616863; // 'char'
RIFFCPPO_byte = $65747962; // 'byte'
RIFFCPPO_int = $20746e69; // 'int '
RIFFCPPO_word = $64726f77; // 'word'
RIFFCPPO_long = $676e6f6c; // 'long'
RIFFCPPO_dwrd = $64627764; // 'dwrd'
RIFFCPPO_flt = $20746c66; // 'flt '
RIFFCPPO_dbl = $206c6264; // 'dbl '
RIFFCPPO_str = $20727473; // 'str '
//////////////////////////////////////////////////////////////////////////
// DIB Compression Defines
const
BI_BITFIELDS = 3;
QUERYDIBSUPPORT = 3073;
QDI_SETDIBITS = $0001;
QDI_GETDIBITS = $0002;
QDI_DIBTOSCREEN = $0004;
QDI_STRETCHDIB = $0008;
type
// Structure definitions
PExBmInfoHeader = ^TExBmInfoHeader;
TExBmInfoHeader = packed record
bmi: TBitmapInfoHeader;
// extended BITMAPINFOHEADER fields
biExtDataOffset: DWORD;
end;
const
// New DIB Compression Defines
BICOMP_IBMULTIMOTION = $49544c55; // 'ULTI'
BICOMP_IBMPHOTOMOTION = $4f4d4850; // 'PHMO'
BICOMP_CREATIVEYUV = $56555943; // 'cyuv'
// New DIB Compression Defines
JPEG_DIB = $4745504a; // 'JPEG' Still image JPEG DIB biCompression
MJPG_DIB = $4745504d; // 'MJPG' Motion JPEG DIB biCompression
// JPEGProcess Definitions
JPEG_PROCESS_BASELINE = 0; // Baseline DCT
// AVI File format extensions
AVIIF_CONTROLFRAME = $00000200; // 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 */
}
type
// Structure definitions
PJPEGInfoHeader = ^TJPEGInfoHeader;
TJPEGInfoHeader = packed record
// compression-specific fields
// these fields are defined for 'JPEG' and 'MJPG'
JPEGSize: DWORD;
JPEGProcess: DWORD;
// Process specific fields
JPEGColorSpaceID: DWORD;
JPEGBitsPerSample: DWORD;
JPEGHSubSampling: DWORD;
JPEGVSubSampling: DWORD;
end;
const
// Default DHT Segment
MJPGDHTSeg: array [0 .. $1a3] of byte = (
// JPEG DHT Segment for YCrCb omitted from MJPG data
$FF,$C4,$01,$A2,
$00,$00,$01,$05,$01,$01,$01,$01,$01,$01,$00,$00,$00,$00,$00,$00,$00,$00,
$01,$02,$03,$04,$05,$06,$07,$08,$09,$0A,$0B,$01,$00,$03,$01,$01,$01,$01,
$01,$01,$01,$01,$01,$00,$00,$00,$00,$00,$00,$01,$02,$03,$04,$05,$06,$07,
$08,$09,$0A,$0B,$10,$00,$02,$01,$03,$03,$02,$04,$03,$05,$05,$04,$04,$00,
$00,$01,$7D,$01,$02,$03,$00,$04,$11,$05,$12,$21,$31,$41,$06,$13,$51,$61,
$07,$22,$71,$14,$32,$81,$91,$A1,$08,$23,$42,$B1,$C1,$15,$52,$D1,$F0,$24,
$33,$62,$72,$82,$09,$0A,$16,$17,$18,$19,$1A,$25,$26,$27,$28,$29,$2A,$34,
$35,$36,$37,$38,$39,$3A,$43,$44,$45,$46,$47,$48,$49,$4A,$53,$54,$55,$56,
$57,$58,$59,$5A,$63,$64,$65,$66,$67,$68,$69,$6A,$73,$74,$75,$76,$77,$78,
$79,$7A,$83,$84,$85,$86,$87,$88,$89,$8A,$92,$93,$94,$95,$96,$97,$98,$99,
$9A,$A2,$A3,$A4,$A5,$A6,$A7,$A8,$A9,$AA,$B2,$B3,$B4,$B5,$B6,$B7,$B8,$B9,
$BA,$C2,$C3,$C4,$C5,$C6,$C7,$C8,$C9,$CA,$D2,$D3,$D4,$D5,$D6,$D7,$D8,$D9,
$DA,$E1,$E2,$E3,$E4,$E5,$E6,$E7,$E8,$E9,$EA,$F1,$F2,$F3,$F4,$F5,$F6,$F7,
$F8,$F9,$FA,$11,$00,$02,$01,$02,$04,$04,$03,$04,$07,$05,$04,$04,$00,$01,
$02,$77,$00,$01,$02,$03,$11,$04,$05,$21,$31,$06,$12,$41,$51,$07,$61,$71,
$13,$22,$32,$81,$08,$14,$42,$91,$A1,$B1,$C1,$09,$23,$33,$52,$F0,$15,$62,
$72,$D1,$0A,$16,$24,$34,$E1,$25,$F1,$17,$18,$19,$1A,$26,$27,$28,$29,$2A,
$35,$36,$37,$38,$39,$3A,$43,$44,$45,$46,$47,$48,$49,$4A,$53,$54,$55,$56,
$57,$58,$59,$5A,$63,$64,$65,$66,$67,$68,$69,$6A,$73,$74,$75,$76,$77,$78,
$79,$7A,$82,$83,$84,$85,$86,$87,$88,$89,$8A,$92,$93,$94,$95,$96,$97,$98,
$99,$9A,$A2,$A3,$A4,$A5,$A6,$A7,$A8,$A9,$AA,$B2,$B3,$B4,$B5,$B6,$B7,$B8,
$B9,$BA,$C2,$C3,$C4,$C5,$C6,$C7,$C8,$C9,$CA,$D2,$D3,$D4,$D5,$D6,$D7,$D8,
$D9,$DA,$E2,$E3,$E4,$E5,$E6,$E7,$E8,$E9,$EA,$F2,$F3,$F4,$F5,$F6,$F7,$F8,
$F9,$FA
);
//////////////////////////////////////////////////////////////////////////
// Defined IC types
const
// Misc. FOURCC registration
// Sierra Semiconductor: RDSP- Confidential RIFF file format
// for the storage and downloading of DSP
// code for Audio and communications devices.
FOURCC_RDSP = $50534452; // 'RDSP'
MIXERCONTROL_CONTROLTYPE_SRS_MTS = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 6;
MIXERCONTROL_CONTROLTYPE_SRS_ONOFF = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 7;
MIXERCONTROL_CONTROLTYPE_SRS_SYNTHSELECT = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 8;
implementation
end. |