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

📄 csmedia.h

📁 freescale i.mx31 BSP CE5.0全部源码
💻 H
📖 第 1 页 / 共 5 页
字号:
#define CSAUDIO_STEREO_SPEAKER_GEOMETRY_MIN         5
#define CSAUDIO_STEREO_SPEAKER_GEOMETRY_NARROW      10
#define CSAUDIO_STEREO_SPEAKER_GEOMETRY_WIDE        20
#define CSAUDIO_STEREO_SPEAKER_GEOMETRY_MAX         180

#define CSDSOUND_3D_MODE_NORMAL          0x00000000
#define CSDSOUND_3D_MODE_HEADRELATIVE    0x00000001
#define CSDSOUND_3D_MODE_DISABLE         0x00000002

//===========================================================================
// Definitions intended for hardware acceleration of the HRTF 3D algorithm
//===========================================================================

#define CSDSOUND_BUFFER_CTRL_HRTF_3D        0x40000000

typedef struct {
    ULONG                   Size;           // This is the size of the struct in bytes
    ULONG                   Enabled;
    BOOL                    SwapChannels;
    BOOL                    ZeroAzimuth;
    BOOL                    CrossFadeOutput;
    ULONG                   FilterSize;     // This is the additional size of the filter coeff in bytes
} CSDS3D_HRTF_PARAMS_MSG, *PCSDS3D_HRTF_PARAMS_MSG;

// HRTF filter quality levels
typedef enum {
    FULL_FILTER,
    LIGHT_FILTER,
    CSDS3D_FILTER_QUALITY_COUNT
} CSDS3D_HRTF_FILTER_QUALITY;

typedef struct {
    ULONG                       Size;       // This is the size of the struct in bytes
    CSDS3D_HRTF_FILTER_QUALITY  Quality;
    FLOAT                       SampleRate;
    ULONG                       MaxFilterSize;
    ULONG                       FilterTransientMuteLength;
    ULONG                       FilterOverlapBufferLength;
    ULONG                       OutputOverlapBufferLength;
    ULONG                       Reserved;
} CSDS3D_HRTF_INIT_MSG, *PCSDS3D_HRTF_INIT_MSG;

// Coefficient formats
typedef enum {
    FLOAT_COEFF,
    SHORT_COEFF,
    CSDS3D_COEFF_COUNT
} CSDS3D_HRTF_COEFF_FORMAT;

// Filter methods
typedef enum {
    DIRECT_FORM,
    CASCADE_FORM,
    CSDS3D_FILTER_METHOD_COUNT
} CSDS3D_HRTF_FILTER_METHOD;

// Filter methods
typedef enum {
    DS3D_HRTF_VERSION_1
} CSDS3D_HRTF_FILTER_VERSION;

typedef struct {
    CSDS3D_HRTF_FILTER_METHOD    FilterMethod;
    CSDS3D_HRTF_COEFF_FORMAT     CoeffFormat;
    CSDS3D_HRTF_FILTER_VERSION   Version;
    ULONG                        Reserved;
} CSDS3D_HRTF_FILTER_FORMAT_MSG, *PCSDS3D_HRTF_FILTER_FORMAT_MSG;

#define STATIC_CSPROPSETID_Hrtf3d\
    0xb66decb0L, 0xa083, 0x11d0, 0x85, 0x1e, 0x00, 0xc0, 0x4f, 0xd9, 0xba, 0xf3
DEFINE_GUIDSTRUCT("b66decb0-a083-11d0-851e-00c04fd9baf3", CSPROPSETID_Hrtf3d);
#define CSPROPSETID_Hrtf3d DEFINE_GUIDNAMED(CSPROPSETID_Hrtf3d)

typedef enum {
    CSPROPERTY_HRTF3D_PARAMS = 0,
    CSPROPERTY_HRTF3D_INITIALIZE,
    CSPROPERTY_HRTF3D_FILTER_FORMAT
} CSPROPERTY_HRTF3D;


//===========================================================================
// Definitions related to the obsolete Interaural Time Delay 3D algorithm
//===========================================================================

// DirectSound3D FIR context
typedef struct {
    LONG                Channel;
    FLOAT               VolSmoothScale;
    FLOAT               TotalDryAttenuation;
    FLOAT               TotalWetAttenuation;
    LONG                SmoothFrequency;
    LONG                Delay;
} CSDS3D_ITD_PARAMS, *PCSDS3D_ITD_PARAMS;

