v0.8 EFX largely done, public Filter/Auxiliary methods missing.

This commit is contained in:
chrisbrandtner 2008-01-18 13:32:51 +00:00
parent 76ef90be35
commit cdde344dbd
9 changed files with 1151 additions and 1135 deletions

View file

@ -66,7 +66,7 @@ typedef void ALvoid;
namespace OpenTK.OpenAL
{
// Al = Audio Library
// AL = Audio Library
public static class AL
{
#region Constants
@ -392,7 +392,7 @@ namespace OpenTK.OpenAL
#region Create Source objects
[CLSCompliant(false),DllImport(AL.Lib,EntryPoint = "alGenSources",ExactSpelling = true,CallingConvention = AL.Style),SuppressUnmanagedCodeSecurity( )]
unsafe public static extern void GenSources(int n, [Out] uint* sources);
unsafe private static extern void GenSourcesPrivate( int n,[Out] uint* sources );
// AL_API void AL_APIENTRY alGenSources( ALsizei n, ALuint* Sources );
/// <summary>This function generates one or more sources. References to sources are ALuint values, which are used wherever a source reference is needed (in calls such as alDeleteSources and alSourcei).</summary>
@ -405,7 +405,7 @@ namespace OpenTK.OpenAL
{
fixed ( uint* ptr = &sources )
{
GenSources(n, (uint*)ptr);
GenSourcesPrivate(n,(uint*) ptr);
sources = *ptr;
}
}
@ -505,8 +505,17 @@ namespace OpenTK.OpenAL
Source(sid,(Enums.ALSourcei) param,( value ) ? 1 : 0);
}
// AL_API void AL_APIENTRY alSourcefv( ALuint sid, ALenum param, const ALfloat* values );
// <summary>This function sets 3 integer properties of a source. This property is used to establish connections between Sources and Auxiliary Effect Slots.</summary>
/// <param name="sid">Source name whose attribute is being set.</param>
/// <param name="param">The name of the attribute to set: EfxAuxiliarySendFilter</param>
/// <param name="value1">The value to set the attribute to. (EFX Extension) The destination Auxiliary Effect Slot ID</param>
/// <param name="value2">The value to set the attribute to. (EFX Extension) The Auxiliary Send number.</param>
///<param name="value3">The value to set the attribute to. (EFX Extension) optional Filter ID.</param>
[CLSCompliant(false),DllImport(AL.Lib,EntryPoint = "alSource3i",ExactSpelling = true,CallingConvention = AL.Style),SuppressUnmanagedCodeSecurity( )]
public static extern void Source( uint sid,Enums.ALSource3i param,int value1,int value2,int value3 );
// AL_API void AL_APIENTRY alSource3i( ALuint sid, ALenum param, ALint value1, ALint value2, ALint value3 );
// AL_API void AL_APIENTRY alSourcefv( ALuint sid, ALenum param, const ALfloat* values );
// AL_API void AL_APIENTRY alSourceiv( ALuint sid, ALenum param, const ALint* values );
#endregion Set Source parameters
@ -564,8 +573,9 @@ namespace OpenTK.OpenAL
value = false;
}
// AL_API void AL_APIENTRY alGetSourcefv( ALuint sid, ALenum param, ALfloat* values );
// AL_API void AL_APIENTRY alGetSource3i( ALuint sid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
// AL_API void AL_APIENTRY alGetSourcefv( ALuint sid, ALenum param, ALfloat* values );
// AL_API void AL_APIENTRY alGetSourceiv( ALuint sid, ALenum param, ALint* values );
#endregion Get Source parameters

View file

@ -22,6 +22,9 @@ namespace OpenTK.OpenAL.Enums
{
///<summary>Indicate the gain (volume amplification) applied. Type: float. Range: [0.0f - ? ] A value of 1.0 means un-attenuated/unchanged. Each division by 2 equals an attenuation of -6dB. Each multiplicaton with 2 equals an amplification of +6dB. A value of 0.0f is meaningless with respect to a logarithmic scale; it is interpreted as zero volume - the channel is effectively disabled.</summary>
Gain = 0x100A,
///<summary>(EFX Extension) This setting is critical if Air Absorption effects are enabled because the amount of Air Absorption applied is directly related to the real-world distance between the Source and the Listener. centimeters 0.01f meters 1.0f kilometers 1000.0f Range [float.MinValue .. float.MaxValue] Default: 1.0f</summary>
EfxMetersPerUnit = 0x20004,
}
public enum ALListener3f : int
@ -73,6 +76,16 @@ namespace OpenTK.OpenAL.Enums
/// <summary>The playback position, expressed in seconds.</summary>
SecOffset = 0x1024, // AL_EXT_OFFSET extension.
///<summary>(EFX Extension) This property is a multiplier on the amount of Air Absorption applied to the Source. The AL_AIR_ABSORPTION_FACTOR is multiplied by an internal Air Absorption Gain HF value of 0.994 (-0.05dB) per meter which represents normal atmospheric humidity and temperature. Range [0.0f .. 10.0f] Default: 0.0f</summary>
EfxAirAbsorptionFactor = 0x20007,
///<summary>(EFX Extension) This property is defined the same way as the Reverb Room Rolloff property: it is one of two methods available in the Effect Extension to attenuate the reflected sound (early reflections and reverberation) according to source-listener distance. Range [0.0f .. 10.0f] Default: 0.0f</summary>
EfxRoomRolloffFactor = 0x20008,
///<summary>(EFX Extension) A directed Source points in a specified direction. The Source sounds at full volume when the listener is directly in front of the source; it is attenuated as the listener circles the Source away from the front. Range [0.0f .. 1.0f] Default: 1.0f</summary>
EfxConeOuterGainHighFrequency = 0x20009,
}
public enum ALSource3f : int
@ -94,6 +107,15 @@ namespace OpenTK.OpenAL.Enums
///<summary>Indicate whether Source is looping. Type: Al.Bool Range: [True, False] Default: False.</summary>
Looping = 0x1007,
///<summary>(EFX Extension)If this Source property is set to AL_TRUE (its default value), this Sources direct-path is automatically filtered according to the orientation of the source relative to the listener and the setting of the Source property AL_CONE_OUTER_GAINHF. Range [AL_FALSE .. AL_TRUE] Default: AL_TRUE</summary>
EfxDirectFilterGainHighFrequencyAuto = 0x2000A,
///<summary>(EFX Extension)If this Source property is set to AL_TRUE (its default value), the intensity of this Sources reflected sound is automatically attenuated according to source-listener distance and source directivity (as determined by the cone parameters). If it is AL_FALSE, the reflected sound is not attenuated according to distance and directivity. Range [AL_FALSE .. AL_TRUE] Default: AL_TRUE</summary>
EfxAuxiliarySendFilterGainAuto = 0x2000B,
///<summary>(EFX Extension)If this Source property is AL_TRUE (its default value), the intensity of this Sources reflected sound at high frequencies will be automatically attenuated according to the high-frequency source directivity as set by the AL_CONE_OUTER_GAINHF property. If this property is AL_FALSE, the Sources reflected sound is not filtered at all according to the Sources directivity. Range [AL_FALSE .. AL_TRUE] Default: AL_TRUE</summary>
EfxAuxiliarySendFilterGainHighFrequencyAuto = 0x2000C,
}
public enum ALSourcei : int
@ -109,6 +131,15 @@ namespace OpenTK.OpenAL.Enums
///<summary>Source type (Static, Streaming or undetermined). Use enum AlSourceType for comparison</summary>
SourceType = 0x1027,
///<summary>(EFX Extension)This Source property is used to apply filtering on the direct-path (dry signal) of a Source.</summary>
EfxDirectFilter = 0x20005,
}
public enum ALSource3i : int
{
///<summary>(EFX Extension) This Source property is used to establish connections between Sources and Auxiliary Effect Slots. For a Source to feed an Effect that has been loaded into an Auxiliary Effect Slot the application must configure one of the Sources auxiliary sends. This process involves setting 3 variables the destination Auxiliary Effect Slot ID, the Auxiliary Send number, and an optional Filter ID.</summary>
EfxAuxiliarySendFilter = 0x20006,
}
public enum ALSourceiGet : int
@ -159,8 +190,10 @@ namespace OpenTK.OpenAL.Enums
{
///<summary>Source is Static if a Buffer has been attached using AL_Buffer</summary>
Static = 0x1028,
///<summary>Source is Streaming if one or more Buffers have been attached using alSourceQueueBuffers</summary>
Streaming = 0x1029,
///<summary>Source is undetermined when it has the NULL Buffer attached</summary>
Undetermined = 0x1030,
}
@ -185,10 +218,13 @@ namespace OpenTK.OpenAL.Enums
{
///<summary>Sound sample's frequency, in units of Hertz [Hz]. This is the number of samples per second. Half of the sample frequency marks the maximum significant frequency component.</summary>
Frequency = 0x2001,
/// <summary>Bit depth of buffer. Should be 8 or 16.</summary>
Bits = 0x2002,
/// <summary>Number of channels in buffer. > 1 is valid, but buffer wont be positioned when played. 1 for Mono, 2 for Stereo.</summary>
Channels = 0x2003,
/// <summary>size of buffer in bytes</summary>
Size = 0x2004,
@ -200,8 +236,10 @@ namespace OpenTK.OpenAL.Enums
{
///<summary>Buffer state. Not supported for public use (yet).</summary>
Unused = 0x2010,
///<summary>Buffer state. Not supported for public use (yet).</summary>
Pending = 0x2011,
///<summary>Buffer state. Not supported for public use (yet).</summary>
Processed = 0x2012,
}
@ -271,16 +309,21 @@ namespace OpenTK.OpenAL.Enums
///<summary>InverseDistance is equivalent to the IASIG I3DL2 model with the exception that AL_REFERENCE_DISTANCE does not imply any clamping.</summary>
InverseDistance = 0xD001,
///<summary>InverseDistanceClamped is the IASIG I3DL2 model, with AL_REFERENCE_DISTANCE indicating both the reference distance and the distance below which gain will be clamped.</summary>
InverseDistanceClamped = 0xD002,
///<summary></summary>
LinearDistance = 0xD003, // AL_EXT_LINEAR_DISTANCE extension.
///<summary></summary>
LinearDistanceClamped = 0xD004, // AL_EXT_LINEAR_DISTANCE extension.
///<summary></summary>
ExponentDistance = 0xD005, // AL_EXT_EXPONENT_DISTANCE extension.
///<summary></summary>
ExponentDistanceClamped = 0xD006, // AL_EXT_EXPONENT_DISTANCE extension.
///<summary>AL_EXT_LINEAR_DISTANCE extension.</summary>
LinearDistance = 0xD003,
///<summary>AL_EXT_LINEAR_DISTANCE extension.</summary>
LinearDistanceClamped = 0xD004,
///<summary>AL_EXT_EXPONENT_DISTANCE extension.</summary>
ExponentDistance = 0xD005,
///<summary>AL_EXT_EXPONENT_DISTANCE extension.</summary>
ExponentDistanceClamped = 0xD006,
}
}

View file

@ -317,4 +317,5 @@ namespace OpenTK.OpenAL
#endregion Capture functions
}
}

View file

@ -28,6 +28,9 @@ namespace OpenTK.OpenAL.Enums
///<summary>Followed by System.Int32 Num of requested Stereo Sources</summary>
StereoSources = 0x1011,
/// <summary>(EFX Extension) This Context property can be passed to OpenAL during Context creation (alcCreateContext) to request a maximum number of Auxiliary Sends desired on each Source. It is not guaranteed that the desired number of sends will be available, so an application should query this property after creating the context using alcGetIntergerv. Default: 2</summary>
EfxMaxAuxiliarySends = 0x20003,
}
public enum AlcError : int
@ -105,5 +108,14 @@ namespace OpenTK.OpenAL.Enums
///<summary>The number of capture samples available. NULL is an invalid device.</summary>
CaptureSamples = 0x312,
/// <summary>(EFX Extension) This property can be used by the application to retrieve the Major version number of the Effects Extension supported by this OpenAL implementation. As this is a Context property is should be retrieved using alcGetIntegerv.</summary>
EfxMajorVersion = 0x20001,
/// <summary>(EFX Extension) This property can be used by the application to retrieve the Minor version number of the Effects Extension supported by this OpenAL implementation. As this is a Context property is should be retrieved using alcGetIntegerv.</summary>
EfxMinorVersion = 0x20002,
/// <summary>(EFX Extension) This Context property can be passed to OpenAL during Context creation (alcCreateContext) to request a maximum number of Auxiliary Sends desired on each Source. It is not guaranteed that the desired number of sends will be available, so an application should query this property after creating the context using alcGetIntergerv. Default: 2</summary>
EfxMaxAuxiliarySends = 0x20003,
}
}

View file

