Annotation of ntddk/src/mmedia/inc/mmreg.h, revision 1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.