typedef struct {
    ULONG                 Enabled;
    CSDS3D_ITD_PARAMS     LeftParams;
    CSDS3D_ITD_PARAMS     RightParams;
    ULONG                 Reserved;
} CSDS3D_ITD_PARAMS_MSG, *PCSDS3D_ITD_PARAMS_MSG;

#define STATIC_CSPROPSETID_Itd3d\
    0x6429f090L, 0x9fd9, 0x11d0, 0xa7, 0x5b, 0x00, 0xa0, 0xc9, 0x03, 0x65, 0xe3
DEFINE_GUIDSTRUCT("6429f090-9fd9-11d0-a75b-00a0c90365e3", CSPROPSETID_Itd3d);
#define CSPROPSETID_Itd3d DEFINE_GUIDNAMED(CSPROPSETID_Itd3d)

typedef enum {
    CSPROPERTY_ITD3D_PARAMS = 0
} CSPROPERTY_ITD3D;


typedef struct {
   CSDATARANGE              DataRange;
   ULONG                    MaximumChannels;
   ULONG                    MinimumBitsPerSample;
   ULONG                    MaximumBitsPerSample;
   ULONG                    MinimumSampleFrequency;
   ULONG                    MaximumSampleFrequency;
} CSDATARANGE_AUDIO, *PCSDATARANGE_AUDIO;

//---------------------------------------------------------------------------

#define STATIC_CSDATAFORMAT_SUBTYPE_RIFF\
    0x4995DAEEL, 0x9EE6, 0x11D0, 0xA4, 0x0E, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
DEFINE_GUIDSTRUCT("4995DAEE-9EE6-11D0-A40E-00A0C9223196", CSDATAFORMAT_SUBTYPE_RIFF);
#define CSDATAFORMAT_SUBTYPE_RIFF DEFINE_GUIDNAMED(CSDATAFORMAT_SUBTYPE_RIFF)

#define STATIC_CSDATAFORMAT_SUBTYPE_RIFFWAVE\
    0xe436eb8bL, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70
DEFINE_GUIDSTRUCT("e436eb8b-524f-11ce-9f53-0020af0ba770", CSDATAFORMAT_SUBTYPE_RIFFWAVE);
#define CSDATAFORMAT_SUBTYPE_RIFFWAVE DEFINE_GUIDNAMED(CSDATAFORMAT_SUBTYPE_RIFFWAVE)

//===========================================================================
//===========================================================================

#define STATIC_CSPROPSETID_Bibliographic \
    0x07BA150EL, 0xE2B1, 0x11D0, 0xAC, 0x17, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
DEFINE_GUIDSTRUCT("07BA150E-E2B1-11D0-AC17-00A0C9223196", CSPROPSETID_Bibliographic);
#define CSPROPSETID_Bibliographic DEFINE_GUIDNAMED(CSPROPSETID_Bibliographic)

//Repeatable tags contain all entries within the property, each preceeded by length
typedef enum {
    CSPROPERTY_BIBLIOGRAPHIC_LEADER = 'RDL ',
    CSPROPERTY_BIBLIOGRAPHIC_LCCN = '010 ',
    CSPROPERTY_BIBLIOGRAPHIC_ISBN = '020 ',
    CSPROPERTY_BIBLIOGRAPHIC_ISSN = '220 ',
    CSPROPERTY_BIBLIOGRAPHIC_CATALOGINGSOURCE = '040 ',
    CSPROPERTY_BIBLIOGRAPHIC_MAINPERSONALNAME = '001 ',
    CSPROPERTY_BIBLIOGRAPHIC_MAINCORPORATEBODY = '011 ',
    CSPROPERTY_BIBLIOGRAPHIC_MAINMEETINGNAME = '111 ',
    CSPROPERTY_BIBLIOGRAPHIC_MAINUNIFORMTITLE = '031 ',
    CSPROPERTY_BIBLIOGRAPHIC_UNIFORMTITLE = '042 ',
    CSPROPERTY_BIBLIOGRAPHIC_TITLESTATEMENT = '542 ',
    CSPROPERTY_BIBLIOGRAPHIC_VARYINGFORMTITLE = '642 ',
    CSPROPERTY_BIBLIOGRAPHIC_PUBLICATION = '062 ',
    CSPROPERTY_BIBLIOGRAPHIC_PHYSICALDESCRIPTION = '003 ',
    CSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYTITLE = '044 ',
    CSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENT = '094 ',
    CSPROPERTY_BIBLIOGRAPHIC_GENERALNOTE = '005 ',
    CSPROPERTY_BIBLIOGRAPHIC_BIBLIOGRAPHYNOTE = '405 ',
    CSPROPERTY_BIBLIOGRAPHIC_CONTENTSNOTE = '505 ',
    CSPROPERTY_BIBLIOGRAPHIC_CREATIONCREDIT = '805 ',
    CSPROPERTY_BIBLIOGRAPHIC_CITATION = '015 ',
    CSPROPERTY_BIBLIOGRAPHIC_PARTICIPANT = '115 ',
    CSPROPERTY_BIBLIOGRAPHIC_SUMMARY = '025 ',
    CSPROPERTY_BIBLIOGRAPHIC_TARGETAUDIENCE = '125 ',
    CSPROPERTY_BIBLIOGRAPHIC_ADDEDFORMAVAILABLE = '035 ',
    CSPROPERTY_BIBLIOGRAPHIC_SYSTEMDETAILS = '835 ',
    CSPROPERTY_BIBLIOGRAPHIC_AWARDS = '685 ',
    CSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYPERSONALNAME = '006 ',
    CSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYTOPICALTERM = '056 ',
    CSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYGEOGRAPHIC = '156 ',
    CSPROPERTY_BIBLIOGRAPHIC_INDEXTERMGENRE = '556 ',
    CSPROPERTY_BIBLIOGRAPHIC_INDEXTERMCURRICULUM = '856 ',
    CSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYUNIFORMTITLE = '037 ',
    CSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYRELATED = '047 ',
    CSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENTPERSONALNAME = '008 ',
    CSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENTUNIFORMTITLE = '038 '
} CSPROPERTY_BIBLIOGRAPHIC;