@ -12,45 +12,179 @@ using System.Runtime.InteropServices;
namespace OpenTK.OpenAL
{
public partial class Efx
public partial class EfxExtension
{
#region Effect object delegates
#region Effect Object
#region alGenEffects
// typedef void (__cdecl *LPALGENEFFECTS)( ALsizei n, ALuint* effects );
[CLSCompliant(false)]
unsafe private delegate void Delegate_alGenEffects( int n,[Out] uint* effects );
[CLSCompliant(false)]
private Delegate_alGenEffects Imported_alGenEffects;
[CLSCompliant(false)]
public void GenEffects( int n,out uint sources )
{
unsafe
{
fixed ( uint* ptr = &sources )
{
Imported_alGenEffects(n,ptr);
sources = *ptr;
}
}
}
[CLSCompliant(false)]
/// <summary>This function generates only one Effect.</summary>
/// <param name="sources">Storage UInt32 for the new effect name/handle.</param>
public void GenEffects( out uint source )
{
unsafe
{
fixed ( uint* ptr = &source )
{
Imported_alGenEffects(1,ptr);
}
}
}
#endregion alGenEffects
#region alDeleteEffects
// typedef void (__cdecl *LPALDELETEEFFECTS)( ALsizei n, ALuint* effects );
[CLSCompliant(false)]
unsafe private delegate void Delegate_alDeleteEffects( int n,[In] uint* effects );
[CLSCompliant(false)]
private Delegate_alDeleteEffects Imported_alDeleteEffects;
[CLSCompliant(false)]
public void DeleteEffects( int n,ref uint[] sources )
{
unsafe
{
fixed ( uint* ptr = sources )
{
Imported_alDeleteEffects(n,ptr);
}
}
}
/// <summary>This function deletes one Effect only.</summary>
/// <param name="sources">Pointer to an effect name/handle identifying the Effect Object to be deleted.</param>
[CLSCompliant(false)]
public void DeleteEffects( ref uint source )
{
unsafe
{
fixed ( uint* ptr = &source )
{
Imported_alDeleteEffects(1,ptr);
}
}
}
#endregion alDeleteEffects
#region alIsEffect
// typedef ALboolean (__cdecl *LPALISEFFECT)( ALuint eid );
[CLSCompliant(false)]
private delegate bool Delegate_alIsEffect(uint eid);
public delegate bool Delegate_alIsEffect( uint eid );
[CLSCompliant(false)]
public Delegate_alIsEffect IsEffect;
#endregion alIsEffect
#region alEffecti
// typedef void (__cdecl *LPALEFFECTI)( ALuint eid, ALenum param, ALint value);
[CLSCompliant(false)]
private delegate void Delegate_alEffecti(uint eid, Enums.EfxEffecti param, int value);
public delegate void Delegate_alEffecti( uint eid,Enums.EfxEffecti param,int value );
[CLSCompliant(false)]
public Delegate_alEffecti Effecti;
public void BindEffect( uint eid,Enums.EfxEffectType type )
{
Effecti(eid,Enums.EfxEffecti.EffectType,(int) type);
}
#endregion alEffecti
#region alEffectf
// typedef void (__cdecl *LPALEFFECTF)( ALuint eid, ALenum param, ALfloat value);
[CLSCompliant(false)]
private delegate void Delegate_alEffectf(uint eid, Enums.EfxEffectf param, float value);
public delegate void Delegate_alEffectf( uint eid,Enums.EfxEffectf param,float value );
[CLSCompliant(false)]
public Delegate_alEffectf Effectf;
#endregion alEffectf
#region alGetEffecti
// typedef void (__cdecl *LPALGETEFFECTI)( ALuint eid, ALenum pname, ALint* value );
[CLSCompliant(false)]
unsafe private delegate void Delegate_alGetEffecti( uint eid,Enums.EfxEffecti pname,[Out] int* value );
[CLSCompliant(false)]
private Delegate_alGetEffecti Imported_alGetEffecti;
[CLSCompliant(false)]
public void GetEffect( uint eid,Enums.EfxEffecti pname,out int value )
{
unsafe
{
fixed ( int* ptr = &value )
{
Imported_alGetEffecti(eid,pname,ptr);
}
}
}
#endregion alGetEffecti
#region alGetEffectf
// typedef void (__cdecl *LPALGETEFFECTF)( ALuint eid, ALenum pname, ALfloat* value );
[CLSCompliant(false)]
unsafe private delegate void Delegate_alGetEffectf( uint eid,Enums.EfxEffectf pname,[Out]float* value );
[CLSCompliant(false)]
private Delegate_alGetEffectf Imported_alGetEffectf;
[CLSCompliant(false)]
public void GetEffect( uint eid,Enums.EfxEffectf pname,out float value )
{
unsafe
{
fixed ( float* ptr = &value )
{
Imported_alGetEffectf(eid,pname,ptr);
}
}
}
#endregion alGetEffectf
// Not used:
// typedef void (__cdecl *LPALEFFECTIV)( ALuint eid, ALenum param, ALint* values );
// typedef void (__cdecl *LPALEFFECTFV)( ALuint eid, ALenum param, ALfloat* values );
// typedef void (__cdecl *LPALGETEFFECTIV)( ALuint eid, ALenum pname, ALint* values );
// typedef void (__cdecl *LPALGETEFFECTFV)( ALuint eid, ALenum pname, ALfloat* values );
#endregion Effect object delegates
#endregion Effect Object
#region Filter Object
#region Filter object delegates
@ -64,15 +198,15 @@ namespace OpenTK.OpenAL
// typedef ALboolean (__cdecl *LPALISFILTER)( ALuint fid );
[CLSCompliant(false)]
private delegate bool Delegate_alIsFilter(uint fid);
public delegate bool Delegate_alIsFilter( uint fid );
// typedef void (__cdecl *LPALFILTERI)( ALuint fid, ALenum param, ALint value );
[CLSCompliant(false)]
private delegate void Delegate_alFilteri(uint fid, Enums.EfxFilteri param, int value);
public delegate void Delegate_alFilteri( uint fid,Enums.EfxFilteri param,int value );
// typedef void (__cdecl *LPALFILTERF)( ALuint fid, ALenum param, ALfloat value);
[CLSCompliant(false)]
private delegate void Delegate_alFilterf(uint fid, Enums.EfxFilterf param, float value);
public delegate void Delegate_alFilterf( uint fid,Enums.EfxFilterf param,float value );
// typedef void (__cdecl *LPALGETFILTERI)( ALuint fid, ALenum pname, ALint* value );
[CLSCompliant(false)]
@ -90,6 +224,28 @@ namespace OpenTK.OpenAL
#endregion Filter object delegates
#region Filter object functions
[CLSCompliant(false)]
private Delegate_alGenFilters Imported_alGenFilters;
[CLSCompliant(false)]
private Delegate_alDeleteFilters Imported_alDeleteFilters;
[CLSCompliant(false)]
public Delegate_alIsFilter IsFilter;
[CLSCompliant(false)]
public Delegate_alFilteri Filteri;
[CLSCompliant(false)]
public Delegate_alFilterf Filterf;
[CLSCompliant(false)]
private Delegate_alGetFilteri Imported_alGetFilteri;
[CLSCompliant(false)]
private Delegate_alGetFilterf Imported_alGetFilterf;
#endregion Filter object functions
#endregion Filter Object
#region Auxiliary Slot object delegates
// typedef void (__cdecl *LPALGENAUXILIARYEFFECTSLOTS)( ALsizei n, ALuint* slots );
@ -102,15 +258,15 @@ namespace OpenTK.OpenAL
// typedef ALboolean (__cdecl *LPALISAUXILIARYEFFECTSLOT)( ALuint slot );
[CLSCompliant(false)]
private delegate bool Delegate_alIsAuxiliaryEffectSlot(uint slot);
public delegate bool Delegate_alIsAuxiliaryEffectSlot( uint slot );
// typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTI)( ALuint asid, ALenum param, ALint value );
[CLSCompliant(false)]
private delegate void Delegate_alAuxiliaryEffectSloti(uint asid, Enums.EfxAuxiliaryi param, int value);
public delegate void Delegate_alAuxiliaryEffectSloti( uint asid,Enums.EfxAuxiliaryi param,int value );
// typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTF)( ALuint asid, ALenum param, ALfloat value );
[CLSCompliant(false)]
private delegate void Delegate_alAuxiliaryEffectSlotf(uint asid, Enums.EfxAuxiliaryf param, float value);
public delegate void Delegate_alAuxiliaryEffectSlotf( uint asid,Enums.EfxAuxiliaryf param,float value );
// typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTI)( ALuint asid, ALenum pname, ALint* value );
[CLSCompliant(false)]
@ -128,44 +284,6 @@ namespace OpenTK.OpenAL
#endregion Auxiliary Slot object delegates
#region Effect object functions
[CLSCompliant(false)]
private Delegate_alGenEffects Imported_alGenEffects;
[CLSCompliant(false)]
private Delegate_alDeleteEffects Imported_alDeleteEffects;
[CLSCompliant(false)]
private Delegate_alIsEffect Imported_alIsEffect;
[CLSCompliant(false)]
private Delegate_alEffecti Imported_alEffecti;
[CLSCompliant(false)]
private Delegate_alEffectf Imported_alEffectf;
[CLSCompliant(false)]
private Delegate_alGetEffecti Imported_alGetEffecti;
[CLSCompliant(false)]
private Delegate_alGetEffectf Imported_alGetEffectf;
#endregion Effect object functions
#region Filter object functions
[CLSCompliant(false)]
private Delegate_alGenFilters Imported_alGenFilters;
[CLSCompliant(false)]
private Delegate_alDeleteFilters Imported_alDeleteFilters;
[CLSCompliant(false)]
private Delegate_alIsFilter Imported_alIsFilter;
[CLSCompliant(false)]
private Delegate_alFilteri Imported_alFilteri;
[CLSCompliant(false)]
private Delegate_alFilterf Imported_alFilterf;
[CLSCompliant(false)]
private Delegate_alGetFilteri Imported_alGetFilteri;
[CLSCompliant(false)]
private Delegate_alGetFilterf Imported_alGetFilterf;
#endregion Filter object functions
#region Auxiliary Effect Slot functions
[CLSCompliant(false)]
@ -173,11 +291,11 @@ namespace OpenTK.OpenAL
[CLSCompliant(false)]
private Delegate_alDeleteAuxiliaryEffectSlots Imported_alDeleteAuxiliaryEffectSlots;
[CLSCompliant(false)]
private Delegate_alIsAuxiliaryEffectSlot Imported_alIsAuxiliaryEffectSlot;
public Delegate_alIsAuxiliaryEffectSlot IsAuxiliaryEffectSlot;
[CLSCompliant(false)]
private Delegate_alAuxiliaryEffectSloti Imported_alAuxiliaryEffectSloti;
public Delegate_alAuxiliaryEffectSloti AuxiliaryEffectSloti;
[CLSCompliant(false)]
private Delegate_alAuxiliaryEffectSlotf Imported_alAuxiliaryEffectSlotf;
public Delegate_alAuxiliaryEffectSlotf AuxiliaryEffectSlotf;
[CLSCompliant(false)]
private Delegate_alGetAuxiliaryEffectSloti Imported_alGetAuxiliaryEffectSloti;
[CLSCompliant(false)]
@ -185,7 +303,6 @@ namespace OpenTK.OpenAL
#endregion Auxiliary Effect Slot functions
#region Constructor / Extension Loading
private bool _valid;
@ -194,7 +311,7 @@ namespace OpenTK.OpenAL
public bool IsInitialized
{ get { return _valid; } }
public Efx()
public EfxExtension( )
{
_valid = false;
@ -209,13 +326,12 @@ namespace OpenTK.OpenAL
{
Imported_alGenEffects = (Delegate_alGenEffects) Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alGenEffects"),typeof(Delegate_alGenEffects));
Imported_alDeleteEffects = (Delegate_alDeleteEffects) Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alDeleteEffects"),typeof(Delegate_alDeleteEffects));
Imported_alIsEffect = (Delegate_alIsEffect)Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alIsEffect"), typeof(Delegate_alIsEffect));
Imported_alEffecti = (Delegate_alEffecti)Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alEffecti"), typeof(Delegate_alEffecti));
Imported_alEffectf = (Delegate_alEffectf)Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alEffectf"), typeof(Delegate_alEffectf));
IsEffect = (Delegate_alIsEffect) Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alIsEffect"),typeof(Delegate_alIsEffect));
Effecti = (Delegate_alEffecti) Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alEffecti"),typeof(Delegate_alEffecti));
Effectf = (Delegate_alEffectf) Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alEffectf"),typeof(Delegate_alEffectf));
Imported_alGetEffecti = (Delegate_alGetEffecti) Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alGetEffecti"),typeof(Delegate_alGetEffecti));
Imported_alGetEffectf = (Delegate_alGetEffectf) Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alGetEffectf"),typeof(Delegate_alGetEffectf));
}
catch (Exception e)
} catch ( Exception e )
{
Console.WriteLine("Failed to marshal Effect functions. " + e.ToString( ));
return;
@ -226,13 +342,12 @@ namespace OpenTK.OpenAL
{
Imported_alGenFilters = (Delegate_alGenFilters) Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alGenFilters"),typeof(Delegate_alGenFilters));
Imported_alDeleteFilters = (Delegate_alDeleteFilters) Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alDeleteFilters"),typeof(Delegate_alDeleteFilters));
Imported_alIsFilter = (Delegate_alIsFilter)Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alIsFilter"), typeof(Delegate_alIsFilter));
Imported_alFilteri = (Delegate_alFilteri)Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alFilteri"), typeof(Delegate_alFilteri));
Imported_alFilterf = (Delegate_alFilterf)Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alFilterf"), typeof(Delegate_alFilterf));
IsFilter = (Delegate_alIsFilter) Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alIsFilter"),typeof(Delegate_alIsFilter));
Filteri = (Delegate_alFilteri) Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alFilteri"),typeof(Delegate_alFilteri));
Filterf = (Delegate_alFilterf) Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alFilterf"),typeof(Delegate_alFilterf));
Imported_alGetFilteri = (Delegate_alGetFilteri) Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alGetFilteri"),typeof(Delegate_alGetFilteri));
Imported_alGetFilterf = (Delegate_alGetFilterf) Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alGetFilterf"),typeof(Delegate_alGetFilterf));
}
catch (Exception e)
} catch ( Exception e )
{
Console.WriteLine("Failed to marshal Filter functions. " + e.ToString( ));
return;
@ -243,13 +358,12 @@ namespace OpenTK.OpenAL
{
Imported_alGenAuxiliaryEffectSlots = (Delegate_alGenAuxiliaryEffectSlots) Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alGenAuxiliaryEffectSlots"),typeof(Delegate_alGenAuxiliaryEffectSlots));
Imported_alDeleteAuxiliaryEffectSlots = (Delegate_alDeleteAuxiliaryEffectSlots) Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alDeleteAuxiliaryEffectSlots"),typeof(Delegate_alDeleteAuxiliaryEffectSlots));
Imported_alIsAuxiliaryEffectSlot = (Delegate_alIsAuxiliaryEffectSlot)Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alIsAuxiliaryEffectSlot"), typeof(Delegate_alIsAuxiliaryEffectSlot));
Imported_alAuxiliaryEffectSloti = (Delegate_alAuxiliaryEffectSloti)Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alAuxiliaryEffectSloti"), typeof(Delegate_alAuxiliaryEffectSloti));
Imported_alAuxiliaryEffectSlotf = (Delegate_alAuxiliaryEffectSlotf)Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alAuxiliaryEffectSlotf"), typeof(Delegate_alAuxiliaryEffectSlotf));
IsAuxiliaryEffectSlot = (Delegate_alIsAuxiliaryEffectSlot) Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alIsAuxiliaryEffectSlot"),typeof(Delegate_alIsAuxiliaryEffectSlot));
AuxiliaryEffectSloti = (Delegate_alAuxiliaryEffectSloti) Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alAuxiliaryEffectSloti"),typeof(Delegate_alAuxiliaryEffectSloti));
AuxiliaryEffectSlotf = (Delegate_alAuxiliaryEffectSlotf) Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alAuxiliaryEffectSlotf"),typeof(Delegate_alAuxiliaryEffectSlotf));
Imported_alGetAuxiliaryEffectSloti = (Delegate_alGetAuxiliaryEffectSloti) Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alGetAuxiliaryEffectSloti"),typeof(Delegate_alGetAuxiliaryEffectSloti));
Imported_alGetAuxiliaryEffectSlotf = (Delegate_alGetAuxiliaryEffectSlotf) Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("alGetAuxiliaryEffectSlotf"),typeof(Delegate_alGetAuxiliaryEffectSlotf));
}
catch (Exception e)
} catch ( Exception e )
{
Console.WriteLine("Failed to marshal AuxiliaryEffectSlot functions. " + e.ToString( ));
return;
@ -262,4 +376,5 @@ namespace OpenTK.OpenAL
#endregion Constructor / Extension Loading
}
}

