Annotation of ntddk/src/mmedia/inc/mmreg.h, revision 1.1.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.