#define STATIC_CSPROPSETID_TopologyNode\
    0x45FFAAA1L, 0x6E1B, 0x11D0, 0xBC, 0xF2, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00
DEFINE_GUIDSTRUCT("45FFAAA1-6E1B-11D0-BCF2-444553540000", CSPROPSETID_TopologyNode);
#define CSPROPSETID_TopologyNode DEFINE_GUIDNAMED(CSPROPSETID_TopologyNode)

typedef enum {
    CSPROPERTY_TOPOLOGYNODE_ENABLE = 1,
    CSPROPERTY_TOPOLOGYNODE_RESET
} CSPROPERTY_TOPOLOGYNODE;

//===========================================================================

#if defined(_NTDDK_)
typedef NTSTATUS (CALLBACK *PRTAUDIOGETPOSITION)(IN PFILE_OBJECT PinFileObject,
                                                 OUT PUCHAR *ppPlayPosition,
                                                 OUT PLONG plOffset);
#endif // defined(_NTDDK_)

#define STATIC_CSPROPSETID_RtAudio\
    0xa855a48c, 0x2f78, 0x4729, 0x90, 0x51, 0x19, 0x68, 0x74, 0x6b, 0x9e, 0xef
DEFINE_GUIDSTRUCT("A855A48C-2F78-4729-9051-1968746B9EEF", CSPROPSETID_RtAudio);
#define CSPROPSETID_RtAudio DEFINE_GUIDNAMED(CSPROPSETID_RtAudio)

typedef enum {
    CSPROPERTY_RTAUDIO_GETPOSITIONFUNCTION,
    CSPROPERTY_RTAUDIO_BUFFER
} CSPROPERTY_RTAUDIO;

typedef struct {
    PVOID   BaseAddress;
    ULONG   Size;
} RTAUDIO_BUFFER, *PRTAUDIO_BUFFER;

//===========================================================================
#define STATIC_CSPROPSETID_DrmAudioStream\
    0x2f2c8ddd, 0x4198, 0x4fac, 0xba, 0x29, 0x61, 0xbb, 0x5, 0xb7, 0xde, 0x6
DEFINE_GUIDSTRUCT("2F2C8DDD-4198-4fac-BA29-61BB05B7DE06", CSPROPSETID_DrmAudioStream);
#define CSPROPSETID_DrmAudioStream DEFINE_GUIDNAMED(CSPROPSETID_DrmAudioStream)

typedef enum {
    CSPROPERTY_DRMAUDIOSTREAM_CONTENTID
} CSPROPERTY_DRMAUDIOSTREAM;

//===========================================================================
#define STATIC_CSPROPSETID_Audio\
    0x45FFAAA0L, 0x6E1B, 0x11D0, 0xBC, 0xF2, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00
DEFINE_GUIDSTRUCT("45FFAAA0-6E1B-11D0-BCF2-444553540000", CSPROPSETID_Audio);
#define CSPROPSETID_Audio DEFINE_GUIDNAMED(CSPROPSETID_Audio)

typedef enum {
    CSPROPERTY_AUDIO_LATENCY = 1,
    CSPROPERTY_AUDIO_COPY_PROTECTION,
    CSPROPERTY_AUDIO_CHANNEL_CONFIG,
    CSPROPERTY_AUDIO_VOLUMELEVEL,
    CSPROPERTY_AUDIO_POSITION,
    CSPROPERTY_AUDIO_DYNAMIC_RANGE,
    CSPROPERTY_AUDIO_QUALITY,
    CSPROPERTY_AUDIO_SAMPLING_RATE,
    CSPROPERTY_AUDIO_DYNAMIC_SAMPLING_RATE,
    CSPROPERTY_AUDIO_MIX_LEVEL_TABLE,
    CSPROPERTY_AUDIO_MIX_LEVEL_CAPS,
    CSPROPERTY_AUDIO_MUX_SOURCE,
    CSPROPERTY_AUDIO_MUTE,
    CSPROPERTY_AUDIO_BASS,
    CSPROPERTY_AUDIO_MID,
    CSPROPERTY_AUDIO_TREBLE,
    CSPROPERTY_AUDIO_BASS_BOOST,
    CSPROPERTY_AUDIO_EQ_LEVEL,
    CSPROPERTY_AUDIO_NUM_EQ_BANDS,
    CSPROPERTY_AUDIO_EQ_BANDS,
    CSPROPERTY_AUDIO_AGC,
    CSPROPERTY_AUDIO_DELAY,
    CSPROPERTY_AUDIO_LOUDNESS,
    CSPROPERTY_AUDIO_WIDE_MODE,
    CSPROPERTY_AUDIO_WIDENESS,
    CSPROPERTY_AUDIO_REVERB_LEVEL,
    CSPROPERTY_AUDIO_CHORUS_LEVEL,
    CSPROPERTY_AUDIO_DEV_SPECIFIC,
    CSPROPERTY_AUDIO_DEMUX_DEST,
    CSPROPERTY_AUDIO_STEREO_ENHANCE,
    CSPROPERTY_AUDIO_MANUFACTURE_GUID,
    CSPROPERTY_AUDIO_PRODUCT_GUID,
    CSPROPERTY_AUDIO_CPU_RESOURCES,
    CSPROPERTY_AUDIO_STEREO_SPEAKER_GEOMETRY,
    CSPROPERTY_AUDIO_SURROUND_ENCODE,
    CSPROPERTY_AUDIO_3D_INTERFACE,
    CSPROPERTY_AUDIO_PEAKMETER,
    CSPROPERTY_AUDIO_ALGORITHM_INSTANCE,
    CSPROPERTY_AUDIO_FILTER_STATE,
    CSPROPERTY_AUDIO_PREFERRED_STATUS,
    CSPROPERTY_AUDIO_PEQ_MAX_BANDS,
    CSPROPERTY_AUDIO_PEQ_NUM_BANDS,
    CSPROPERTY_AUDIO_PEQ_BAND_CENTER_FREQ,
    CSPROPERTY_AUDIO_PEQ_BAND_Q_FACTOR,
    CSPROPERTY_AUDIO_PEQ_BAND_LEVEL,
    CSPROPERTY_AUDIO_CHORUS_MODULATION_RATE,
    CSPROPERTY_AUDIO_CHORUS_MODULATION_DEPTH,
    CSPROPERTY_AUDIO_REVERB_TIME,
    CSPROPERTY_AUDIO_REVERB_DELAY_FEEDBACK
} CSPROPERTY_AUDIO;

// Audio quality constants
#define CSAUDIO_QUALITY_WORST               0x0
#define CSAUDIO_QUALITY_PC                  0x1
#define CSAUDIO_QUALITY_BASIC               0x2
#define CSAUDIO_QUALITY_ADVANCED            0x3

// Audio CPU resource constants
#define CSAUDIO_CPU_RESOURCES_NOT_HOST_CPU  0x00000000
#define CSAUDIO_CPU_RESOURCES_HOST_CPU      0x7FFFFFFF

typedef struct {
    BOOL    fCopyrighted;
    BOOL    fOriginal;
} CSAUDIO_COPY_PROTECTION, *PCSAUDIO_COPY_PROTECTION;

typedef struct {
    LONG    ActiveSpeakerPositions;
} CSAUDIO_CHANNEL_CONFIG, *PCSAUDIO_CHANNEL_CONFIG;

// Speaker Positions:

⌨️ 快捷键说明

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