View file

@ -13,402 +13,314 @@ using OpenTK.Math;
namespace OpenTK.OpenAL
{
public partial class Efx
{
public struct _EAXREVERBPROPERTIES
{
uint ulEnvironment;
float flEnvironmentSize;
float flEnvironmentDiffusion;
int lRoom;
int lRoomHF;
int lRoomLF;
float flDecayTime;
float flDecayHFRatio;
float flDecayLFRatio;
int lReflections;
float flReflectionsDelay;
Vector3 vReflectionsPan;
int lReverb;
float flReverbDelay;
Vector3 vReverbPan;
float flEchoTime;
float flEchoDepth;
float flModulationTime;
float flModulationDepth;
float flAirAbsorptionHF;
float flHFReference;
float flLFReference;
float flRoomRolloffFactor;
uint ulFlags;
}
_EAXREVERBPROPERTIES EAXREVERBPROPERTIES; //, *LPEAXREVERBPROPERTIES;
public partial class EfxExtension
{
public struct EaxReverb
{
public uint ulEnvironment;
public float flEnvironmentSize;
public float flEnvironmentDiffusion;
public int lRoom;
public int lRoomHF;
public int lRoomLF;
public float flDecayTime;
public float flDecayHFRatio;
public float flDecayLFRatio;
public int lReflections;
public float flReflectionsDelay;
public Vector3 vReflectionsPan;
public int lReverb;
public float flReverbDelay;
public Vector3 vReverbPan;
public float flEchoTime;
public float flEchoDepth;
public float flModulationTime;
public float flModulationDepth;
public float flAirAbsorptionHF;
public float flHFReference;
public float flLFReference;
public float flRoomRolloffFactor;
public uint ulFlags;
public EaxReverb( uint Environment,
float EnvironmentSize,
float EnvironmentDiffusion,
int Room,
int RoomHF,
int RoomLF,
float DecayTime,
float DecayHFRatio,
float DecayLFRatio,
int Reflections,
float ReflectionsDelay,
float ReflectionsPanX,
float ReflectionsPanY,
float ReflectionsPanZ,
int Reverb,
float ReverbDelay,
float ReverbPanX,
float ReverbPanY,
float ReverbPanZ,
float EchoTime,
float EchoDepth,
float ModulationTime,
float ModulationDepth,
float AirAbsorptionHF,
float HFReference,
float LFReference,
float RoomRolloffFactor,
uint Flags )
{
ulEnvironment = Environment;
flEnvironmentSize = EnvironmentSize;
flEnvironmentDiffusion = EnvironmentDiffusion;
lRoom = Room;
lRoomHF = RoomHF;
lRoomLF = RoomLF;
flDecayTime = DecayTime;
flDecayHFRatio = DecayHFRatio;
flDecayLFRatio = DecayLFRatio;
lReflections = Reflections;
flReflectionsDelay = ReflectionsDelay;
vReflectionsPan = new Vector3(ReflectionsPanX,ReflectionsPanY,ReflectionsPanZ);
lReverb = Reverb;
flReverbDelay = ReverbDelay;
vReverbPan = new Vector3(ReverbPanX,ReverbPanY,ReverbPanZ);
flEchoTime = EchoTime;
flEchoDepth = EchoDepth;
flModulationTime = ModulationTime;
flModulationDepth = ModulationDepth;
flAirAbsorptionHF = AirAbsorptionHF;
flHFReference = HFReference;
flLFReference = LFReference;
flRoomRolloffFactor = RoomRolloffFactor;
ulFlags = Flags;
}
}
/*
public struct _EFXEAXREVERBPROPERTIES
{
float flDensity;
float flDiffusion;
float flGain;
float flGainHF;
float flGainLF;
float flDecayTime;
float flDecayHFRatio;
float flDecayLFRatio;
float flReflectionsGain;
float flReflectionsDelay;
Vector3 flReflectionsPan;
float flLateReverbGain;
float flLateReverbDelay;
Vector3 flLateReverbPan;
float flEchoTime;
float flEchoDepth;
float flModulationTime;
float flModulationDepth;
float flAirAbsorptionGainHF;
float flHFReference;
float flLFReference;
float flRoomRolloffFactor;
int iDecayHFLimit;
public float flDensity;
public float flDiffusion;
public float flGain;
public float flGainHF;
public float flGainLF;
public float flDecayTime;
public float flDecayHFRatio;
public float flDecayLFRatio;
public float flReflectionsGain;
public float flReflectionsDelay;
public Vector3 flReflectionsPan;
public float flLateReverbGain;
public float flLateReverbDelay;
public Vector3 flLateReverbPan;
public float flEchoTime;
public float flEchoDepth;
public float flModulationTime;
public float flModulationDepth;
public float flAirAbsorptionGainHF;
public float flHFReference;
public float flLFReference;
public float flRoomRolloffFactor;
public int iDecayHFLimit;
}
_EFXEAXREVERBPROPERTIES EFXEAXREVERBPROPERTIES;//, *LPEFXEAXREVERBPROPERTIES;
public struct _EAXOBSTRUCTIONPROPERTIES
{
int lObstruction;
float flObstructionLFRatio;
public int lObstruction;
public float flObstructionLFRatio;
}
_EAXOBSTRUCTIONPROPERTIES EAXOBSTRUCTIONPROPERTIES;//, *LPEAXOBSTRUCTIONPROPERTIES;
public struct _EAXOCCLUSIONPROPERTIES
{
int lOcclusion;
float flOcclusionLFRatio;
float flOcclusionRoomRatio;
float flOcclusionDirectRatio;
public int lOcclusion;
public float flOcclusionLFRatio;
public float flOcclusionRoomRatio;
public float flOcclusionDirectRatio;
}
_EAXOCCLUSIONPROPERTIES EAXOCCLUSIONPROPERTIES;//, *LPEAXOCCLUSIONPROPERTIES;
public struct _EAXEXCLUSIONPROPERTIES
{
int lExclusion;
float flExclusionLFRatio;
public int lExclusion;
public float flExclusionLFRatio;
}
_EAXEXCLUSIONPROPERTIES EAXEXCLUSIONPROPERTIES;//, *LPEAXEXCLUSIONPROPERTIES;
public struct _EFXLOWPASSFILTER
{
float flGain;
float flGainHF;
public float flGain;
public float flGainHF;
}
_EFXLOWPASSFILTER EFXLOWPASSFILTER;//, *LPEFXLOWPASSFILTER;
/*
void ConvertReverbParameters(EAXREVERBPROPERTIES *pEAXProp, EFXEAXREVERBPROPERTIES *pEFXEAXReverb);
void ConvertObstructionParameters(EAXOBSTRUCTIONPROPERTIES *pObProp, EFXLOWPASSFILTER *pDirectLowPassFilter);
void ConvertExclusionParameters(EAXEXCLUSIONPROPERTIES *pExProp, EFXLOWPASSFILTER *pSendLowPassFilter);
void ConvertOcclusionParameters(EAXOCCLUSIONPROPERTIES *pOcProp, EFXLOWPASSFILTER *pDirectLowPassFilter, EFXLOWPASSFILTER *pSendLowPassFilter);
*/
/***********************************************************************************************\
*
* EAX Reverb Presets in legacy format - use ConvertReverbParameters() to convert to
* EFX EAX Reverb Presets for use with the OpenAL Effects Extension.
*
************************************************************************************************/
/*
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
#define REVERB_PRESET_GENERIC \
{0, 7.5f, 1.000f, -1000, -100, 0, 1.49f, 0.83f, 1.00f, -2602, 0.007f, 0.00f,0.00f,0.00f, 200, 0.011f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
#define REVERB_PRESET_PADDEDCELL \
{1, 1.4f, 1.000f, -1000, -6000, 0, 0.17f, 0.10f, 1.00f, -1204, 0.001f, 0.00f,0.00f,0.00f, 207, 0.002f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
#define REVERB_PRESET_ROOM \
{2, 1.9f, 1.000f, -1000, -454, 0, 0.40f, 0.83f, 1.00f, -1646, 0.002f, 0.00f,0.00f,0.00f, 53, 0.003f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
#define REVERB_PRESET_BATHROOM \
{3, 1.4f, 1.000f, -1000, -1200, 0, 1.49f, 0.54f, 1.00f, -370, 0.007f, 0.00f,0.00f,0.00f, 1030, 0.011f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
#define REVERB_PRESET_LIVINGROOM \
{4, 2.5f, 1.000f, -1000, -6000, 0, 0.50f, 0.10f, 1.00f, -1376, 0.003f, 0.00f,0.00f,0.00f, -1104, 0.004f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
#define REVERB_PRESET_STONEROOM \
{5, 11.6f, 1.000f, -1000, -300, 0, 2.31f, 0.64f, 1.00f, -711, 0.012f, 0.00f,0.00f,0.00f, 83, 0.017f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
#define REVERB_PRESET_AUDITORIUM \
{6, 21.6f, 1.000f, -1000, -476, 0, 4.32f, 0.59f, 1.00f, -789, 0.020f, 0.00f,0.00f,0.00f, -289, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
#define REVERB_PRESET_CONCERTHALL \
{7, 19.6f, 1.000f, -1000, -500, 0, 3.92f, 0.70f, 1.00f, -1230, 0.020f, 0.00f,0.00f,0.00f, -02, 0.029f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
#define REVERB_PRESET_CAVE \
{8, 14.6f, 1.000f, -1000, 0, 0, 2.91f, 1.30f, 1.00f, -602, 0.015f, 0.00f,0.00f,0.00f, -302, 0.022f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
#define REVERB_PRESET_ARENA \
{9, 36.2f, 1.000f, -1000, -698, 0, 7.24f, 0.33f, 1.00f, -1166, 0.020f, 0.00f,0.00f,0.00f, 16, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
#define REVERB_PRESET_HANGAR \
{10, 50.3f, 1.000f, -1000, -1000, 0, 10.05f, 0.23f, 1.00f, -602, 0.020f, 0.00f,0.00f,0.00f, 198, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
#define REVERB_PRESET_CARPETTEDHALLWAY \
{11, 1.9f, 1.000f, -1000, -4000, 0, 0.30f, 0.10f, 1.00f, -1831, 0.002f, 0.00f,0.00f,0.00f, -1630, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
#define REVERB_PRESET_HALLWAY \
{12, 1.8f, 1.000f, -1000, -300, 0, 1.49f, 0.59f, 1.00f, -1219, 0.007f, 0.00f,0.00f,0.00f, 441, 0.011f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
#define REVERB_PRESET_STONECORRIDOR \
{13, 13.5f, 1.000f, -1000, -237, 0, 2.70f, 0.79f, 1.00f, -1214, 0.013f, 0.00f,0.00f,0.00f, 395, 0.020f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
#define REVERB_PRESET_ALLEY \
{14, 7.5f, 0.300f, -1000, -270, 0, 1.49f, 0.86f, 1.00f, -1204, 0.007f, 0.00f,0.00f,0.00f, -4, 0.011f, 0.00f,0.00f,0.00f, 0.125f, 0.950f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
#define REVERB_PRESET_FOREST \
{15, 38.0f, 0.300f, -1000, -3300, 0, 1.49f, 0.54f, 1.00f, -2560, 0.162f, 0.00f,0.00f,0.00f, -229, 0.088f, 0.00f,0.00f,0.00f, 0.125f, 1.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
#define REVERB_PRESET_CITY \
{16, 7.5f, 0.500f, -1000, -800, 0, 1.49f, 0.67f, 1.00f, -2273, 0.007f, 0.00f,0.00f,0.00f, -1691, 0.011f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
#define REVERB_PRESET_MOUNTAINS \
{17, 100.0f, 0.270f, -1000, -2500, 0, 1.49f, 0.21f, 1.00f, -2780, 0.300f, 0.00f,0.00f,0.00f, -1434, 0.100f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
#define REVERB_PRESET_QUARRY \
{18, 17.5f, 1.000f, -1000, -1000, 0, 1.49f, 0.83f, 1.00f, -10000, 0.061f, 0.00f,0.00f,0.00f, 500, 0.025f, 0.00f,0.00f,0.00f, 0.125f, 0.700f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
#define REVERB_PRESET_PLAIN \
{19, 42.5f, 0.210f, -1000, -2000, 0, 1.49f, 0.50f, 1.00f, -2466, 0.179f, 0.00f,0.00f,0.00f, -1926, 0.100f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
#define REVERB_PRESET_PARKINGLOT \
{20, 8.3f, 1.000f, -1000, 0, 0, 1.65f, 1.50f, 1.00f, -1363, 0.008f, 0.00f,0.00f,0.00f, -1153, 0.012f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
#define REVERB_PRESET_SEWERPIPE \
{21, 1.7f, 0.800f, -1000, -1000, 0, 2.81f, 0.14f, 1.00f, 429, 0.014f, 0.00f,0.00f,0.00f, 1023, 0.021f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
#define REVERB_PRESET_UNDERWATER \
{22, 1.8f, 1.000f, -1000, -4000, 0, 1.49f, 0.10f, 1.00f, -449, 0.007f, 0.00f,0.00f,0.00f, 1700, 0.011f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 1.180f, 0.348f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
#define REVERB_PRESET_DRUGGED \
{23, 1.9f, 0.500f, -1000, 0, 0, 8.39f, 1.39f, 1.00f, -115, 0.002f, 0.00f,0.00f,0.00f, 985, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 1.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
#define REVERB_PRESET_DIZZY \
{24, 1.8f, 0.600f, -1000, -400, 0, 17.23f, 0.56f, 1.00f, -1713, 0.020f, 0.00f,0.00f,0.00f, -613, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.810f, 0.310f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
#define REVERB_PRESET_PSYCHOTIC \
{25, 1.0f, 0.500f, -1000, -151, 0, 7.56f, 0.91f, 1.00f, -626, 0.020f, 0.00f,0.00f,0.00f, 774, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 4.000f, 1.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
///<summary>EAX Reverb Presets in legacy format - use ConvertReverbParameters() to convert to EFX EAX Reverb Presets for use with the OpenAL Effects Extension.</summary>
public static class ReverbPresets
{
// CASTLE PRESETS
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
#define REVERB_PRESET_CASTLE_SMALLROOM \
{ 26, 8.3f, 0.890f, -1000, -800, -2000, 1.22f, 0.83f, 0.31f, -100, 0.022f, 0.00f,0.00f,0.00f, 600, 0.011f, 0.00f,0.00f,0.00f, 0.138f, 0.080f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
#define REVERB_PRESET_CASTLE_SHORTPASSAGE \
{ 26, 8.3f, 0.890f, -1000, -1000, -2000, 2.32f, 0.83f, 0.31f, -100, 0.007f, 0.00f,0.00f,0.00f, 200, 0.023f, 0.00f,0.00f,0.00f, 0.138f, 0.080f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
#define REVERB_PRESET_CASTLE_MEDIUMROOM \
{ 26, 8.3f, 0.930f, -1000, -1100, -2000, 2.04f, 0.83f, 0.46f, -400, 0.022f, 0.00f,0.00f,0.00f, 400, 0.011f, 0.00f,0.00f,0.00f, 0.155f, 0.030f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
#define REVERB_PRESET_CASTLE_LONGPASSAGE \
{ 26, 8.3f, 0.890f, -1000, -800, -2000, 3.42f, 0.83f, 0.31f, -100, 0.007f, 0.00f,0.00f,0.00f, 300, 0.023f, 0.00f,0.00f,0.00f, 0.138f, 0.080f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
#define REVERB_PRESET_CASTLE_LARGEROOM \
{ 26, 8.3f, 0.820f, -1000, -1100, -1800, 2.53f, 0.83f, 0.50f, -700, 0.034f, 0.00f,0.00f,0.00f, 200, 0.016f, 0.00f,0.00f,0.00f, 0.185f, 0.070f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
#define REVERB_PRESET_CASTLE_HALL \
{ 26, 8.3f, 0.810f, -1000, -1100, -1500, 3.14f, 0.79f, 0.62f, -1500, 0.056f, 0.00f,0.00f,0.00f, 100, 0.024f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
#define REVERB_PRESET_CASTLE_CUPBOARD \
{ 26, 8.3f, 0.890f, -1000, -1100, -2000, 0.67f, 0.87f, 0.31f, 300, 0.010f, 0.00f,0.00f,0.00f, 1100, 0.007f, 0.00f,0.00f,0.00f, 0.138f, 0.080f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
#define REVERB_PRESET_CASTLE_COURTYARD \
{ 26, 8.3f, 0.420f, -1000, -700, -1400, 2.13f, 0.61f, 0.23f, -1300, 0.160f, 0.00f,0.00f,0.00f, -300, 0.036f, 0.00f,0.00f,0.00f, 0.250f, 0.370f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
#define REVERB_PRESET_CASTLE_ALCOVE \
{ 26, 8.3f, 0.890f, -1000, -600, -2000, 1.64f, 0.87f, 0.31f, 00, 0.007f, 0.00f,0.00f,0.00f, 300, 0.034f, 0.00f,0.00f,0.00f, 0.138f, 0.080f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
public static EaxReverb CastleSmallRoom = new EaxReverb(26,8.3f,0.890f,-1000,-800,-2000,1.22f,0.83f,0.31f,-100,0.022f,0f,0f,0f,600,0.011f,0f,0f,0f,0.138f,0.080f,0.250f,0f,-5f,5168.6f,139.5f,0f,0x20);
public static EaxReverb CastleShortPassage = new EaxReverb(26,8.3f,0.890f,-1000,-1000,-2000,2.32f,0.83f,0.31f,-100,0.007f,0f,0f,0f,200,0.023f,0f,0f,0f,0.138f,0.080f,0.250f,0f,-5f,5168.6f,139.5f,0f,0x20);
public static EaxReverb CastleMediumroom = new EaxReverb(26,8.3f,0.930f,-1000,-1100,-2000,2.04f,0.83f,0.46f,-400,0.022f,0f,0f,0f,400,0.011f,0f,0f,0f,0.155f,0.030f,0.250f,0f,-5f,5168.6f,139.5f,0f,0x20);
public static EaxReverb CastleLongpassage = new EaxReverb(26,8.3f,0.890f,-1000,-800,-2000,3.42f,0.83f,0.31f,-100,0.007f,0f,0f,0f,300,0.023f,0f,0f,0f,0.138f,0.080f,0.250f,0f,-5f,5168.6f,139.5f,0f,0x20);
public static EaxReverb CastleLargeroom = new EaxReverb(26,8.3f,0.820f,-1000,-1100,-1800,2.53f,0.83f,0.50f,-700,0.034f,0f,0f,0f,200,0.016f,0f,0f,0f,0.185f,0.070f,0.250f,0f,-5f,5168.6f,139.5f,0f,0x20);
public static EaxReverb CastleHall = new EaxReverb(26,8.3f,0.810f,-1000,-1100,-1500,3.14f,0.79f,0.62f,-1500,0.056f,0f,0f,0f,100,0.024f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,5168.6f,139.5f,0f,0x20);
public static EaxReverb CastleCupboard = new EaxReverb(26,8.3f,0.890f,-1000,-1100,-2000,0.67f,0.87f,0.31f,300,0.010f,0f,0f,0f,1100,0.007f,0f,0f,0f,0.138f,0.080f,0.250f,0f,-5f,5168.6f,139.5f,0f,0x20);
public static EaxReverb CastleCourtyard = new EaxReverb(26,8.3f,0.420f,-1000,-700,-1400,2.13f,0.61f,0.23f,-1300,0.160f,0f,0f,0f,-300,0.036f,0f,0f,0f,0.250f,0.370f,0.250f,0f,-5f,5000f,250f,0f,0x1f);
public static EaxReverb CastleAlcove = new EaxReverb(26,8.3f,0.890f,-1000,-600,-2000,1.64f,0.87f,0.31f,00,0.007f,0f,0f,0f,300,0.034f,0f,0f,0f,0.138f,0.080f,0.250f,0f,-5f,5168.6f,139.5f,0f,0x20);
// FACTORY PRESETS
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
#define REVERB_PRESET_FACTORY_ALCOVE \
{ 26, 1.8f, 0.590f, -1200, -200, -600, 3.14f, 0.65f, 1.31f, 300, 0.010f, 0.00f,0.00f,0.00f, 000, 0.038f, 0.00f,0.00f,0.00f, 0.114f, 0.100f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
#define REVERB_PRESET_FACTORY_SHORTPASSAGE \
{ 26, 1.8f, 0.640f, -1200, -200, -600, 2.53f, 0.65f, 1.31f, 0, 0.010f, 0.00f,0.00f,0.00f, 200, 0.038f, 0.00f,0.00f,0.00f, 0.135f, 0.230f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
#define REVERB_PRESET_FACTORY_MEDIUMROOM \
{ 26, 1.9f, 0.820f, -1200, -200, -600, 2.76f, 0.65f, 1.31f, -1100, 0.022f, 0.00f,0.00f,0.00f, 300, 0.023f, 0.00f,0.00f,0.00f, 0.174f, 0.070f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
#define REVERB_PRESET_FACTORY_LONGPASSAGE \
{ 26, 1.8f, 0.640f, -1200, -200, -600, 4.06f, 0.65f, 1.31f, 0, 0.020f, 0.00f,0.00f,0.00f, 200, 0.037f, 0.00f,0.00f,0.00f, 0.135f, 0.230f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
#define REVERB_PRESET_FACTORY_LARGEROOM \
{ 26, 1.9f, 0.750f, -1200, -300, -400, 4.24f, 0.51f, 1.31f, -1500, 0.039f, 0.00f,0.00f,0.00f, 100, 0.023f, 0.00f,0.00f,0.00f, 0.231f, 0.070f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
#define REVERB_PRESET_FACTORY_HALL \
{ 26, 1.9f, 0.750f, -1000, -300, -400, 7.43f, 0.51f, 1.31f, -2400, 0.073f, 0.00f,0.00f,0.00f, -100, 0.027f, 0.00f,0.00f,0.00f, 0.250f, 0.070f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
#define REVERB_PRESET_FACTORY_CUPBOARD \
{ 26, 1.7f, 0.630f, -1200, -200, -600, 0.49f, 0.65f, 1.31f, 200, 0.010f, 0.00f,0.00f,0.00f, 600, 0.032f, 0.00f,0.00f,0.00f, 0.107f, 0.070f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
#define REVERB_PRESET_FACTORY_COURTYARD \
{ 26, 1.7f, 0.570f, -1000, -1000, -400, 2.32f, 0.29f, 0.56f, -1300, 0.140f, 0.00f,0.00f,0.00f, -800, 0.039f, 0.00f,0.00f,0.00f, 0.250f, 0.290f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
#define REVERB_PRESET_FACTORY_SMALLROOM \
{ 26, 1.8f, 0.820f, -1000, -200, -600, 1.72f, 0.65f, 1.31f, -300, 0.010f, 0.00f,0.00f,0.00f, 500, 0.024f, 0.00f,0.00f,0.00f, 0.119f, 0.070f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
public static EaxReverb FactoryAlcove = new EaxReverb(26,1.8f,0.590f,-1200,-200,-600,3.14f,0.65f,1.31f,300,0.010f,0f,0f,0f,000,0.038f,0f,0f,0f,0.114f,0.100f,0.250f,0f,-5f,3762.6f,362.5f,0f,0x20);
public static EaxReverb FactoryShortpassage = new EaxReverb(26,1.8f,0.640f,-1200,-200,-600,2.53f,0.65f,1.31f,0,0.010f,0f,0f,0f,200,0.038f,0f,0f,0f,0.135f,0.230f,0.250f,0f,-5f,3762.6f,362.5f,0f,0x20);
public static EaxReverb FactoryMediumroom = new EaxReverb(26,1.9f,0.820f,-1200,-200,-600,2.76f,0.65f,1.31f,-1100,0.022f,0f,0f,0f,300,0.023f,0f,0f,0f,0.174f,0.070f,0.250f,0f,-5f,3762.6f,362.5f,0f,0x20);
public static EaxReverb FactoryLongpassage = new EaxReverb(26,1.8f,0.640f,-1200,-200,-600,4.06f,0.65f,1.31f,0,0.020f,0f,0f,0f,200,0.037f,0f,0f,0f,0.135f,0.230f,0.250f,0f,-5f,3762.6f,362.5f,0f,0x20);
public static EaxReverb FactoryLargeroom = new EaxReverb(26,1.9f,0.750f,-1200,-300,-400,4.24f,0.51f,1.31f,-1500,0.039f,0f,0f,0f,100,0.023f,0f,0f,0f,0.231f,0.070f,0.250f,0f,-5f,3762.6f,362.5f,0f,0x20);
public static EaxReverb FactoryHall = new EaxReverb(26,1.9f,0.750f,-1000,-300,-400,7.43f,0.51f,1.31f,-2400,0.073f,0f,0f,0f,-100,0.027f,0f,0f,0f,0.250f,0.070f,0.250f,0f,-5f,3762.6f,362.5f,0f,0x20);
public static EaxReverb FactoryCupboard = new EaxReverb(26,1.7f,0.630f,-1200,-200,-600,0.49f,0.65f,1.31f,200,0.010f,0f,0f,0f,600,0.032f,0f,0f,0f,0.107f,0.070f,0.250f,0f,-5f,3762.6f,362.5f,0f,0x20);
public static EaxReverb FactoryCourtyard = new EaxReverb(26,1.7f,0.570f,-1000,-1000,-400,2.32f,0.29f,0.56f,-1300,0.140f,0f,0f,0f,-800,0.039f,0f,0f,0f,0.250f,0.290f,0.250f,0f,-5f,3762.6f,362.5f,0f,0x20);
public static EaxReverb FactorySmallroom = new EaxReverb(26,1.8f,0.820f,-1000,-200,-600,1.72f,0.65f,1.31f,-300,0.010f,0f,0f,0f,500,0.024f,0f,0f,0f,0.119f,0.070f,0.250f,0f,-5f,3762.6f,362.5f,0f,0x20);
// ICE PALACE PRESETS
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
#define REVERB_PRESET_ICEPALACE_ALCOVE \
{ 26, 2.7f, 0.840f, -1000, -500, -1100, 2.76f, 1.46f, 0.28f, 100, 0.010f, 0.00f,0.00f,0.00f, -100, 0.030f, 0.00f,0.00f,0.00f, 0.161f, 0.090f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
#define REVERB_PRESET_ICEPALACE_SHORTPASSAGE \
{ 26, 2.7f, 0.750f, -1000, -500, -1100, 1.79f, 1.46f, 0.28f, -600, 0.010f, 0.00f,0.00f,0.00f, 100, 0.019f, 0.00f,0.00f,0.00f, 0.177f, 0.090f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
#define REVERB_PRESET_ICEPALACE_MEDIUMROOM \
{ 26, 2.7f, 0.870f, -1000, -500, -700, 2.22f, 1.53f, 0.32f, -800, 0.039f, 0.00f,0.00f,0.00f, 100, 0.027f, 0.00f,0.00f,0.00f, 0.186f, 0.120f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
#define REVERB_PRESET_ICEPALACE_LONGPASSAGE \
{ 26, 2.7f, 0.770f, -1000, -500, -800, 3.01f, 1.46f, 0.28f, -200, 0.012f, 0.00f,0.00f,0.00f, 200, 0.025f, 0.00f,0.00f,0.00f, 0.186f, 0.040f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
#define REVERB_PRESET_ICEPALACE_LARGEROOM \
{ 26, 2.9f, 0.810f, -1000, -500, -700, 3.14f, 1.53f, 0.32f, -1200, 0.039f, 0.00f,0.00f,0.00f, 000, 0.027f, 0.00f,0.00f,0.00f, 0.214f, 0.110f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
#define REVERB_PRESET_ICEPALACE_HALL \
{ 26, 2.9f, 0.760f, -1000, -700, -500, 5.49f, 1.53f, 0.38f, -1900, 0.054f, 0.00f,0.00f,0.00f, -400, 0.052f, 0.00f,0.00f,0.00f, 0.226f, 0.110f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
#define REVERB_PRESET_ICEPALACE_CUPBOARD \
{ 26, 2.7f, 0.830f, -1000, -600, -1300, 0.76f, 1.53f, 0.26f, 100, 0.012f, 0.00f,0.00f,0.00f, 600, 0.016f, 0.00f,0.00f,0.00f, 0.143f, 0.080f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
#define REVERB_PRESET_ICEPALACE_COURTYARD \
{ 26, 2.9f, 0.590f, -1000, -1100, -1000, 2.04f, 1.20f, 0.38f, -1000, 0.173f, 0.00f,0.00f,0.00f, -1000, 0.043f, 0.00f,0.00f,0.00f, 0.235f, 0.480f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
#define REVERB_PRESET_ICEPALACE_SMALLROOM \
{ 26, 2.7f, 0.840f, -1000, -500, -1100, 1.51f, 1.53f, 0.27f, -100, 0.010f, 0.00f,0.00f,0.00f, 300, 0.011f, 0.00f,0.00f,0.00f, 0.164f, 0.140f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
public static EaxReverb IcepalaceAlcove = new EaxReverb(26,2.7f,0.840f,-1000,-500,-1100,2.76f,1.46f,0.28f,100,0.010f,0f,0f,0f,-100,0.030f,0f,0f,0f,0.161f,0.090f,0.250f,0f,-5f,12428.5f,99.6f,0f,0x20);
public static EaxReverb IcepalaceShortpassage = new EaxReverb(26,2.7f,0.750f,-1000,-500,-1100,1.79f,1.46f,0.28f,-600,0.010f,0f,0f,0f,100,0.019f,0f,0f,0f,0.177f,0.090f,0.250f,0f,-5f,12428.5f,99.6f,0f,0x20);
public static EaxReverb IcepalaceMediumroom = new EaxReverb(26,2.7f,0.870f,-1000,-500,-700,2.22f,1.53f,0.32f,-800,0.039f,0f,0f,0f,100,0.027f,0f,0f,0f,0.186f,0.120f,0.250f,0f,-5f,12428.5f,99.6f,0f,0x20);
public static EaxReverb IcepalaceLongpassage = new EaxReverb(26,2.7f,0.770f,-1000,-500,-800,3.01f,1.46f,0.28f,-200,0.012f,0f,0f,0f,200,0.025f,0f,0f,0f,0.186f,0.040f,0.250f,0f,-5f,12428.5f,99.6f,0f,0x20);
public static EaxReverb IcepalaceLargeroom = new EaxReverb(26,2.9f,0.810f,-1000,-500,-700,3.14f,1.53f,0.32f,-1200,0.039f,0f,0f,0f,000,0.027f,0f,0f,0f,0.214f,0.110f,0.250f,0f,-5f,12428.5f,99.6f,0f,0x20);
public static EaxReverb IcepalaceHall = new EaxReverb(26,2.9f,0.760f,-1000,-700,-500,5.49f,1.53f,0.38f,-1900,0.054f,0f,0f,0f,-400,0.052f,0f,0f,0f,0.226f,0.110f,0.250f,0f,-5f,12428.5f,99.6f,0f,0x20);
public static EaxReverb IcepalaceCupboard = new EaxReverb(26,2.7f,0.830f,-1000,-600,-1300,0.76f,1.53f,0.26f,100,0.012f,0f,0f,0f,600,0.016f,0f,0f,0f,0.143f,0.080f,0.250f,0f,-5f,12428.5f,99.6f,0f,0x20);
public static EaxReverb IcepalaceCourtyard = new EaxReverb(26,2.9f,0.590f,-1000,-1100,-1000,2.04f,1.20f,0.38f,-1000,0.173f,0f,0f,0f,-1000,0.043f,0f,0f,0f,0.235f,0.480f,0.250f,0f,-5f,12428.5f,99.6f,0f,0x20);
public static EaxReverb IcepalaceSmallroom = new EaxReverb(26,2.7f,0.840f,-1000,-500,-1100,1.51f,1.53f,0.27f,-100,0.010f,0f,0f,0f,300,0.011f,0f,0f,0f,0.164f,0.140f,0.250f,0f,-5f,12428.5f,99.6f,0f,0x20);
// SPACE STATION PRESETS
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
#define REVERB_PRESET_SPACESTATION_ALCOVE \
{ 26, 1.5f, 0.780f, -1000, -300, -100, 1.16f, 0.81f, 0.55f, 300, 0.007f, 0.00f,0.00f,0.00f, 000, 0.018f, 0.00f,0.00f,0.00f, 0.192f, 0.210f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
#define REVERB_PRESET_SPACESTATION_MEDIUMROOM \
{ 26, 1.5f, 0.750f, -1000, -400, -100, 3.01f, 0.50f, 0.55f, -800, 0.034f, 0.00f,0.00f,0.00f, 100, 0.035f, 0.00f,0.00f,0.00f, 0.209f, 0.310f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
#define REVERB_PRESET_SPACESTATION_SHORTPASSAGE \
{ 26, 1.5f, 0.870f, -1000, -400, -100, 3.57f, 0.50f, 0.55f, 0, 0.012f, 0.00f,0.00f,0.00f, 100, 0.016f, 0.00f,0.00f,0.00f, 0.172f, 0.200f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
#define REVERB_PRESET_SPACESTATION_LONGPASSAGE \
{ 26, 1.9f, 0.820f, -1000, -400, -100, 4.62f, 0.62f, 0.55f, 0, 0.012f, 0.00f,0.00f,0.00f, 200, 0.031f, 0.00f,0.00f,0.00f, 0.250f, 0.230f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
#define REVERB_PRESET_SPACESTATION_LARGEROOM \
{ 26, 1.8f, 0.810f, -1000, -400, -100, 3.89f, 0.38f, 0.61f, -1000, 0.056f, 0.00f,0.00f,0.00f, -100, 0.035f, 0.00f,0.00f,0.00f, 0.233f, 0.280f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
#define REVERB_PRESET_SPACESTATION_HALL \
{ 26, 1.9f, 0.870f, -1000, -400, -100, 7.11f, 0.38f, 0.61f, -1500, 0.100f, 0.00f,0.00f,0.00f, -400, 0.047f, 0.00f,0.00f,0.00f, 0.250f, 0.250f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
#define REVERB_PRESET_SPACESTATION_CUPBOARD \
{ 26, 1.4f, 0.560f, -1000, -300, -100, 0.79f, 0.81f, 0.55f, 300, 0.007f, 0.00f,0.00f,0.00f, 500, 0.018f, 0.00f,0.00f,0.00f, 0.181f, 0.310f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
#define REVERB_PRESET_SPACESTATION_SMALLROOM \
{ 26, 1.5f, 0.700f, -1000, -300, -100, 1.72f, 0.82f, 0.55f, -200, 0.007f, 0.00f,0.00f,0.00f, 300, 0.013f, 0.00f,0.00f,0.00f, 0.188f, 0.260f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
public static EaxReverb SpacestationAlcove = new EaxReverb(26,1.5f,0.780f,-1000,-300,-100,1.16f,0.81f,0.55f,300,0.007f,0f,0f,0f,000,0.018f,0f,0f,0f,0.192f,0.210f,0.250f,0f,-5f,3316.1f,458.2f,0f,0x20);
public static EaxReverb SpacestationMediumroom = new EaxReverb(26,1.5f,0.750f,-1000,-400,-100,3.01f,0.50f,0.55f,-800,0.034f,0f,0f,0f,100,0.035f,0f,0f,0f,0.209f,0.310f,0.250f,0f,-5f,3316.1f,458.2f,0f,0x20);
public static EaxReverb SpacestationShortpassage = new EaxReverb(26,1.5f,0.870f,-1000,-400,-100,3.57f,0.50f,0.55f,0,0.012f,0f,0f,0f,100,0.016f,0f,0f,0f,0.172f,0.200f,0.250f,0f,-5f,3316.1f,458.2f,0f,0x20);
public static EaxReverb SpacestationLongpassage = new EaxReverb(26,1.9f,0.820f,-1000,-400,-100,4.62f,0.62f,0.55f,0,0.012f,0f,0f,0f,200,0.031f,0f,0f,0f,0.250f,0.230f,0.250f,0f,-5f,3316.1f,458.2f,0f,0x20);
public static EaxReverb SpacestationLargeroom = new EaxReverb(26,1.8f,0.810f,-1000,-400,-100,3.89f,0.38f,0.61f,-1000,0.056f,0f,0f,0f,-100,0.035f,0f,0f,0f,0.233f,0.280f,0.250f,0f,-5f,3316.1f,458.2f,0f,0x20);
public static EaxReverb SpacestationHall = new EaxReverb(26,1.9f,0.870f,-1000,-400,-100,7.11f,0.38f,0.61f,-1500,0.100f,0f,0f,0f,-400,0.047f,0f,0f,0f,0.250f,0.250f,0.250f,0f,-5f,3316.1f,458.2f,0f,0x20);
public static EaxReverb SpacestationCupboard = new EaxReverb(26,1.4f,0.560f,-1000,-300,-100,0.79f,0.81f,0.55f,300,0.007f,0f,0f,0f,500,0.018f,0f,0f,0f,0.181f,0.310f,0.250f,0f,-5f,3316.1f,458.2f,0f,0x20);
public static EaxReverb SpacestationSmallroom = new EaxReverb(26,1.5f,0.700f,-1000,-300,-100,1.72f,0.82f,0.55f,-200,0.007f,0f,0f,0f,300,0.013f,0f,0f,0f,0.188f,0.260f,0.250f,0f,-5f,3316.1f,458.2f,0f,0x20);
// WOODEN GALLEON PRESETS
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
#define REVERB_PRESET_WOODEN_ALCOVE \
{ 26, 7.5f, 1.000f, -1000, -1800, -1000, 1.22f, 0.62f, 0.91f, 100, 0.012f, 0.00f,0.00f,0.00f, -300, 0.024f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
#define REVERB_PRESET_WOODEN_SHORTPASSAGE \
{ 26, 7.5f, 1.000f, -1000, -1800, -1000, 1.75f, 0.50f, 0.87f, -100, 0.012f, 0.00f,0.00f,0.00f, -400, 0.024f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
#define REVERB_PRESET_WOODEN_MEDIUMROOM \
{ 26, 7.5f, 1.000f, -1000, -2000, -1100, 1.47f, 0.42f, 0.82f, -100, 0.049f, 0.00f,0.00f,0.00f, -100, 0.029f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
#define REVERB_PRESET_WOODEN_LONGPASSAGE \
{ 26, 7.5f, 1.000f, -1000, -2000, -1000, 1.99f, 0.40f, 0.79f, 000, 0.020f, 0.00f,0.00f,0.00f, -700, 0.036f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
#define REVERB_PRESET_WOODEN_LARGEROOM \
{ 26, 7.5f, 1.000f, -1000, -2100, -1100, 2.65f, 0.33f, 0.82f, -100, 0.066f, 0.00f,0.00f,0.00f, -200, 0.049f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
#define REVERB_PRESET_WOODEN_HALL \
{ 26, 7.5f, 1.000f, -1000, -2200, -1100, 3.45f, 0.30f, 0.82f, -100, 0.088f, 0.00f,0.00f,0.00f, -200, 0.063f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
#define REVERB_PRESET_WOODEN_CUPBOARD \
{ 26, 7.5f, 1.000f, -1000, -1700, -1000, 0.56f, 0.46f, 0.91f, 100, 0.012f, 0.00f,0.00f,0.00f, 100, 0.028f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
#define REVERB_PRESET_WOODEN_SMALLROOM \
{ 26, 7.5f, 1.000f, -1000, -1900, -1000, 0.79f, 0.32f, 0.87f, 00, 0.032f, 0.00f,0.00f,0.00f, -100, 0.029f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
#define REVERB_PRESET_WOODEN_COURTYARD \
{ 26, 7.5f, 0.650f, -1000, -2200, -1000, 1.79f, 0.35f, 0.79f, -500, 0.123f, 0.00f,0.00f,0.00f, -2000, 0.032f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
public static EaxReverb WoodenAlcove = new EaxReverb(26,7.5f,1f,-1000,-1800,-1000,1.22f,0.62f,0.91f,100,0.012f,0f,0f,0f,-300,0.024f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,4705f,99.6f,0f,0x3f);
public static EaxReverb WoodenShortpassage = new EaxReverb(26,7.5f,1f,-1000,-1800,-1000,1.75f,0.50f,0.87f,-100,0.012f,0f,0f,0f,-400,0.024f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,4705f,99.6f,0f,0x3f);
public static EaxReverb WoodenMediumroom = new EaxReverb(26,7.5f,1f,-1000,-2000,-1100,1.47f,0.42f,0.82f,-100,0.049f,0f,0f,0f,-100,0.029f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,4705f,99.6f,0f,0x3f);
public static EaxReverb WoodenLongpassage = new EaxReverb(26,7.5f,1f,-1000,-2000,-1000,1.99f,0.40f,0.79f,000,0.020f,0f,0f,0f,-700,0.036f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,4705f,99.6f,0f,0x3f);
public static EaxReverb WoodenLargeroom = new EaxReverb(26,7.5f,1f,-1000,-2100,-1100,2.65f,0.33f,0.82f,-100,0.066f,0f,0f,0f,-200,0.049f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,4705f,99.6f,0f,0x3f);
public static EaxReverb WoodenHall = new EaxReverb(26,7.5f,1f,-1000,-2200,-1100,3.45f,0.30f,0.82f,-100,0.088f,0f,0f,0f,-200,0.063f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,4705f,99.6f,0f,0x3f);
public static EaxReverb WoodenCupboard = new EaxReverb(26,7.5f,1f,-1000,-1700,-1000,0.56f,0.46f,0.91f,100,0.012f,0f,0f,0f,100,0.028f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,4705f,99.6f,0f,0x3f);
public static EaxReverb WoodenSmallroom = new EaxReverb(26,7.5f,1f,-1000,-1900,-1000,0.79f,0.32f,0.87f,00,0.032f,0f,0f,0f,-100,0.029f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,4705f,99.6f,0f,0x3f);
public static EaxReverb WoodenCourtyard = new EaxReverb(26,7.5f,0.650f,-1000,-2200,-1000,1.79f,0.35f,0.79f,-500,0.123f,0f,0f,0f,-2000,0.032f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,4705f,99.6f,0f,0x3f);
// SPORTS PRESETS
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
#define REVERB_PRESET_SPORT_EMPTYSTADIUM \
{ 26, 7.2f, 1.000f, -1000, -700, -200, 6.26f, 0.51f, 1.10f, -2400, 0.183f, 0.00f,0.00f,0.00f, -800, 0.038f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
#define REVERB_PRESET_SPORT_SQUASHCOURT \
{ 26, 7.5f, 0.750f, -1000, -1000, -200, 2.22f, 0.91f, 1.16f, -700, 0.007f, 0.00f,0.00f,0.00f, -200, 0.011f, 0.00f,0.00f,0.00f, 0.126f, 0.190f, 0.250f, 0.000f, -5.0f, 7176.9f, 211.2f, 0.00f, 0x20 }
#define REVERB_PRESET_SPORT_SMALLSWIMMINGPOOL \
{ 26, 36.2f, 0.700f, -1000, -200, -100, 2.76f, 1.25f, 1.14f, -400, 0.020f, 0.00f,0.00f,0.00f, -200, 0.030f, 0.00f,0.00f,0.00f, 0.179f, 0.150f, 0.895f, 0.190f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
#define REVERB_PRESET_SPORT_LARGESWIMMINGPOOL\
{ 26, 36.2f, 0.820f, -1000, -200, 0, 5.49f, 1.31f, 1.14f, -700, 0.039f, 0.00f,0.00f,0.00f, -600, 0.049f, 0.00f,0.00f,0.00f, 0.222f, 0.550f, 1.159f, 0.210f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
#define REVERB_PRESET_SPORT_GYMNASIUM \
{ 26, 7.5f, 0.810f, -1000, -700, -100, 3.14f, 1.06f, 1.35f, -800, 0.029f, 0.00f,0.00f,0.00f, -500, 0.045f, 0.00f,0.00f,0.00f, 0.146f, 0.140f, 0.250f, 0.000f, -5.0f, 7176.9f, 211.2f, 0.00f, 0x20 }
#define REVERB_PRESET_SPORT_FULLSTADIUM \
{ 26, 7.2f, 1.000f, -1000, -2300, -200, 5.25f, 0.17f, 0.80f, -2000, 0.188f, 0.00f,0.00f,0.00f, -1100, 0.038f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
#define REVERB_PRESET_SPORT_STADIUMTANNOY \
{ 26, 3.0f, 0.780f, -1000, -500, -600, 2.53f, 0.88f, 0.68f, -1100, 0.230f, 0.00f,0.00f,0.00f, -600, 0.063f, 0.00f,0.00f,0.00f, 0.250f, 0.200f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
public static EaxReverb SportEmptystadium = new EaxReverb(26,7.2f,1f,-1000,-700,-200,6.26f,0.51f,1.10f,-2400,0.183f,0f,0f,0f,-800,0.038f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,5000f,250f,0f,0x20);
public static EaxReverb SportSquashcourt = new EaxReverb(26,7.5f,0.750f,-1000,-1000,-200,2.22f,0.91f,1.16f,-700,0.007f,0f,0f,0f,-200,0.011f,0f,0f,0f,0.126f,0.190f,0.250f,0f,-5f,7176.9f,211.2f,0f,0x20);
public static EaxReverb SportSmallswimmingpool = new EaxReverb(26,36.2f,0.700f,-1000,-200,-100,2.76f,1.25f,1.14f,-400,0.020f,0f,0f,0f,-200,0.030f,0f,0f,0f,0.179f,0.150f,0.895f,0.190f,-5f,5000f,250f,0f,0x0);
public static EaxReverb SportLargeswimmingpool = new EaxReverb(26,36.2f,0.820f,-1000,-200,0,5.49f,1.31f,1.14f,-700,0.039f,0f,0f,0f,-600,0.049f,0f,0f,0f,0.222f,0.550f,1.159f,0.210f,-5f,5000f,250f,0f,0x0);
public static EaxReverb SportGymnasium = new EaxReverb(26,7.5f,0.810f,-1000,-700,-100,3.14f,1.06f,1.35f,-800,0.029f,0f,0f,0f,-500,0.045f,0f,0f,0f,0.146f,0.140f,0.250f,0f,-5f,7176.9f,211.2f,0f,0x20);
public static EaxReverb SportFullstadium = new EaxReverb(26,7.2f,1f,-1000,-2300,-200,5.25f,0.17f,0.80f,-2000,0.188f,0f,0f,0f,-1100,0.038f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,5000f,250f,0f,0x20);
public static EaxReverb SportStadimtannoy = new EaxReverb(26,3f,0.780f,-1000,-500,-600,2.53f,0.88f,0.68f,-1100,0.230f,0f,0f,0f,-600,0.063f,0f,0f,0f,0.250f,0.200f,0.250f,0f,-5f,5000f,250f,0f,0x20);
// PREFAB PRESETS
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
#define REVERB_PRESET_PREFAB_WORKSHOP \
{ 26, 1.9f, 1.000f, -1000, -1700, -800, 0.76f, 1.00f, 1.00f, 0, 0.012f, 0.00f,0.00f,0.00f, 100, 0.012f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
#define REVERB_PRESET_PREFAB_SCHOOLROOM \
{ 26, 1.86f, 0.690f, -1000, -400, -600, 0.98f, 0.45f, 0.18f, 300, 0.017f, 0.00f,0.00f,0.00f, 300, 0.015f, 0.00f,0.00f,0.00f, 0.095f, 0.140f, 0.250f, 0.000f, -5.0f, 7176.9f, 211.2f, 0.00f, 0x20 }
#define REVERB_PRESET_PREFAB_PRACTISEROOM \
{ 26, 1.86f, 0.870f, -1000, -800, -600, 1.12f, 0.56f, 0.18f, 200, 0.010f, 0.00f,0.00f,0.00f, 300, 0.011f, 0.00f,0.00f,0.00f, 0.095f, 0.140f, 0.250f, 0.000f, -5.0f, 7176.9f, 211.2f, 0.00f, 0x20 }
#define REVERB_PRESET_PREFAB_OUTHOUSE \
{ 26, 80.3f, 0.820f, -1000, -1900, -1600, 1.38f, 0.38f, 0.35f, -100, 0.024f, 0.00f,0.00f,-0.00f, -400, 0.044f, 0.00f,0.00f,0.00f, 0.121f, 0.170f, 0.250f, 0.000f, -5.0f, 2854.4f, 107.5f, 0.00f, 0x0 }
#define REVERB_PRESET_PREFAB_CARAVAN \
{ 26, 8.3f, 1.000f, -1000, -2100, -1800, 0.43f, 1.50f, 1.00f, 0, 0.012f, 0.00f,0.00f,0.00f, 600, 0.012f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
// for US developers, a caravan is the same as a trailer =o)
public static EaxReverb PrefabWorkshop = new EaxReverb(26,1.9f,1f,-1000,-1700,-800,0.76f,1f,1f,0,0.012f,0f,0f,0f,100,0.012f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,5000f,250f,0f,0x0);
public static EaxReverb PrefabSchoolroom = new EaxReverb(26,1.86f,0.690f,-1000,-400,-600,0.98f,0.45f,0.18f,300,0.017f,0f,0f,0f,300,0.015f,0f,0f,0f,0.095f,0.140f,0.250f,0f,-5f,7176.9f,211.2f,0f,0x20);
public static EaxReverb PrefabPractiseroom = new EaxReverb(26,1.86f,0.870f,-1000,-800,-600,1.12f,0.56f,0.18f,200,0.010f,0f,0f,0f,300,0.011f,0f,0f,0f,0.095f,0.140f,0.250f,0f,-5f,7176.9f,211.2f,0f,0x20);
public static EaxReverb PrefabOuthouse = new EaxReverb(26,80.3f,0.820f,-1000,-1900,-1600,1.38f,0.38f,0.35f,-100,0.024f,0f,0f,-0f,-400,0.044f,0f,0f,0f,0.121f,0.170f,0.250f,0f,-5f,2854.4f,107.5f,0f,0x0);
public static EaxReverb PrefabCaravan = new EaxReverb(26,8.3f,1f,-1000,-2100,-1800,0.43f,1.50f,1f,0,0.012f,0f,0f,0f,600,0.012f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,5000f,250f,0f,0x1f);
// DOME AND PIPE PRESETS
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
#define REVERB_PRESET_DOME_TOMB \
{ 26, 51.8f, 0.790f, -1000, -900, -1300, 4.18f, 0.21f, 0.10f, -825, 0.030f, 0.00f,0.00f,0.00f, 450, 0.022f, 0.00f,0.00f,0.00f, 0.177f, 0.190f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x0 }
#define REVERB_PRESET_PIPE_SMALL \
{ 26, 50.3f, 1.000f, -1000, -900, -1300, 5.04f, 0.10f, 0.10f, -600, 0.032f, 0.00f,0.00f,0.00f, 800, 0.015f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x3f }
#define REVERB_PRESET_DOME_SAINTPAULS \
{ 26, 50.3f, 0.870f, -1000, -900, -1300, 10.48f, 0.19f, 0.10f, -1500, 0.090f, 0.00f,0.00f,0.00f, 200, 0.042f, 0.00f,0.00f,0.00f, 0.250f, 0.120f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x3f }
#define REVERB_PRESET_PIPE_LONGTHIN \
{ 26, 1.6f, 0.910f, -1000, -700, -1100, 9.21f, 0.18f, 0.10f, -300, 0.010f, 0.00f,0.00f,0.00f, -300, 0.022f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x0 }
#define REVERB_PRESET_PIPE_LARGE \
{ 26, 50.3f, 1.000f, -1000, -900, -1300, 8.45f, 0.10f, 0.10f, -800, 0.046f, 0.00f,0.00f,0.00f, 400, 0.032f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x3f }
#define REVERB_PRESET_PIPE_RESONANT \
{ 26, 1.3f, 0.910f, -1000, -700, -1100, 6.81f, 0.18f, 0.10f, -300, 0.010f, 0.00f,0.00f,0.00f, 00, 0.022f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x0 }
public static EaxReverb DomeTomb = new EaxReverb(26,51.8f,0.790f,-1000,-900,-1300,4.18f,0.21f,0.10f,-825,0.030f,0f,0f,0f,450,0.022f,0f,0f,0f,0.177f,0.190f,0.250f,0f,-5f,2854.4f,20f,0f,0x0);
public static EaxReverb DomeSaintPauls = new EaxReverb(26,50.3f,0.870f,-1000,-900,-1300,10.48f,0.19f,0.10f,-1500,0.090f,0f,0f,0f,200,0.042f,0f,0f,0f,0.250f,0.120f,0.250f,0f,-5f,2854.4f,20f,0f,0x3f);
public static EaxReverb PipeSmall = new EaxReverb(26,50.3f,1f,-1000,-900,-1300,5.04f,0.10f,0.10f,-600,0.032f,0f,0f,0f,800,0.015f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,2854.4f,20f,0f,0x3f);
public static EaxReverb PipeLongthin = new EaxReverb(26,1.6f,0.910f,-1000,-700,-1100,9.21f,0.18f,0.10f,-300,0.010f,0f,0f,0f,-300,0.022f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,2854.4f,20f,0f,0x0);
public static EaxReverb PipeLarge = new EaxReverb(26,50.3f,1f,-1000,-900,-1300,8.45f,0.10f,0.10f,-800,0.046f,0f,0f,0f,400,0.032f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,2854.4f,20f,0f,0x3f);
public static EaxReverb PipeResonant = new EaxReverb(26,1.3f,0.910f,-1000,-700,-1100,6.81f,0.18f,0.10f,-300,0.010f,0f,0f,0f,00,0.022f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,2854.4f,20f,0f,0x0);
// OUTDOORS PRESETS
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
#define REVERB_PRESET_OUTDOORS_BACKYARD \
{ 26, 80.3f, 0.450f, -1000, -1200, -600, 1.12f, 0.34f, 0.46f, -700, 0.069f, 0.00f,0.00f,-0.00f, -300, 0.023f, 0.00f,0.00f,0.00f, 0.218f, 0.340f, 0.250f, 0.000f, -5.0f, 4399.1f, 242.9f, 0.00f, 0x0 }
#define REVERB_PRESET_OUTDOORS_ROLLINGPLAINS \
{ 26, 80.3f, 0.000f, -1000, -3900, -400, 2.13f, 0.21f, 0.46f, -1500, 0.300f, 0.00f,0.00f,-0.00f, -700, 0.019f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.250f, 0.000f, -5.0f, 4399.1f, 242.9f, 0.00f, 0x0 }
#define REVERB_PRESET_OUTDOORS_DEEPCANYON \
{ 26, 80.3f, 0.740f, -1000, -1500, -400, 3.89f, 0.21f, 0.46f, -1000, 0.223f, 0.00f,0.00f,-0.00f, -900, 0.019f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.250f, 0.000f, -5.0f, 4399.1f, 242.9f, 0.00f, 0x0 }
#define REVERB_PRESET_OUTDOORS_CREEK \
{ 26, 80.3f, 0.350f, -1000, -1500, -600, 2.13f, 0.21f, 0.46f, -800, 0.115f, 0.00f,0.00f,-0.00f, -1400, 0.031f, 0.00f,0.00f,0.00f, 0.218f, 0.340f, 0.250f, 0.000f, -5.0f, 4399.1f, 242.9f, 0.00f, 0x0 }
#define REVERB_PRESET_OUTDOORS_VALLEY \
{ 26, 80.3f, 0.280f, -1000, -3100, -1600, 2.88f, 0.26f, 0.35f, -1700, 0.263f, 0.00f,0.00f,-0.00f, -800, 0.100f, 0.00f,0.00f,0.00f, 0.250f, 0.340f, 0.250f, 0.000f, -5.0f, 2854.4f, 107.5f, 0.00f, 0x0 }
public static EaxReverb OutdoorsBackyard = new EaxReverb(26,80.3f,0.450f,-1000,-1200,-600,1.12f,0.34f,0.46f,-700,0.069f,0f,0f,-0f,-300,0.023f,0f,0f,0f,0.218f,0.340f,0.250f,0f,-5f,4399.1f,242.9f,0f,0x0);
public static EaxReverb OutdoorsRollingplains = new EaxReverb(26,80.3f,0f,-1000,-3900,-400,2.13f,0.21f,0.46f,-1500,0.300f,0f,0f,-0f,-700,0.019f,0f,0f,0f,0.250f,1f,0.250f,0f,-5f,4399.1f,242.9f,0f,0x0);
public static EaxReverb OutdoorsDeepcanyon = new EaxReverb(26,80.3f,0.740f,-1000,-1500,-400,3.89f,0.21f,0.46f,-1000,0.223f,0f,0f,-0f,-900,0.019f,0f,0f,0f,0.250f,1f,0.250f,0f,-5f,4399.1f,242.9f,0f,0x0);
public static EaxReverb OutdoorsCreek = new EaxReverb(26,80.3f,0.350f,-1000,-1500,-600,2.13f,0.21f,0.46f,-800,0.115f,0f,0f,-0f,-1400,0.031f,0f,0f,0f,0.218f,0.340f,0.250f,0f,-5f,4399.1f,242.9f,0f,0x0);
public static EaxReverb OutdoorsValley = new EaxReverb(26,80.3f,0.280f,-1000,-3100,-1600,2.88f,0.26f,0.35f,-1700,0.263f,0f,0f,-0f,-800,0.100f,0f,0f,0f,0.250f,0.340f,0.250f,0f,-5f,2854.4f,107.5f,0f,0x0);
// MOOD PRESETS
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
#define REVERB_PRESET_MOOD_HEAVEN \
{ 26, 19.6f, 0.940f, -1000, -200, -700, 5.04f, 1.12f, 0.56f, -1230, 0.020f, 0.00f,0.00f,0.00f, 200, 0.029f, 0.00f,0.00f,0.00f, 0.250f, 0.080f, 2.742f, 0.050f, -2.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
#define REVERB_PRESET_MOOD_HELL \
{ 26, 100.0f, 0.570f, -1000, -900, -700, 3.57f, 0.49f, 2.00f, -10000, 0.020f, 0.00f,0.00f,0.00f, 300, 0.030f, 0.00f,0.00f,0.00f, 0.110f, 0.040f, 2.109f, 0.520f, -5.0f, 5000.0f, 139.5f, 0.00f, 0x40 }
#define REVERB_PRESET_MOOD_MEMORY \
{ 26, 8.0f, 0.850f, -1000, -400, -900, 4.06f, 0.82f, 0.56f, -2800, 0.000f, 0.00f,0.00f,0.00f, 100, 0.000f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.474f, 0.450f, -10.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
public static EaxReverb MoodHeaven = new EaxReverb(26,19.6f,0.940f,-1000,-200,-700,5.04f,1.12f,0.56f,-1230,0.020f,0f,0f,0f,200,0.029f,0f,0f,0f,0.250f,0.080f,2.742f,0.050f,-2f,5000f,250f,0f,0x3f);
public static EaxReverb MoodHell = new EaxReverb(26,100f,0.570f,-1000,-900,-700,3.57f,0.49f,2f,-10000,0.020f,0f,0f,0f,300,0.030f,0f,0f,0f,0.110f,0.040f,2.109f,0.520f,-5f,5000f,139.5f,0f,0x40);
public static EaxReverb MoodMemory = new EaxReverb(26,8f,0.850f,-1000,-400,-900,4.06f,0.82f,0.56f,-2800,0f,0f,0f,0f,100,0f,0f,0f,0f,0.250f,0f,0.474f,0.450f,-10f,5000f,250f,0f,0x0);
// DRIVING SIMULATION PRESETS
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
#define REVERB_PRESET_DRIVING_COMMENTATOR \
{ 26, 3.0f, 0.000f, 1000, -500, -600, 2.42f, 0.88f, 0.68f, -1400, 0.093f, 0.00f,0.00f,0.00f, -1200, 0.017f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.250f, 0.000f, -10.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
#define REVERB_PRESET_DRIVING_PITGARAGE \
{ 26, 1.9f, 0.590f, -1000, -300, -500, 1.72f, 0.93f, 0.87f, -500, 0.000f, 0.00f,0.00f,0.00f, 200, 0.016f, 0.00f,0.00f,0.00f, 0.250f, 0.110f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
#define REVERB_PRESET_DRIVING_INCAR_RACER \
{ 26, 1.1f, 0.800f, -1000, 0, -200, 0.17f, 2.00f, 0.41f, 500, 0.007f, 0.00f,0.00f,0.00f, -300, 0.015f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 10268.2f, 251.0f, 0.00f, 0x20 }
#define REVERB_PRESET_DRIVING_INCAR_SPORTS \
{ 26, 1.1f, 0.800f, -1000, -400, 0, 0.17f, 0.75f, 0.41f, 0, 0.010f, 0.00f,0.00f,0.00f, -500, 0.000f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 10268.2f, 251.0f, 0.00f, 0x20 }
#define REVERB_PRESET_DRIVING_INCAR_LUXURY \
{ 26, 1.6f, 1.000f, -1000, -2000, -600, 0.13f, 0.41f, 0.46f, -200, 0.010f, 0.00f,0.00f,0.00f, 400, 0.010f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 10268.2f, 251.0f, 0.00f, 0x20 }
#define REVERB_PRESET_DRIVING_FULLGRANDSTAND \
{ 26, 8.3f, 1.000f, -1000, -1100, -400, 3.01f, 1.37f, 1.28f, -900, 0.090f, 0.00f,0.00f,0.00f, -1500, 0.049f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 10420.2f, 250.0f, 0.00f, 0x1f }
#define REVERB_PRESET_DRIVING_EMPTYGRANDSTAND \
{ 26, 8.3f, 1.000f, -1000, 0, -200, 4.62f, 1.75f, 1.40f, -1363, 0.090f, 0.00f,0.00f,0.00f, -1200, 0.049f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 10420.2f, 250.0f, 0.00f, 0x1f }
#define REVERB_PRESET_DRIVING_TUNNEL \
{ 26, 3.1f, 0.810f, -1000, -800, -100, 3.42f, 0.94f, 1.31f, -300, 0.051f, 0.00f,0.00f,0.00f, -300, 0.047f, 0.00f,0.00f,0.00f, 0.214f, 0.050f, 0.250f, 0.000f, -5.0f, 5000.0f, 155.3f, 0.00f, 0x20 }
public static EaxReverb DrivingCommentator = new EaxReverb(26,3f,0f,1000,-500,-600,2.42f,0.88f,0.68f,-1400,0.093f,0f,0f,0f,-1200,0.017f,0f,0f,0f,0.250f,1f,0.250f,0f,-10f,5000f,250f,0f,0x20);
public static EaxReverb DrivingPitgarage = new EaxReverb(26,1.9f,0.590f,-1000,-300,-500,1.72f,0.93f,0.87f,-500,0f,0f,0f,0f,200,0.016f,0f,0f,0f,0.250f,0.110f,0.250f,0f,-5f,5000f,250f,0f,0x0);
public static EaxReverb DrivingIncarRacer = new EaxReverb(26,1.1f,0.800f,-1000,0,-200,0.17f,2f,0.41f,500,0.007f,0f,0f,0f,-300,0.015f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,10268.2f,251f,0f,0x20);
public static EaxReverb DrivingIncarSports = new EaxReverb(26,1.1f,0.800f,-1000,-400,0,0.17f,0.75f,0.41f,0,0.010f,0f,0f,0f,-500,0f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,10268.2f,251f,0f,0x20);
public static EaxReverb DrivingIncarLuxury = new EaxReverb(26,1.6f,1f,-1000,-2000,-600,0.13f,0.41f,0.46f,-200,0.010f,0f,0f,0f,400,0.010f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,10268.2f,251f,0f,0x20);
public static EaxReverb DrivingFullgrandstand = new EaxReverb(26,8.3f,1f,-1000,-1100,-400,3.01f,1.37f,1.28f,-900,0.090f,0f,0f,0f,-1500,0.049f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,10420.2f,250f,0f,0x1f);
public static EaxReverb DrivingEmptygrandstand = new EaxReverb(26,8.3f,1f,-1000,0,-200,4.62f,1.75f,1.40f,-1363,0.090f,0f,0f,0f,-1200,0.049f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,10420.2f,250f,0f,0x1f);
public static EaxReverb DrivingTunnel = new EaxReverb(26,3.1f,0.810f,-1000,-800,-100,3.42f,0.94f,1.31f,-300,0.051f,0f,0f,0f,-300,0.047f,0f,0f,0f,0.214f,0.050f,0.250f,0f,-5f,5000f,155.3f,0f,0x20);
// CITY PRESETS
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
#define REVERB_PRESET_CITY_STREETS \
{ 26, 3.0f, 0.780f, -1000, -300, -100, 1.79f, 1.12f, 0.91f, -1100, 0.046f, 0.00f,0.00f,0.00f, -1400, 0.028f, 0.00f,0.00f,0.00f, 0.250f, 0.200f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
#define REVERB_PRESET_CITY_SUBWAY \
{ 26, 3.0f, 0.740f, -1000, -300, -100, 3.01f, 1.23f, 0.91f, -300, 0.046f, 0.00f,0.00f,0.00f, 200, 0.028f, 0.00f,0.00f,0.00f, 0.125f, 0.210f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
#define REVERB_PRESET_CITY_MUSEUM \
{ 26, 80.3f, 0.820f, -1000, -1500, -1500, 3.28f, 1.40f, 0.57f, -1200, 0.039f, 0.00f,0.00f,-0.00f, -100, 0.034f, 0.00f,0.00f,0.00f, 0.130f, 0.170f, 0.250f, 0.000f, -5.0f, 2854.4f, 107.5f, 0.00f, 0x0 }
#define REVERB_PRESET_CITY_LIBRARY \
{ 26, 80.3f, 0.820f, -1000, -1100, -2100, 2.76f, 0.89f, 0.41f, -900, 0.029f, 0.00f,0.00f,-0.00f, -100, 0.020f, 0.00f,0.00f,0.00f, 0.130f, 0.170f, 0.250f, 0.000f, -5.0f, 2854.4f, 107.5f, 0.00f, 0x0 }
#define REVERB_PRESET_CITY_UNDERPASS \
{ 26, 3.0f, 0.820f, -1000, -700, -100, 3.57f, 1.12f, 0.91f, -800, 0.059f, 0.00f,0.00f,0.00f, -100, 0.037f, 0.00f,0.00f,0.00f, 0.250f, 0.140f, 0.250f, 0.000f, -7.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
#define REVERB_PRESET_CITY_ABANDONED \
{ 26, 3.0f, 0.690f, -1000, -200, -100, 3.28f, 1.17f, 0.91f, -700, 0.044f, 0.00f,0.00f,0.00f, -1100, 0.024f, 0.00f,0.00f,0.00f, 0.250f, 0.200f, 0.250f, 0.000f, -3.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
public static EaxReverb CityStreets = new EaxReverb(26,3f,0.780f,-1000,-300,-100,1.79f,1.12f,0.91f,-1100,0.046f,0f,0f,0f,-1400,0.028f,0f,0f,0f,0.250f,0.200f,0.250f,0f,-5f,5000f,250f,0f,0x20);
public static EaxReverb CitySubway = new EaxReverb(26,3f,0.740f,-1000,-300,-100,3.01f,1.23f,0.91f,-300,0.046f,0f,0f,0f,200,0.028f,0f,0f,0f,0.125f,0.210f,0.250f,0f,-5f,5000f,250f,0f,0x20);
public static EaxReverb CityMuseum = new EaxReverb(26,80.3f,0.820f,-1000,-1500,-1500,3.28f,1.40f,0.57f,-1200,0.039f,0f,0f,-0f,-100,0.034f,0f,0f,0f,0.130f,0.170f,0.250f,0f,-5f,2854.4f,107.5f,0f,0x0);
public static EaxReverb CityLibrary = new EaxReverb(26,80.3f,0.820f,-1000,-1100,-2100,2.76f,0.89f,0.41f,-900,0.029f,0f,0f,-0f,-100,0.020f,0f,0f,0f,0.130f,0.170f,0.250f,0f,-5f,2854.4f,107.5f,0f,0x0);
public static EaxReverb CityUnderpass = new EaxReverb(26,3f,0.820f,-1000,-700,-100,3.57f,1.12f,0.91f,-800,0.059f,0f,0f,0f,-100,0.037f,0f,0f,0f,0.250f,0.140f,0.250f,0f,-7f,5000f,250f,0f,0x20);
public static EaxReverb CityAbandoned = new EaxReverb(26,3f,0.690f,-1000,-200,-100,3.28f,1.17f,0.91f,-700,0.044f,0f,0f,0f,-1100,0.024f,0f,0f,0f,0.250f,0.200f,0.250f,0f,-3f,5000f,250f,0f,0x20);
// MISC ROOMS
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
#define REVERB_PRESET_DUSTYROOM \
{ 26, 1.8f, 0.560f, -1000, -200, -300, 1.79f, 0.38f, 0.21f, -600, 0.002f, 0.00f,0.00f,0.00f, 200, 0.006f, 0.00f,0.00f,0.00f, 0.202f, 0.050f, 0.250f, 0.000f, -10.0f, 13046.0f, 163.3f, 0.00f, 0x20 }
#define REVERB_PRESET_CHAPEL \
{ 26, 19.6f, 0.840f, -1000, -500, 0, 4.62f, 0.64f, 1.23f, -700, 0.032f, 0.00f,0.00f,0.00f, -200, 0.049f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.110f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
#define REVERB_PRESET_SMALLWATERROOM \
{ 26, 36.2f, 0.700f, -1000, -698, 0, 1.51f, 1.25f, 1.14f, -100, 0.020f, 0.00f,0.00f,0.00f, 300, 0.030f, 0.00f,0.00f,0.00f, 0.179f, 0.150f, 0.895f, 0.190f, -7.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
*/
public static EaxReverb Generic = new EaxReverb(0,7.5f,1f,-1000,-100,0,1.49f,0.83f,1f,-2602,0.007f,0f,0f,0f,200,0.011f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,5000f,250f,0f,0x3f);
public static EaxReverb Paddedcell = new EaxReverb(1,1.4f,1f,-1000,-6000,0,0.17f,0.10f,1f,-1204,0.001f,0f,0f,0f,207,0.002f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,5000f,250f,0f,0x3f);
public static EaxReverb Room = new EaxReverb(2,1.9f,1f,-1000,-454,0,0.40f,0.83f,1f,-1646,0.002f,0f,0f,0f,53,0.003f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,5000f,250f,0f,0x3f);
public static EaxReverb Bathroom = new EaxReverb(3,1.4f,1f,-1000,-1200,0,1.49f,0.54f,1f,-370,0.007f,0f,0f,0f,1030,0.011f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,5000f,250f,0f,0x3f);
public static EaxReverb Livingroom = new EaxReverb(4,2.5f,1f,-1000,-6000,0,0.50f,0.10f,1f,-1376,0.003f,0f,0f,0f,-1104,0.004f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,5000f,250f,0f,0x3f);
public static EaxReverb Stoneroom = new EaxReverb(5,11.6f,1f,-1000,-300,0,2.31f,0.64f,1f,-711,0.012f,0f,0f,0f,83,0.017f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,5000f,250f,0f,0x3f);
public static EaxReverb Auditorium = new EaxReverb(6,21.6f,1f,-1000,-476,0,4.32f,0.59f,1f,-789,0.020f,0f,0f,0f,-289,0.030f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,5000f,250f,0f,0x3f);
public static EaxReverb Concerthall = new EaxReverb(7,19.6f,1f,-1000,-500,0,3.92f,0.70f,1f,-1230,0.020f,0f,0f,0f,-02,0.029f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,5000f,250f,0f,0x3f);
public static EaxReverb Cave = new EaxReverb(8,14.6f,1f,-1000,0,0,2.91f,1.30f,1f,-602,0.015f,0f,0f,0f,-302,0.022f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,5000f,250f,0f,0x1f);
public static EaxReverb Arena = new EaxReverb(9,36.2f,1f,-1000,-698,0,7.24f,0.33f,1f,-1166,0.020f,0f,0f,0f,16,0.030f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,5000f,250f,0f,0x3f);
public static EaxReverb Hangar = new EaxReverb(10,50.3f,1f,-1000,-1000,0,10.05f,0.23f,1f,-602,0.020f,0f,0f,0f,198,0.030f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,5000f,250f,0f,0x3f);
public static EaxReverb Carpettedhallway = new EaxReverb(11,1.9f,1f,-1000,-4000,0,0.30f,0.10f,1f,-1831,0.002f,0f,0f,0f,-1630,0.030f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,5000f,250f,0f,0x3f);
public static EaxReverb Hallway = new EaxReverb(12,1.8f,1f,-1000,-300,0,1.49f,0.59f,1f,-1219,0.007f,0f,0f,0f,441,0.011f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,5000f,250f,0f,0x3f);
public static EaxReverb Stonecorridor = new EaxReverb(13,13.5f,1f,-1000,-237,0,2.70f,0.79f,1f,-1214,0.013f,0f,0f,0f,395,0.020f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,5000f,250f,0f,0x3f);
public static EaxReverb Alley = new EaxReverb(14,7.5f,0.300f,-1000,-270,0,1.49f,0.86f,1f,-1204,0.007f,0f,0f,0f,-4,0.011f,0f,0f,0f,0.125f,0.950f,0.250f,0f,-5f,5000f,250f,0f,0x3f);
public static EaxReverb Forest = new EaxReverb(15,38f,0.300f,-1000,-3300,0,1.49f,0.54f,1f,-2560,0.162f,0f,0f,0f,-229,0.088f,0f,0f,0f,0.125f,1f,0.250f,0f,-5f,5000f,250f,0f,0x3f);
public static EaxReverb City = new EaxReverb(16,7.5f,0.500f,-1000,-800,0,1.49f,0.67f,1f,-2273,0.007f,0f,0f,0f,-1691,0.011f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,5000f,250f,0f,0x3f);
public static EaxReverb Mountains = new EaxReverb(17,100f,0.270f,-1000,-2500,0,1.49f,0.21f,1f,-2780,0.300f,0f,0f,0f,-1434,0.100f,0f,0f,0f,0.250f,1f,0.250f,0f,-5f,5000f,250f,0f,0x1f);
public static EaxReverb Quarry = new EaxReverb(18,17.5f,1f,-1000,-1000,0,1.49f,0.83f,1f,-10000,0.061f,0f,0f,0f,500,0.025f,0f,0f,0f,0.125f,0.700f,0.250f,0f,-5f,5000f,250f,0f,0x3f);
public static EaxReverb Plain = new EaxReverb(19,42.5f,0.210f,-1000,-2000,0,1.49f,0.50f,1f,-2466,0.179f,0f,0f,0f,-1926,0.100f,0f,0f,0f,0.250f,1f,0.250f,0f,-5f,5000f,250f,0f,0x3f);
public static EaxReverb Parkinglot = new EaxReverb(20,8.3f,1f,-1000,0,0,1.65f,1.50f,1f,-1363,0.008f,0f,0f,0f,-1153,0.012f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,5000f,250f,0f,0x1f);
public static EaxReverb Sewerpipe = new EaxReverb(21,1.7f,0.800f,-1000,-1000,0,2.81f,0.14f,1f,429,0.014f,0f,0f,0f,1023,0.021f,0f,0f,0f,0.250f,0f,0.250f,0f,-5f,5000f,250f,0f,0x3f);
public static EaxReverb Underwater = new EaxReverb(22,1.8f,1f,-1000,-4000,0,1.49f,0.10f,1f,-449,0.007f,0f,0f,0f,1700,0.011f,0f,0f,0f,0.250f,0f,1.180f,0.348f,-5f,5000f,250f,0f,0x3f);
public static EaxReverb Drugged = new EaxReverb(23,1.9f,0.500f,-1000,0,0,8.39f,1.39f,1f,-115,0.002f,0f,0f,0f,985,0.030f,0f,0f,0f,0.250f,0f,0.250f,1f,-5f,5000f,250f,0f,0x1f);
public static EaxReverb Dizzy = new EaxReverb(24,1.8f,0.600f,-1000,-400,0,17.23f,0.56f,1f,-1713,0.020f,0f,0f,0f,-613,0.030f,0f,0f,0f,0.250f,1f,0.810f,0.310f,-5f,5000f,250f,0f,0x1f);
public static EaxReverb Psychotic = new EaxReverb(25,1f,0.500f,-1000,-151,0,7.56f,0.91f,1f,-626,0.020f,0f,0f,0f,774,0.030f,0f,0f,0f,0.250f,0f,4f,1f,-5f,5000f,250f,0f,0x1f);
public static EaxReverb Dustyroom = new EaxReverb(26,1.8f,0.560f,-1000,-200,-300,1.79f,0.38f,0.21f,-600,0.002f,0f,0f,0f,200,0.006f,0f,0f,0f,0.202f,0.050f,0.250f,0f,-10f,13046f,163.3f,0f,0x20);
public static EaxReverb Chapel = new EaxReverb(26,19.6f,0.840f,-1000,-500,0,4.62f,0.64f,1.23f,-700,0.032f,0f,0f,0f,-200,0.049f,0f,0f,0f,0.250f,0f,0.250f,0.110f,-5f,5000f,250f,0f,0x3f);
public static EaxReverb Smallwaterroom = new EaxReverb(26,36.2f,0.700f,-1000,-698,0,1.51f,1.25f,1.14f,-100,0.020f,0f,0f,0f,300,0.030f,0f,0f,0f,0.179f,0.150f,0.895f,0.190f,-7f,5000f,250f,0f,0x0);
}
}
}

