/*++ 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 */