// ------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
// ------------------------------------------------------------------------------

namespace Win32.Media.Audio.XAudio2;

/// <include file='../XAudio2.xml' path='doc/member[@name="XAPO_REGISTRATION_PROPERTIES"]/*' />
/// <unmanaged>XAPO_REGISTRATION_PROPERTIES</unmanaged>
public partial struct XAPORegistrationProperties
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="XAPO_REGISTRATION_PROPERTIES::clsid"]/*' />
	public Guid clsid;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAPO_REGISTRATION_PROPERTIES::FriendlyName"]/*' />
	public unsafe fixed ushort FriendlyName[256];

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAPO_REGISTRATION_PROPERTIES::CopyrightInfo"]/*' />
	public unsafe fixed ushort CopyrightInfo[256];

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAPO_REGISTRATION_PROPERTIES::MajorVersion"]/*' />
	public uint MajorVersion;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAPO_REGISTRATION_PROPERTIES::MinorVersion"]/*' />
	public uint MinorVersion;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAPO_REGISTRATION_PROPERTIES::Flags"]/*' />
	public uint Flags;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAPO_REGISTRATION_PROPERTIES::MinInputBufferCount"]/*' />
	public uint MinInputBufferCount;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAPO_REGISTRATION_PROPERTIES::MaxInputBufferCount"]/*' />
	public uint MaxInputBufferCount;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAPO_REGISTRATION_PROPERTIES::MinOutputBufferCount"]/*' />
	public uint MinOutputBufferCount;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAPO_REGISTRATION_PROPERTIES::MaxOutputBufferCount"]/*' />
	public uint MaxOutputBufferCount;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="XAPO_LOCKFORPROCESS_PARAMETERS"]/*' />
/// <unmanaged>XAPO_LOCKFORPROCESS_PARAMETERS</unmanaged>
public partial struct XAPOLockForProcessParameters
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="XAPO_LOCKFORPROCESS_PARAMETERS::pFormat"]/*' />
	public unsafe Media.Audio.WaveFormatEx* pFormat;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAPO_LOCKFORPROCESS_PARAMETERS::MaxFrameCount"]/*' />
	public uint MaxFrameCount;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="XAPO_PROCESS_BUFFER_PARAMETERS"]/*' />
/// <unmanaged>XAPO_PROCESS_BUFFER_PARAMETERS</unmanaged>
public partial struct XAPOProcessBufferParameters
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="XAPO_PROCESS_BUFFER_PARAMETERS::pBuffer"]/*' />
	public unsafe void* pBuffer;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAPO_PROCESS_BUFFER_PARAMETERS::BufferFlags"]/*' />
	public XAPOBufferFlags BufferFlags;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAPO_PROCESS_BUFFER_PARAMETERS::ValidFrameCount"]/*' />
	public uint ValidFrameCount;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="FXEQ_PARAMETERS"]/*' />
/// <unmanaged>FXEQ_PARAMETERS</unmanaged>
public partial struct FXEQParameters
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="FXEQ_PARAMETERS::FrequencyCenter0"]/*' />
	public float FrequencyCenter0;

	/// <include file='../XAudio2.xml' path='doc/member[@name="FXEQ_PARAMETERS::Gain0"]/*' />
	public float Gain0;

	/// <include file='../XAudio2.xml' path='doc/member[@name="FXEQ_PARAMETERS::Bandwidth0"]/*' />
	public float Bandwidth0;

	/// <include file='../XAudio2.xml' path='doc/member[@name="FXEQ_PARAMETERS::FrequencyCenter1"]/*' />
	public float FrequencyCenter1;

	/// <include file='../XAudio2.xml' path='doc/member[@name="FXEQ_PARAMETERS::Gain1"]/*' />
	public float Gain1;

	/// <include file='../XAudio2.xml' path='doc/member[@name="FXEQ_PARAMETERS::Bandwidth1"]/*' />
	public float Bandwidth1;

	/// <include file='../XAudio2.xml' path='doc/member[@name="FXEQ_PARAMETERS::FrequencyCenter2"]/*' />
	public float FrequencyCenter2;

	/// <include file='../XAudio2.xml' path='doc/member[@name="FXEQ_PARAMETERS::Gain2"]/*' />
	public float Gain2;

	/// <include file='../XAudio2.xml' path='doc/member[@name="FXEQ_PARAMETERS::Bandwidth2"]/*' />
	public float Bandwidth2;

	/// <include file='../XAudio2.xml' path='doc/member[@name="FXEQ_PARAMETERS::FrequencyCenter3"]/*' />
	public float FrequencyCenter3;

	/// <include file='../XAudio2.xml' path='doc/member[@name="FXEQ_PARAMETERS::Gain3"]/*' />
	public float Gain3;

	/// <include file='../XAudio2.xml' path='doc/member[@name="FXEQ_PARAMETERS::Bandwidth3"]/*' />
	public float Bandwidth3;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="FXMASTERINGLIMITER_PARAMETERS"]/*' />
/// <unmanaged>FXMASTERINGLIMITER_PARAMETERS</unmanaged>
public partial struct FxMasteringLimiterParameters
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="FXMASTERINGLIMITER_PARAMETERS::Release"]/*' />
	public uint Release;

	/// <include file='../XAudio2.xml' path='doc/member[@name="FXMASTERINGLIMITER_PARAMETERS::Loudness"]/*' />
	public uint Loudness;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="FXREVERB_PARAMETERS"]/*' />
/// <unmanaged>FXREVERB_PARAMETERS</unmanaged>
public partial struct FxReverbParameters
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="FXREVERB_PARAMETERS::Diffusion"]/*' />
	public float Diffusion;

	/// <include file='../XAudio2.xml' path='doc/member[@name="FXREVERB_PARAMETERS::RoomSize"]/*' />
	public float RoomSize;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="FXECHO_INITDATA"]/*' />
/// <unmanaged>FXECHO_INITDATA</unmanaged>
public partial struct FxEchoInitData
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="FXECHO_INITDATA::MaxDelay"]/*' />
	public float MaxDelay;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="FXECHO_PARAMETERS"]/*' />
/// <unmanaged>FXECHO_PARAMETERS</unmanaged>
public partial struct FxEchoParameters
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="FXECHO_PARAMETERS::WetDryMix"]/*' />
	public float WetDryMix;

	/// <include file='../XAudio2.xml' path='doc/member[@name="FXECHO_PARAMETERS::Feedback"]/*' />
	public float Feedback;

	/// <include file='../XAudio2.xml' path='doc/member[@name="FXECHO_PARAMETERS::Delay"]/*' />
	public float Delay;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_VOICE_DETAILS"]/*' />
/// <unmanaged>XAUDIO2_VOICE_DETAILS</unmanaged>
public partial struct VoiceDetails
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_VOICE_DETAILS::CreationFlags"]/*' />
	public uint CreationFlags;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_VOICE_DETAILS::ActiveFlags"]/*' />
	public uint ActiveFlags;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_VOICE_DETAILS::InputChannels"]/*' />
	public uint InputChannels;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_VOICE_DETAILS::InputSampleRate"]/*' />
	public uint InputSampleRate;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_SEND_DESCRIPTOR"]/*' />
/// <unmanaged>XAUDIO2_SEND_DESCRIPTOR</unmanaged>
public partial struct SendDescriptor
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_SEND_DESCRIPTOR::Flags"]/*' />
	public uint Flags;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_SEND_DESCRIPTOR::pOutputVoice"]/*' />
	public unsafe IXAudio2Voice* pOutputVoice;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_VOICE_SENDS"]/*' />
/// <unmanaged>XAUDIO2_VOICE_SENDS</unmanaged>
public partial struct VoiceSends
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_VOICE_SENDS::SendCount"]/*' />
	public uint SendCount;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_VOICE_SENDS::pSends"]/*' />
	public unsafe SendDescriptor* pSends;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_EFFECT_DESCRIPTOR"]/*' />
/// <unmanaged>XAUDIO2_EFFECT_DESCRIPTOR</unmanaged>
public partial struct EffectDescriptor
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_EFFECT_DESCRIPTOR::pEffect"]/*' />
	public unsafe IUnknown* pEffect;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_EFFECT_DESCRIPTOR::InitialState"]/*' />
	public Bool32 InitialState;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_EFFECT_DESCRIPTOR::OutputChannels"]/*' />
	public uint OutputChannels;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_EFFECT_CHAIN"]/*' />
/// <unmanaged>XAUDIO2_EFFECT_CHAIN</unmanaged>
public partial struct EffectChain
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_EFFECT_CHAIN::EffectCount"]/*' />
	public uint EffectCount;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_EFFECT_CHAIN::pEffectDescriptors"]/*' />
	public unsafe EffectDescriptor* pEffectDescriptors;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_FILTER_PARAMETERS"]/*' />
/// <unmanaged>XAUDIO2_FILTER_PARAMETERS</unmanaged>
public partial struct FilterParameters
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_FILTER_PARAMETERS::Type"]/*' />
	public FilterType Type;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_FILTER_PARAMETERS::Frequency"]/*' />
	public float Frequency;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_FILTER_PARAMETERS::OneOverQ"]/*' />
	public float OneOverQ;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_BUFFER"]/*' />
/// <unmanaged>XAUDIO2_BUFFER</unmanaged>
public partial struct Buffer
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_BUFFER::Flags"]/*' />
	public uint Flags;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_BUFFER::AudioBytes"]/*' />
	public uint AudioBytes;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_BUFFER::pAudioData"]/*' />
	public unsafe byte* pAudioData;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_BUFFER::PlayBegin"]/*' />
	public uint PlayBegin;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_BUFFER::PlayLength"]/*' />
	public uint PlayLength;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_BUFFER::LoopBegin"]/*' />
	public uint LoopBegin;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_BUFFER::LoopLength"]/*' />
	public uint LoopLength;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_BUFFER::LoopCount"]/*' />
	public uint LoopCount;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_BUFFER::pContext"]/*' />
	public unsafe void* pContext;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_BUFFER_WMA"]/*' />
/// <unmanaged>XAUDIO2_BUFFER_WMA</unmanaged>
public partial struct BufferWma
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_BUFFER_WMA::pDecodedPacketCumulativeBytes"]/*' />
	public unsafe uint* pDecodedPacketCumulativeBytes;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_BUFFER_WMA::PacketCount"]/*' />
	public uint PacketCount;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_VOICE_STATE"]/*' />
/// <unmanaged>XAUDIO2_VOICE_STATE</unmanaged>
public partial struct VoiceState
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_VOICE_STATE::pCurrentBufferContext"]/*' />
	public unsafe void* pCurrentBufferContext;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_VOICE_STATE::BuffersQueued"]/*' />
	public uint BuffersQueued;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_VOICE_STATE::SamplesPlayed"]/*' />
	public ulong SamplesPlayed;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_PERFORMANCE_DATA"]/*' />
/// <unmanaged>XAUDIO2_PERFORMANCE_DATA</unmanaged>
public partial struct PerformanceData
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_PERFORMANCE_DATA::AudioCyclesSinceLastQuery"]/*' />
	public ulong AudioCyclesSinceLastQuery;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_PERFORMANCE_DATA::TotalCyclesSinceLastQuery"]/*' />
	public ulong TotalCyclesSinceLastQuery;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_PERFORMANCE_DATA::MinimumCyclesPerQuantum"]/*' />
	public uint MinimumCyclesPerQuantum;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_PERFORMANCE_DATA::MaximumCyclesPerQuantum"]/*' />
	public uint MaximumCyclesPerQuantum;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_PERFORMANCE_DATA::MemoryUsageInBytes"]/*' />
	public uint MemoryUsageInBytes;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_PERFORMANCE_DATA::CurrentLatencyInSamples"]/*' />
	public uint CurrentLatencyInSamples;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_PERFORMANCE_DATA::GlitchesSinceEngineStarted"]/*' />
	public uint GlitchesSinceEngineStarted;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_PERFORMANCE_DATA::ActiveSourceVoiceCount"]/*' />
	public uint ActiveSourceVoiceCount;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_PERFORMANCE_DATA::TotalSourceVoiceCount"]/*' />
	public uint TotalSourceVoiceCount;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_PERFORMANCE_DATA::ActiveSubmixVoiceCount"]/*' />
	public uint ActiveSubmixVoiceCount;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_PERFORMANCE_DATA::ActiveResamplerCount"]/*' />
	public uint ActiveResamplerCount;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_PERFORMANCE_DATA::ActiveMatrixMixCount"]/*' />
	public uint ActiveMatrixMixCount;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_PERFORMANCE_DATA::ActiveXmaSourceVoices"]/*' />
	public uint ActiveXmaSourceVoices;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_PERFORMANCE_DATA::ActiveXmaStreams"]/*' />
	public uint ActiveXmaStreams;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_DEBUG_CONFIGURATION"]/*' />
/// <unmanaged>XAUDIO2_DEBUG_CONFIGURATION</unmanaged>
public partial struct DebugConfiguration
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_DEBUG_CONFIGURATION::TraceMask"]/*' />
	public uint TraceMask;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_DEBUG_CONFIGURATION::BreakMask"]/*' />
	public uint BreakMask;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_DEBUG_CONFIGURATION::LogThreadID"]/*' />
	public Bool32 LogThreadID;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_DEBUG_CONFIGURATION::LogFileline"]/*' />
	public Bool32 LogFileline;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_DEBUG_CONFIGURATION::LogFunctionName"]/*' />
	public Bool32 LogFunctionName;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2_DEBUG_CONFIGURATION::LogTiming"]/*' />
	public Bool32 LogTiming;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_VOLUMEMETER_LEVELS"]/*' />
/// <unmanaged>XAUDIO2FX_VOLUMEMETER_LEVELS</unmanaged>
public partial struct FXVolumeMeterLevels
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_VOLUMEMETER_LEVELS::pPeakLevels"]/*' />
	public unsafe float* pPeakLevels;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_VOLUMEMETER_LEVELS::pRMSLevels"]/*' />
	public unsafe float* pRMSLevels;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_VOLUMEMETER_LEVELS::ChannelCount"]/*' />
	public uint ChannelCount;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS"]/*' />
/// <unmanaged>XAUDIO2FX_REVERB_PARAMETERS</unmanaged>
public partial struct FXReverbParameters
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::WetDryMix"]/*' />
	public float WetDryMix;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::ReflectionsDelay"]/*' />
	public uint ReflectionsDelay;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::ReverbDelay"]/*' />
	public byte ReverbDelay;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::RearDelay"]/*' />
	public byte RearDelay;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::SideDelay"]/*' />
	public byte SideDelay;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::PositionLeft"]/*' />
	public byte PositionLeft;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::PositionRight"]/*' />
	public byte PositionRight;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::PositionMatrixLeft"]/*' />
	public byte PositionMatrixLeft;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::PositionMatrixRight"]/*' />
	public byte PositionMatrixRight;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::EarlyDiffusion"]/*' />
	public byte EarlyDiffusion;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::LateDiffusion"]/*' />
	public byte LateDiffusion;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::LowEQGain"]/*' />
	public byte LowEQGain;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::LowEQCutoff"]/*' />
	public byte LowEQCutoff;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::HighEQGain"]/*' />
	public byte HighEQGain;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::HighEQCutoff"]/*' />
	public byte HighEQCutoff;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::RoomFilterFreq"]/*' />
	public float RoomFilterFreq;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::RoomFilterMain"]/*' />
	public float RoomFilterMain;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::RoomFilterHF"]/*' />
	public float RoomFilterHF;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::ReflectionsGain"]/*' />
	public float ReflectionsGain;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::ReverbGain"]/*' />
	public float ReverbGain;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::DecayTime"]/*' />
	public float DecayTime;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::Density"]/*' />
	public float Density;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::RoomSize"]/*' />
	public float RoomSize;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_PARAMETERS::DisableLateField"]/*' />
	public Bool32 DisableLateField;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_I3DL2_PARAMETERS"]/*' />
/// <unmanaged>XAUDIO2FX_REVERB_I3DL2_PARAMETERS</unmanaged>
public partial struct FXReverbI3DL2Parameters
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_I3DL2_PARAMETERS::WetDryMix"]/*' />
	public float WetDryMix;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_I3DL2_PARAMETERS::Room"]/*' />
	public int Room;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_I3DL2_PARAMETERS::RoomHF"]/*' />
	public int RoomHF;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_I3DL2_PARAMETERS::RoomRolloffFactor"]/*' />
	public float RoomRolloffFactor;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_I3DL2_PARAMETERS::DecayTime"]/*' />
	public float DecayTime;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_I3DL2_PARAMETERS::DecayHFRatio"]/*' />
	public float DecayHFRatio;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_I3DL2_PARAMETERS::Reflections"]/*' />
	public int Reflections;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_I3DL2_PARAMETERS::ReflectionsDelay"]/*' />
	public float ReflectionsDelay;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_I3DL2_PARAMETERS::Reverb"]/*' />
	public int Reverb;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_I3DL2_PARAMETERS::ReverbDelay"]/*' />
	public float ReverbDelay;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_I3DL2_PARAMETERS::Diffusion"]/*' />
	public float Diffusion;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_I3DL2_PARAMETERS::Density"]/*' />
	public float Density;

	/// <include file='../XAudio2.xml' path='doc/member[@name="XAUDIO2FX_REVERB_I3DL2_PARAMETERS::HFReference"]/*' />
	public float HFReference;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfPosition"]/*' />
/// <unmanaged>HrtfPosition</unmanaged>
public partial struct HrtfPosition
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfPosition::x"]/*' />
	public float x;

	/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfPosition::y"]/*' />
	public float y;

	/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfPosition::z"]/*' />
	public float z;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfOrientation"]/*' />
/// <unmanaged>HrtfOrientation</unmanaged>
public partial struct HrtfOrientation
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfOrientation::element"]/*' />
	public unsafe fixed float element[9];
}

/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfDirectivity"]/*' />
/// <unmanaged>HrtfDirectivity</unmanaged>
public partial struct HrtfDirectivity
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfDirectivity::type"]/*' />
	public HrtfDirectivityType type;

	/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfDirectivity::scaling"]/*' />
	public float scaling;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfDirectivityCardioid"]/*' />
/// <unmanaged>HrtfDirectivityCardioid</unmanaged>
public partial struct HrtfDirectivityCardioid
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfDirectivityCardioid::directivity"]/*' />
	public HrtfDirectivity directivity;

	/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfDirectivityCardioid::order"]/*' />
	public float order;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfDirectivityCone"]/*' />
/// <unmanaged>HrtfDirectivityCone</unmanaged>
public partial struct HrtfDirectivityCone
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfDirectivityCone::directivity"]/*' />
	public HrtfDirectivity directivity;

	/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfDirectivityCone::innerAngle"]/*' />
	public float innerAngle;

	/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfDirectivityCone::outerAngle"]/*' />
	public float outerAngle;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfDistanceDecay"]/*' />
/// <unmanaged>HrtfDistanceDecay</unmanaged>
public partial struct HrtfDistanceDecay
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfDistanceDecay::type"]/*' />
	public HrtfDistanceDecayType type;

	/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfDistanceDecay::maxGain"]/*' />
	public float maxGain;

	/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfDistanceDecay::minGain"]/*' />
	public float minGain;

	/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfDistanceDecay::unityGainDistance"]/*' />
	public float unityGainDistance;

	/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfDistanceDecay::cutoffDistance"]/*' />
	public float cutoffDistance;
}

/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfApoInit"]/*' />
/// <unmanaged>HrtfApoInit</unmanaged>
public partial struct HrtfApoInit
{
	/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfApoInit::distanceDecay"]/*' />
	public unsafe HrtfDistanceDecay* distanceDecay;

	/// <include file='../XAudio2.xml' path='doc/member[@name="HrtfApoInit::directivity"]/*' />
	public unsafe HrtfDirectivity* directivity;
}