View file

@ -10,9 +10,8 @@
using System;
namespace OpenTK.OpenAL.Enums
{
// Constants, might be removed if inline docu is sufficiently describing it
// AL chorus effect parameter ranges and defaults
// AL_CHORUS_WAVEFORM_SINUSOID 0
// AL_CHORUS_WAVEFORM_TRIANGLE 1
@ -36,62 +35,6 @@ namespace OpenTK.OpenAL.Enums
// AL_FREQUENCY_SHIFTER_DIRECTION_UP 1
// AL_FREQUENCY_SHIFTER_DIRECTION_OFF 2
/**
* Context definitions to be used with alcCreateContext.
* These values must be unique and not conflict with other
* al context values.
*/
public enum NEWALCTOKENS : int
{
/// <summary>This Context property can be used by the application to retrieve the Major version number of the Effects Extension supported by this OpenAL implementation. As this is a Context property is should be retrieved using alcGetIntegerv.</summary>
ALC_EFX_MAJOR_VERSION = 0x20001,
/// <summary>This Context property can be used by the application to retrieve the Minor version number of the Effects Extension supported by this OpenAL implementation. As this is a Context property is should be retrieved using alcGetIntegerv.</summary>
ALC_EFX_MINOR_VERSION = 0x20002,
/// <summary>This Context property can be passed to OpenAL during Context creation (alcCreateContext) to request a maximum number of Auxiliary Sends desired on each Source. It is not guaranteed that the desired number of sends will be available, so an application should query this property after creating the context using alcGetIntergerv. Default: 2</summary>
ALC_MAX_AUXILIARY_SENDS = 0x20003,
}
public enum NEWLISTENERTOKENS : int
{
/* Listener definitions to be used with alListener functions.
* These values must be unique and not conflict with other
* al listener values.*/
///<summary>The Listener property allows an application to specify the relationship between the units passed to OpenAL calls such as positions, velocities, reference distance, etc … and the real-world. This information is critical if Air Absorption effects are enabled because the amount of Air Absorption applied is directly related to the real-world distance between the Source and the Listener. If the application is using centimeters for distance units, then this property should be set to 0.01 so that the amount of air absorption applied is not 100 times too great! Range [float.MinValue .. float.MaxValue] Default: 1.0f</summary>
AL_METERS_PER_UNIT = 0x20004,
}
public enum NEWSSOURCETOKENS : int
{
/**
* Source definitions to be used with alSource functions.
* These values must be unique and not conflict with other
* al source values.
*/
///<summary>This Source property is used to apply filtering on the direct-path (dry signal) of a Source.</summary>
AL_DIRECT_FILTER = 0x20005,
///<summary>This Source property is used to establish connections between Sources and Auxiliary Effect Slots. For a Source to feed an Effect that has been loaded into an Auxiliary Effect Slot the application must configure one of the Sources auxiliary sends. This process involves setting 3 variables the destination Auxiliary Effect Slot ID, the Auxiliary Send number, and an optional Filter ID.</summary>
AL_AUXILIARY_SEND_FILTER = 0x20006, // Sourcei3
///<summary>This Source property is a multiplier on the amount of Air Absorption applied to the Source. The AL_AIR_ABSORPTION_FACTOR is multiplied by an internal Air Absorption Gain HF value of 0.994 (-0.05dB) per meter which represents normal atmospheric humidity and temperature. Range [0.0f .. 10.0f] Default: 0.0f</summary>
AL_AIR_ABSORPTION_FACTOR = 0x20007,
///<summary>This Source property is defined the same way as the Reverb Room Rolloff property: it is one of two methods available in the Effect Extension to attenuate the reflected sound (early reflections and reverberation) according to source-listener distance. Range [0.0f .. 10.0f] Default: 0.0f</summary>
AL_ROOM_ROLLOFF_FACTOR = 0x20008,
///<summary>This Source property enhances the directivity for individual Sources. A directed Source points in a specified direction. The Source sounds at full volume when the listener is directly in front of the source; it is attenuated as the listener circles the Source away from the front. Range [0.0f .. 1.0f] Default: 1.0f</summary>
AL_CONE_OUTER_GAINHF = 0x20009,
///<summary>If this Source property is set to AL_TRUE (its default value), this Sources direct-path is automatically filtered according to the orientation of the source relative to the listener and the setting of the Source property AL_CONE_OUTER_GAINHF. Range [AL_FALSE .. AL_TRUE] Default: AL_TRUE</summary>
AL_DIRECT_FILTER_GAINHF_AUTO = 0x2000A,
///<summary>If this Source property is set to AL_TRUE (its default value), the intensity of this Sources reflected sound is automatically attenuated according to source-listener distance and source directivity (as determined by the cone parameters). If it is AL_FALSE, the reflected sound is not attenuated according to distance and directivity. Range [AL_FALSE .. AL_TRUE] Default: AL_TRUE</summary>
AL_AUXILIARY_SEND_FILTER_GAIN_AUTO = 0x2000B,
///<summary>If this Source property is AL_TRUE (its default value), the intensity of this Sources reflected sound at high frequencies will be automatically attenuated according to the high-frequency source directivity as set by the AL_CONE_OUTER_GAINHF property. If this property is AL_FALSE, the Sources reflected sound is not filtered at all according to the Sources directivity. Range [AL_FALSE .. AL_TRUE] Default: AL_TRUE</summary>
AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO = 0x2000C,
}
#region Effect
public enum EfxEffectf : int
@ -293,11 +236,11 @@ namespace OpenTK.OpenAL.Enums
///<summary>EAXReverb effect parameters. Unit: (0) False, (1) True Range [AL_FALSE .. AL_TRUE] Default: AL_TRUE</summary>
AL_EAXREVERB_DECAY_HFLIMIT = 0x0017,
AL_EFFECT_FIRST_PARAMETER = 0x0000,
AL_EFFECT_LAST_PARAMETER = 0x8000,
AL_EFFECT_FIRST_PARAMETER = 0x0000,// deprecated?
AL_EFFECT_LAST_PARAMETER = 0x8000, // deprecated?
/// <summary>Used with the enum EfxEffectType as it's parameter.</summary>
AL_EFFECT_TYPE = 0x8001, // AL.BindEffect()
EffectType = 0x8001,
}
///<summary>Vocal morpher effect parameters.</summary>

