⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wmawfxdefs.h

📁 本程序为ST公司开发的源代码
💻 H
字号:
//*@@@+++@@@@******************************************************************//// Microsoft Windows Media// Copyright (C) Microsoft Corporation. All rights reserved.////*@@@---@@@@******************************************************************#ifndef _WMAWFXDEFS_H_#define _WMAWFXDEFS_H_#include "wmadefs.h"#include "wmatyps.h"#ifndef GUID_DEFINED#define GUID_DEFINEDtypedef PACKED struct {          // size is 16    unsigned long  Data1;    unsigned short Data2;    unsigned short Data3;    unsigned char  Data4[8];} GUID;#endif // !GUID_DEFINED#ifndef COMPILER_PACKALIGN#ifndef PLATFORM_SPECIFIC_COMPILER_PACKALIGN#define COMPILER_PACKALIGN(x)       pack(x)#endif#endif#ifndef COMPILER_PACKALIGN_DEFAULT#ifndef PLATFORM_SPECIFIC_COMPILER_PACKALIGN_DEFAULT#define COMPILER_PACKALIGN_DEFAULT  pack()#endif#endif#ifndef _WAVEFORMATEX_#define _WAVEFORMATEX_#ifndef _Embedded_x86//#pragma COMPILER_PACKALIGN(1) //O.K.//#pragma pack(1) //O.K.#endif#if !defined (WINMMAPI)typedef PACKED struct {    WMA_U16     wFormatTag;        /* format type */    WMA_U16     nChannels;         /* number of channels (i.e. mono, stereo...) */    WMA_U32     nSamplesPerSec;    /* sample rate */    WMA_U32     nAvgBytesPerSec;   /* for buffer estimation */    WMA_U16     nBlockAlign;       /* block size of data */    WMA_U16     wBitsPerSample;    /* Number of bits per sample of mono data */    WMA_U16     cbSize;            /* The count in bytes of the size of                                * extra information (after cbSize) */                               } WAVEFORMATEX, *PWAVEFORMATEX, *LPWAVEFORMATEX;typedef const WAVEFORMATEX *LPCWAVEFORMATEX;#endif // WINMMAPI#ifndef _Embedded_x86//#pragma COMPILER_PACKALIGN_DEFAULT //O.K.//#pragma pack()#endif#endif /* _WAVEFORMATEX_ */#ifndef _WAVEFORMATEXTENSIBLE_#define _WAVEFORMATEXTENSIBLE_#ifndef _Embedded_x86//#pragma COMPILER_PACKALIGN(1) //O.K.#endiftypedef PACKED struct {    WAVEFORMATEX Format;       /* The traditional wave file header */    PACKED union {        unsigned short wValidBitsPerSample; /* bits of precision */        unsigned short wSamplesPerBlock;    /* valid if wBitsPerSample==0 */        unsigned short wReserved;           /* If neither applies, set to zero */    } Samples;    unsigned long    dwChannelMask;        /* which channels are present in stream */    GUID SubFormat;           /* specialization */} WAVEFORMATEXTENSIBLE, *PWAVEFORMATEXTENSIBLE;#ifndef _Embedded_x86//#pragma COMPILER_PACKALIGN_DEFAULT //O.K.#endif#endif /* _WAVEFORMATEXTENSIBLE_ */#ifndef WAVE_FORMAT_PCM#define WAVE_FORMAT_PCM 1#endif /* WAVE_FORMAT_PCM */#ifndef WAVE_FORMAT_IEEE_FLOAT#define  WAVE_FORMAT_IEEE_FLOAT 0x0003#endif /* WAVE_FORMAT_IEEE_FLOAT */#ifndef WAVE_FORMAT_EXTENSIBLE#define WAVE_FORMAT_EXTENSIBLE 65534#endif /* WAVE_FORMAT_EXTENSIBLE */#ifndef _SPEAKER_POSITIONS_#define _SPEAKER_POSITIONS_/* Speaker Positions for dwChannelMask in WAVEFORMATEXTENSIBLE: from ksmedia.h */#define SPEAKER_FRONT_LEFT              0x1#define SPEAKER_FRONT_RIGHT             0x2#define SPEAKER_FRONT_CENTER            0x4#define SPEAKER_LOW_FREQUENCY           0x8#define SPEAKER_BACK_LEFT               0x10#define SPEAKER_BACK_RIGHT              0x20#define SPEAKER_FRONT_LEFT_OF_CENTER    0x40#define SPEAKER_FRONT_RIGHT_OF_CENTER   0x80#define SPEAKER_BACK_CENTER             0x100#define SPEAKER_SIDE_LEFT               0x200#define SPEAKER_SIDE_RIGHT              0x400#define SPEAKER_TOP_CENTER              0x800#define SPEAKER_TOP_FRONT_LEFT          0x1000#define SPEAKER_TOP_FRONT_CENTER        0x2000#define SPEAKER_TOP_FRONT_RIGHT         0x4000#define SPEAKER_TOP_BACK_LEFT           0x8000#define SPEAKER_TOP_BACK_CENTER         0x10000#define SPEAKER_TOP_BACK_RIGHT          0x20000#endif /* _SPEAKER_POSITIONS_ */#define IS_KSDATAFORMAT_SUBTYPE_PCM(guid)\    (((guid)->Data1       == 0x01) &&\     ((guid)->Data2       == 0x00) &&\     ((guid)->Data3       == 0x10) &&\     ((guid)->Data4[0] == 0x80) &&\     ((guid)->Data4[1] == 0x00) &&\     ((guid)->Data4[2] == 0x00) &&\     ((guid)->Data4[3] == 0xaa) &&\     ((guid)->Data4[4] == 0x00) &&\     ((guid)->Data4[5] == 0x38) &&\     ((guid)->Data4[6] == 0x9b) &&\     ((guid)->Data4[7] == 0x71))#define COPY_KSDATAFORMAT_SUBTYPE_PCM(guid)\     (guid)->Data1       = 0x01;\     (guid)->Data2       = 0x00;\     (guid)->Data3       = 0x10;\     (guid)->Data4[0] = 0x80;\     (guid)->Data4[1] = 0x00;\     (guid)->Data4[2] = 0x00;\     (guid)->Data4[3] = 0xaa;\     (guid)->Data4[4] = 0x00;\     (guid)->Data4[5] = 0x38;\     (guid)->Data4[6] = 0x9b;\     (guid)->Data4[7] = 0x71;#define IS_KSDATAFORMAT_SUBTYPE_IEEEFLOAT(guid)\    (((guid)->Data1       == 0x03) &&\     ((guid)->Data2       == 0x00) &&\     ((guid)->Data3       == 0x10) &&\     ((guid)->Data4[0] == 0x80) &&\     ((guid)->Data4[1] == 0x00) &&\     ((guid)->Data4[2] == 0x00) &&\     ((guid)->Data4[3] == 0xaa) &&\     ((guid)->Data4[4] == 0x00) &&\     ((guid)->Data4[5] == 0x38) &&\     ((guid)->Data4[6] == 0x9b) &&\     ((guid)->Data4[7] == 0x71))#define COPY_KSDATAFORMAT_SUBTYPE_IEEEFLOAT(guid)\     (guid)->Data1       = 0x03;\     (guid)->Data2       = 0x00;\     (guid)->Data3       = 0x10;\     (guid)->Data4[0] = 0x80;\     (guid)->Data4[1] = 0x00;\     (guid)->Data4[2] = 0x00;\     (guid)->Data4[3] = 0xaa;\     (guid)->Data4[4] = 0x00;\     (guid)->Data4[5] = 0x38;\     (guid)->Data4[6] = 0x9b;\     (guid)->Data4[7] = 0x71;#define IS_WFXDATAFORMAT_PCM(wfxe) \    (wfxe.Format.wFormatTag == WAVE_FORMAT_PCM || \     (wfxe.Format.wFormatTag == WAVE_FORMAT_EXTENSIBLE && \      IS_KSDATAFORMAT_SUBTYPE_PCM(&wfxe.SubFormat)))#define IS_WFXDATAFORMAT_IEEEFLOAT(wfxe) \    (wfxe.Format.wFormatTag == WAVE_FORMAT_IEEE_FLOAT || \     (wfxe.Format.wFormatTag == WAVE_FORMAT_EXTENSIBLE && \      IS_KSDATAFORMAT_SUBTYPE_IEEEFLOAT(&wfxe.SubFormat)))#define COPY_WFXDATAFORMAT_PCM(wfxe, ex) { \    if (ex) { \        wfxe.Format.wFormatTag = WAVE_FORMAT_EXTENSIBLE; \        COPY_KSDATAFORMAT_SUBTYPE_PCM(&wfxe.SubFormat); \    } else { \        wfxe.Format.wFormatTag = WAVE_FORMAT_PCM; \    } \}#define COPY_WFXDATAFORMAT_IEEEFLOAT(wfxe, ex) { \    if (ex) { \        wfxe.Format.wFormatTag = WAVE_FORMAT_EXTENSIBLE; \        COPY_KSDATAFORMAT_SUBTYPE_IEEEFLOAT(&wfxe.SubFormat); \    } else { \        wfxe.Format.wFormatTag = WAVE_FORMAT_IEEE_FLOAT; \    } \}#if !defined (DSSPEAKER_5POINT1)#define DSSPEAKER_5POINT1           0x00000006#endif#if !defined (DSSPEAKER_7POINT1)#define DSSPEAKER_7POINT1           0x00000007#endif#endif /* _WMAWFXDEFS_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -