128 lines
4 KiB
C
128 lines
4 KiB
C
/*++
|
|
|
|
Copyright (c) 2001 Microsoft Corporation. All rights reserved.
|
|
|
|
Module Name:
|
|
|
|
ksmediap.h
|
|
|
|
Abstract:
|
|
|
|
Private WDM multimedia definitions used only by Microsoft components.
|
|
Moved here from ksmedia.h. Some of these are obsolescent (e.g. ITD).
|
|
|
|
--*/
|
|
|
|
#ifndef _KSMEDIAP_H
|
|
#define _KSMEDIAP_H
|
|
|
|
#define CORE_AUDIO_BUFFER_DURATION_PATH L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\AudioSrv"
|
|
#define CORE_AUDIO_BUFFER_DURATION_VALUE L"CoreAudioBufferDuration"
|
|
|
|
#define DEFAULT_CORE_AUDIO_BUFFER_DURATION 10000 // duration in usec.
|
|
#define MAX_CORE_AUDIO_BUFFER_DURATION 20000
|
|
#define MIN_CORE_AUDIO_BUFFER_DURATION 1000
|
|
|
|
//===========================================================================
|
|
// Definitions intended for hardware acceleration of the HRTF 3D algorithm
|
|
//===========================================================================
|
|
|
|
#define KSDSOUND_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
|
|
} KSDS3D_HRTF_PARAMS_MSG, *PKSDS3D_HRTF_PARAMS_MSG;
|
|
|
|
// HRTF filter quality levels
|
|
typedef enum {
|
|
FULL_FILTER,
|
|
LIGHT_FILTER,
|
|
KSDS3D_FILTER_QUALITY_COUNT
|
|
} KSDS3D_HRTF_FILTER_QUALITY;
|
|
|
|
typedef struct {
|
|
ULONG Size; // This is the size of the struct in bytes
|
|
KSDS3D_HRTF_FILTER_QUALITY Quality;
|
|
FLOAT SampleRate;
|
|
ULONG MaxFilterSize;
|
|
ULONG FilterTransientMuteLength;
|
|
ULONG FilterOverlapBufferLength;
|
|
ULONG OutputOverlapBufferLength;
|
|
ULONG Reserved;
|
|
} KSDS3D_HRTF_INIT_MSG, *PKSDS3D_HRTF_INIT_MSG;
|
|
|
|
// Coefficient formats
|
|
typedef enum {
|
|
FLOAT_COEFF,
|
|
SHORT_COEFF,
|
|
KSDS3D_COEFF_COUNT
|
|
} KSDS3D_HRTF_COEFF_FORMAT;
|
|
|
|
// Filter methods
|
|
typedef enum {
|
|
DIRECT_FORM,
|
|
CASCADE_FORM,
|
|
KSDS3D_FILTER_METHOD_COUNT
|
|
} KSDS3D_HRTF_FILTER_METHOD;
|
|
|
|
// Filter methods
|
|
typedef enum {
|
|
DS3D_HRTF_VERSION_1
|
|
} KSDS3D_HRTF_FILTER_VERSION;
|
|
|
|
typedef struct {
|
|
KSDS3D_HRTF_FILTER_METHOD FilterMethod;
|
|
KSDS3D_HRTF_COEFF_FORMAT CoeffFormat;
|
|
KSDS3D_HRTF_FILTER_VERSION Version;
|
|
ULONG Reserved;
|
|
} KSDS3D_HRTF_FILTER_FORMAT_MSG, *PKSDS3D_HRTF_FILTER_FORMAT_MSG;
|
|
|
|
#define STATIC_KSPROPSETID_Hrtf3d\
|
|
0xb66decb0L, 0xa083, 0x11d0, 0x85, 0x1e, 0x00, 0xc0, 0x4f, 0xd9, 0xba, 0xf3
|
|
DEFINE_GUIDSTRUCT("b66decb0-a083-11d0-851e-00c04fd9baf3", KSPROPSETID_Hrtf3d);
|
|
#define KSPROPSETID_Hrtf3d DEFINE_GUIDNAMED(KSPROPSETID_Hrtf3d)
|
|
|
|
typedef enum {
|
|
KSPROPERTY_HRTF3D_PARAMS = 0,
|
|
KSPROPERTY_HRTF3D_INITIALIZE,
|
|
KSPROPERTY_HRTF3D_FILTER_FORMAT
|
|
} KSPROPERTY_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;
|
|
} KSDS3D_ITD_PARAMS, *PKSDS3D_ITD_PARAMS;
|
|
|
|
typedef struct {
|
|
ULONG Enabled;
|
|
KSDS3D_ITD_PARAMS LeftParams;
|
|
KSDS3D_ITD_PARAMS RightParams;
|
|
ULONG Reserved;
|
|
} KSDS3D_ITD_PARAMS_MSG, *PKSDS3D_ITD_PARAMS_MSG;
|
|
|
|
#define STATIC_KSPROPSETID_Itd3d\
|
|
0x6429f090L, 0x9fd9, 0x11d0, 0xa7, 0x5b, 0x00, 0xa0, 0xc9, 0x03, 0x65, 0xe3
|
|
DEFINE_GUIDSTRUCT("6429f090-9fd9-11d0-a75b-00a0c90365e3", KSPROPSETID_Itd3d);
|
|
#define KSPROPSETID_Itd3d DEFINE_GUIDNAMED(KSPROPSETID_Itd3d)
|
|
|
|
typedef enum {
|
|
KSPROPERTY_ITD3D_PARAMS = 0
|
|
} KSPROPERTY_ITD3D;
|
|
|
|
#endif /* _KSMEDIAP_H */
|