View file

@ -1,12 +1,12 @@
Version History:
0.1 Initial
- Tokens AL_TRUE and AL_FALSE removed, created new type. see AL.Bool
Tokens ALC_TRUE and ALC_FALSE removed, created new type. see AL.Bool
v0.1-0.7
- Added AL.Null for convenience when working with C Manuals.
- Alut: The following functions are not bound/imported. Issue of undoing C malloc to prevent memory leaks.
"alutLoadMemoryFromFile, alutLoadMemoryFromFileImage, alutLoadMemoryHelloWorld, alutLoadMemoryWaveform"
Please use Alut.CreateBuffer* functions instead, which have similar functionality and return a Buffer Handle instead.
Disabled Alut.Sleep, rather use Thread.Sleep
- Alc: All functions imported, Bool and Double functions disabled.
- AL: Functions not imported:
alListeneri, alListener3i, alListeneriv
alGetListeneri, alGetListener3i, alGetListeneriv
@ -15,46 +15,26 @@ Version History:
alBufferf, alBufferfv, alBufferi, alBuffer3i, alBufferiv
imported, but currently disabled: alBuffer3f
alGetBufferf, alGetBuffer3f, alGetBufferfv, alGetBuffer3i, alGetBufferiv
0.2
- Largely improved documentation, found homes for previously orphaned Tokens.
- The Token AL_DATA is hidden now, as it returns a pointer to unmanaged memory
DopplerVelocity, ChannelMask are deprecated and marked.
The Token AL_DATA is hidden now, as it returns a pointer to unmanaged memory
where the buffer was located previously to calling AL.BufferData(). (It is usually freed after buffering)
- Added Function AL.GetErrorString()
- Added overloads for requesting/deleting a single buffer/source at a time.
- Added Vector3 overloads where applicable.
0.3 - breaks former written examples.
- Using a single changelog now, as the number of issues per file has significantly shrunk.
- Refactored -i -fv -3f functions to be overloads e.g AL.GetSource, AL.GetListener
- Added XRam Extension prototype. Untested, as it requires special hardware.
- Refactored extensively to match OpenTK naming conventions.
- Moved functions into overloads
- Removed all C prototype comments from AL/ALC/ALUT
- Documented Alc properly
- X-Ram Extension untested, as it requires special hardware. !verify parameters of GetBufferMode()!
- functions with ushort, uint, ulong marked as not CLS compliant.
0.4
- changed Alc enum GetString/GetStringList
- disabled Alut.Sleep, rather use Thread.Sleep
- DopplerVelocity, ChannelMask are deprecated and marked.
- functions with ushort, uint, ulong marked
v0.8
-added Efx tokens to AL/Alc enums.
-All Efx Effect functions imported. Filter and Auxiliary missing public methods.
0.5 vanilla complete
- Fix Alc.GetString( Enums.AlcGetStringList ) to terminate with 2 null, and split at 1 null
0.6
- Begun working on Efx
- X-Ram changed, must be tested properly. verify parameters of GetBufferMode()
0.7
- Efx continued.
- removed AL.Bool, replaced with System.Boolean. Seems to work so far.
Next Version:
Todo:
- EFX Extension
- Enums themselves require summaries (do EFX 1st)
- Identify: AL_FILTER_FIRST_PARAMETER, AL_FILTER_LAST_PARAMETER
AL_EFFECT_FIRST_PARAMETER, AL_EFFECT_LAST_PARAMETER
- use [MarshalAs(UnmanagedType)] attribute, instead of AL.Bool? investigate
- use [MarshalAs(UnmanagedType)] attribute, instead of bool? investigate
- AL.BindBuffer helper function ala GL.BindBuffer? (Wraps AL.Source, better consistency)
- change all "name" into "handle" to avoid confusion?

View file

@ -83,8 +83,7 @@ namespace OpenTK.OpenAL
{
Imported_GetBufferMode = (Delegate_GetBufferMode) Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("EAXGetBufferMode"),typeof(Delegate_GetBufferMode));
Imported_SetBufferMode = (Delegate_SetBufferMode) Marshal.GetDelegateForFunctionPointer(AL.GetProcAddress("EAXSetBufferMode"),typeof(Delegate_SetBufferMode));
}
catch (Exception e)
} catch ( Exception e )
{
Console.WriteLine("Attempt to marshal AL.GetProcAddress failed. " + e.ToString( ));
return;
@ -154,4 +153,5 @@ namespace OpenTK.OpenAL
#endregion Public Methods
}
}