From 80f4475e76be299e19ff88283d8f8aa02726506b Mon Sep 17 00:00:00 2001 From: skidau Date: Fri, 11 Jan 2013 14:03:09 +1100 Subject: [PATCH] Added a Dolby Pro Logic II (DPL2) decoder in the OpenAL backend. DPL2 audio is decoded to 5.1. Code adapted from ffdshow. Added an option in the DSP settings to disable the DPL2 decoder in case Dolphin incorrectly detects a 5.1 audio system. Updated the OpenAL files to OpenAL Soft 1.15.1 in the Windows build. Fixes issue 3023. --- Externals/OpenAL/Win32/soft_oal.dll | Bin 0 -> 402553 bytes Externals/OpenAL/Win64/soft_oal.dll | Bin 0 -> 417320 bytes Externals/OpenAL/include/al.h | 1110 +++++++------- Externals/OpenAL/include/alc.h | 258 ++-- Externals/OpenAL/include/alext.h | 355 +++++ Externals/OpenAL/include/efx-creative.h | 154 +- Externals/OpenAL/include/efx-presets.h | 402 +++++ Externals/OpenAL/include/efx.h | 1336 +++++++++-------- Source/Core/AudioCommon/AudioCommon.vcxproj | 10 +- .../AudioCommon/AudioCommon.vcxproj.filters | 2 + Source/Core/AudioCommon/CMakeLists.txt | 1 + Source/Core/AudioCommon/Src/DPL2Decoder.cpp | 397 +++++ Source/Core/AudioCommon/Src/DPL2Decoder.h | 24 + Source/Core/AudioCommon/Src/OpenALStream.cpp | 85 +- Source/Core/AudioCommon/Src/OpenALStream.h | 6 +- Source/Core/Core/Src/ConfigManager.cpp | 2 + Source/Core/Core/Src/CoreParameter.cpp | 2 + Source/Core/Core/Src/CoreParameter.h | 2 + Source/Core/DolphinWX/Src/ConfigMain.cpp | 16 + Source/Core/DolphinWX/Src/ConfigMain.h | 2 + 20 files changed, 2598 insertions(+), 1566 deletions(-) create mode 100644 Externals/OpenAL/Win32/soft_oal.dll create mode 100644 Externals/OpenAL/Win64/soft_oal.dll create mode 100644 Externals/OpenAL/include/alext.h create mode 100644 Externals/OpenAL/include/efx-presets.h create mode 100644 Source/Core/AudioCommon/Src/DPL2Decoder.cpp create mode 100644 Source/Core/AudioCommon/Src/DPL2Decoder.h diff --git a/Externals/OpenAL/Win32/soft_oal.dll b/Externals/OpenAL/Win32/soft_oal.dll new file mode 100644 index 0000000000000000000000000000000000000000..71ced6a21f8add6fdbd7571a81d4c4a36eca3418 GIT binary patch literal 402553 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

Q~J3$t#;CHi=*xB$_d4dW7 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 MLnl@7Vt>}+|Js^=IRF3v literal 0 HcmV?d00001 diff --git a/Externals/OpenAL/Win64/soft_oal.dll b/Externals/OpenAL/Win64/soft_oal.dll new file mode 100644 index 0000000000000000000000000000000000000000..b47ff952b78bf43db6b7d507b4d7a9b9f1d2d810 GIT binary patch literal 417320 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 literal 0 HcmV?d00001 diff --git a/Externals/OpenAL/include/al.h b/Externals/OpenAL/include/al.h index 1c2f95b318..413b38331e 100644 --- a/Externals/OpenAL/include/al.h +++ b/Externals/OpenAL/include/al.h @@ -1,21 +1,18 @@ #ifndef AL_AL_H #define AL_AL_H - - #if defined(__cplusplus) extern "C" { #endif -#if defined(_WIN32) && !defined(_XBOX) - /* _OPENAL32LIB is deprecated */ - #if defined(AL_BUILD_LIBRARY) || defined (_OPENAL32LIB) - #define AL_API __declspec(dllexport) - #else +#ifndef AL_API + #if defined(AL_LIBTYPE_STATIC) + #define AL_API + #elif defined(_WIN32) #define AL_API __declspec(dllimport) + #else + #define AL_API extern #endif -#else - #define AL_API extern #endif #if defined(_WIN32) @@ -24,20 +21,19 @@ extern "C" { #define AL_APIENTRY #endif -#if TARGET_OS_MAC - #pragma export on -#endif -/* The OPENAL, ALAPI, and ALAPIENTRY macros are deprecated, but are included for applications porting code - from AL 1.0 */ +/** Deprecated macro. */ #define OPENAL -#define ALAPI AL_API -#define ALAPIENTRY AL_APIENTRY +#define ALAPI AL_API +#define ALAPIENTRY AL_APIENTRY +#define AL_INVALID (-1) +#define AL_ILLEGAL_ENUM AL_INVALID_ENUM +#define AL_ILLEGAL_COMMAND AL_INVALID_OPERATION +/** Supported AL version. */ #define AL_VERSION_1_0 #define AL_VERSION_1_1 - /** 8-bit boolean */ typedef char ALboolean; @@ -45,7 +41,7 @@ typedef char ALboolean; typedef char ALchar; /** signed 8-bit 2's complement integer */ -typedef char ALbyte; +typedef signed char ALbyte; /** unsigned 8-bit integer */ typedef unsigned char ALubyte; @@ -80,650 +76,578 @@ typedef void ALvoid; /* Enumerant values begin at column 50. No tabs. */ -/* bad value */ -#define AL_INVALID -1 +/** "no distance model" or "no buffer" */ +#define AL_NONE 0 -#define AL_NONE 0 - -/* Boolean False. */ -#define AL_FALSE 0 +/** Boolean False. */ +#define AL_FALSE 0 /** Boolean True. */ -#define AL_TRUE 1 - -/** Indicate Source has relative coordinates. */ -#define AL_SOURCE_RELATIVE 0x202 - +#define AL_TRUE 1 /** - * Directional source, inner cone angle, in degrees. - * Range: [0-360] - * Default: 360 - */ -#define AL_CONE_INNER_ANGLE 0x1001 - -/** - * Directional source, outer cone angle, in degrees. - * Range: [0-360] - * Default: 360 - */ -#define AL_CONE_OUTER_ANGLE 0x1002 - -/** - * Specify the pitch to be applied, either at source, - * or on mixer results, at listener. - * Range: [0.5-2.0] - * Default: 1.0 - */ -#define AL_PITCH 0x1003 - -/** - * Specify the current location in three dimensional space. - * OpenAL, like OpenGL, uses a right handed coordinate system, - * where in a frontal default view X (thumb) points right, - * Y points up (index finger), and Z points towards the - * viewer/camera (middle finger). - * To switch from a left handed coordinate system, flip the - * sign on the Z coordinate. - * Listener position is always in the world coordinate system. - */ -#define AL_POSITION 0x1004 - -/** Specify the current direction. */ -#define AL_DIRECTION 0x1005 - -/** Specify the current velocity in three dimensional space. */ -#define AL_VELOCITY 0x1006 - -/** - * Indicate whether source is looping. - * Type: ALboolean? + * Relative source. + * Type: ALboolean * Range: [AL_TRUE, AL_FALSE] - * Default: FALSE. - */ -#define AL_LOOPING 0x1007 - -/** - * Indicate the buffer to provide sound samples. - * Type: ALuint. - * Range: any valid Buffer id. - */ -#define AL_BUFFER 0x1009 - -/** - * Indicate the gain (volume amplification) applied. - * Type: ALfloat. - * Range: ]0.0- ] - * 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.0 is meaningless with respect to a logarithmic - * scale; it is interpreted as zero volume - the channel - * is effectively disabled. - */ -#define AL_GAIN 0x100A - -/* - * Indicate minimum source attenuation - * Type: ALfloat - * Range: [0.0 - 1.0] + * Default: AL_FALSE * - * Logarthmic + * Specifies if the Source has relative coordinates. */ -#define AL_MIN_GAIN 0x100D +#define AL_SOURCE_RELATIVE 0x202 + /** - * Indicate maximum source attenuation - * Type: ALfloat - * Range: [0.0 - 1.0] + * Inner cone angle, in degrees. + * Type: ALint, ALfloat + * Range: [0 - 360] + * Default: 360 * - * Logarthmic + * The angle covered by the inner cone, where the source will not attenuate. */ -#define AL_MAX_GAIN 0x100E +#define AL_CONE_INNER_ANGLE 0x1001 /** - * Indicate listener orientation. + * Outer cone angle, in degrees. + * Range: [0 - 360] + * Default: 360 * - * at/up + * The angle covered by the outer cone, where the source will be fully + * attenuated. */ -#define AL_ORIENTATION 0x100F +#define AL_CONE_OUTER_ANGLE 0x1002 /** - * Specify the channel mask. (Creative) - * Type: ALuint - * Range: [0 - 255] - */ -#define AL_CHANNEL_MASK 0x3000 - - -/** - * Source state information. - */ -#define AL_SOURCE_STATE 0x1010 -#define AL_INITIAL 0x1011 -#define AL_PLAYING 0x1012 -#define AL_PAUSED 0x1013 -#define AL_STOPPED 0x1014 - -/** - * Buffer Queue params - */ -#define AL_BUFFERS_QUEUED 0x1015 -#define AL_BUFFERS_PROCESSED 0x1016 - -/** - * Source buffer position information - */ -#define AL_SEC_OFFSET 0x1024 -#define AL_SAMPLE_OFFSET 0x1025 -#define AL_BYTE_OFFSET 0x1026 - -/* - * Source type (Static, Streaming or undetermined) - * Source is Static if a Buffer has been attached using AL_BUFFER - * Source is Streaming if one or more Buffers have been attached using alSourceQueueBuffers - * Source is undetermined when it has the NULL buffer attached - */ -#define AL_SOURCE_TYPE 0x1027 -#define AL_STATIC 0x1028 -#define AL_STREAMING 0x1029 -#define AL_UNDETERMINED 0x1030 - -/** Sound samples: format specifier. */ -#define AL_FORMAT_MONO8 0x1100 -#define AL_FORMAT_MONO16 0x1101 -#define AL_FORMAT_STEREO8 0x1102 -#define AL_FORMAT_STEREO16 0x1103 - -/** - * source specific reference distance - * Type: ALfloat - * Range: 0.0 - +inf + * Source pitch. + * Type: ALfloat + * Range: [0.5 - 2.0] + * Default: 1.0 * - * At 0.0, no distance attenuation occurs. Default is - * 1.0. + * A multiplier for the frequency (sample rate) of the source's buffer. */ -#define AL_REFERENCE_DISTANCE 0x1020 +#define AL_PITCH 0x1003 /** - * source specific rolloff factor - * Type: ALfloat - * Range: 0.0 - +inf + * Source or listener position. + * Type: ALfloat[3], ALint[3] + * Default: {0, 0, 0} * + * The source or listener location in three dimensional space. + * + * OpenAL, like OpenGL, uses a right handed coordinate system, where in a + * frontal default view X (thumb) points right, Y points up (index finger), and + * Z points towards the viewer/camera (middle finger). + * + * To switch from a left handed coordinate system, flip the sign on the Z + * coordinate. */ -#define AL_ROLLOFF_FACTOR 0x1021 +#define AL_POSITION 0x1004 /** - * Directional source, outer cone gain. + * Source direction. + * Type: ALfloat[3], ALint[3] + * Default: {0, 0, 0} * - * Default: 0.0 - * Range: [0.0 - 1.0] - * Logarithmic + * Specifies the current direction in local space. + * A zero-length vector specifies an omni-directional source (cone is ignored). */ -#define AL_CONE_OUTER_GAIN 0x1022 +#define AL_DIRECTION 0x1005 /** - * Indicate distance above which sources are not - * attenuated using the inverse clamped distance model. + * Source or listener velocity. + * Type: ALfloat[3], ALint[3] + * Default: {0, 0, 0} * + * Specifies the current velocity in local space. + */ +#define AL_VELOCITY 0x1006 + +/** + * Source looping. + * Type: ALboolean + * Range: [AL_TRUE, AL_FALSE] + * Default: AL_FALSE + * + * Specifies whether source is looping. + */ +#define AL_LOOPING 0x1007 + +/** + * Source buffer. + * Type: ALuint + * Range: any valid Buffer. + * + * Specifies the buffer to provide sound samples. + */ +#define AL_BUFFER 0x1009 + +/** + * Source or listener gain. + * Type: ALfloat + * Range: [0.0 - ] + * + * A value of 1.0 means unattenuated. Each division by 2 equals an attenuation + * of about -6dB. Each multiplicaton by 2 equals an amplification of about + * +6dB. + * + * A value of 0.0 is meaningless with respect to a logarithmic scale; it is + * silent. + */ +#define AL_GAIN 0x100A + +/** + * Minimum source gain. + * Type: ALfloat + * Range: [0.0 - 1.0] + * + * The minimum gain allowed for a source, after distance and cone attenation is + * applied (if applicable). + */ +#define AL_MIN_GAIN 0x100D + +/** + * Maximum source gain. + * Type: ALfloat + * Range: [0.0 - 1.0] + * + * The maximum gain allowed for a source, after distance and cone attenation is + * applied (if applicable). + */ +#define AL_MAX_GAIN 0x100E + +/** + * Listener orientation. + * Type: ALfloat[6] + * Default: {0.0, 0.0, -1.0, 0.0, 1.0, 0.0} + * + * Effectively two three dimensional vectors. The first vector is the front (or + * "at") and the second is the top (or "up"). + * + * Both vectors are in local space. + */ +#define AL_ORIENTATION 0x100F + +/** + * Source state (query only). + * Type: ALint + * Range: [AL_INITIAL, AL_PLAYING, AL_PAUSED, AL_STOPPED] + */ +#define AL_SOURCE_STATE 0x1010 + +/** Source state value. */ +#define AL_INITIAL 0x1011 +#define AL_PLAYING 0x1012 +#define AL_PAUSED 0x1013 +#define AL_STOPPED 0x1014 + +/** + * Source Buffer Queue size (query only). + * Type: ALint + * + * The number of buffers queued using alSourceQueueBuffers, minus the buffers + * removed with alSourceUnqueueBuffers. + */ +#define AL_BUFFERS_QUEUED 0x1015 + +/** + * Source Buffer Queue processed count (query only). + * Type: ALint + * + * The number of queued buffers that have been fully processed, and can be + * removed with alSourceUnqueueBuffers. + * + * Looping sources will never fully process buffers because they will be set to + * play again for when the source loops. + */ +#define AL_BUFFERS_PROCESSED 0x1016 + +/** + * Source reference distance. + * Type: ALfloat + * Range: [0.0 - ] + * Default: 1.0 + * + * The distance in units that no attenuation occurs. + * + * At 0.0, no distance attenuation ever occurs on non-linear attenuation models. + */ +#define AL_REFERENCE_DISTANCE 0x1020 + +/** + * Source rolloff factor. + * Type: ALfloat + * Range: [0.0 - ] + * Default: 1.0 + * + * Multiplier to exaggerate or diminish distance attenuation. + * + * At 0.0, no distance attenuation ever occurs. + */ +#define AL_ROLLOFF_FACTOR 0x1021 + +/** + * Outer cone gain. + * Type: ALfloat + * Range: [0.0 - 1.0] + * Default: 0.0 + * + * The gain attenuation applied when the listener is outside of the source's + * outer cone. + */ +#define AL_CONE_OUTER_GAIN 0x1022 + +/** + * Source maximum distance. + * Type: ALfloat + * Range: [0.0 - ] * Default: +inf - * Type: ALfloat - * Range: 0.0 - +inf + * + * The distance above which the source is not attenuated any further with a + * clamped distance model, or where attenuation reaches 0.0 gain for linear + * distance models with a default rolloff factor. */ -#define AL_MAX_DISTANCE 0x1023 +#define AL_MAX_DISTANCE 0x1023 -/** - * Sound samples: 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. +/** Source buffer position, in seconds */ +#define AL_SEC_OFFSET 0x1024 +/** Source buffer position, in sample frames */ +#define AL_SAMPLE_OFFSET 0x1025 +/** Source buffer position, in bytes */ +#define AL_BYTE_OFFSET 0x1026 + +/** + * Source type (query only). + * Type: ALint + * Range: [AL_STATIC, AL_STREAMING, AL_UNDETERMINED] + * + * A Source is Static if a Buffer has been attached using AL_BUFFER. + * + * A Source is Streaming if one or more Buffers have been attached using + * alSourceQueueBuffers. + * + * A Source is Undetermined when it has the NULL buffer attached using + * AL_BUFFER. */ -#define AL_FREQUENCY 0x2001 -#define AL_BITS 0x2002 -#define AL_CHANNELS 0x2003 -#define AL_SIZE 0x2004 +#define AL_SOURCE_TYPE 0x1027 + +/** Source type value. */ +#define AL_STATIC 0x1028 +#define AL_STREAMING 0x1029 +#define AL_UNDETERMINED 0x1030 + +/** Buffer format specifier. */ +#define AL_FORMAT_MONO8 0x1100 +#define AL_FORMAT_MONO16 0x1101 +#define AL_FORMAT_STEREO8 0x1102 +#define AL_FORMAT_STEREO16 0x1103 + +/** Buffer frequency (query only). */ +#define AL_FREQUENCY 0x2001 +/** Buffer bits per sample (query only). */ +#define AL_BITS 0x2002 +/** Buffer channel count (query only). */ +#define AL_CHANNELS 0x2003 +/** Buffer data size (query only). */ +#define AL_SIZE 0x2004 /** * Buffer state. * - * Not supported for public use (yet). + * Not for public use. */ -#define AL_UNUSED 0x2010 -#define AL_PENDING 0x2011 -#define AL_PROCESSED 0x2012 +#define AL_UNUSED 0x2010 +#define AL_PENDING 0x2011 +#define AL_PROCESSED 0x2012 -/** Errors: No Error. */ -#define AL_NO_ERROR AL_FALSE +/** No error. */ +#define AL_NO_ERROR 0 -/** - * Invalid Name paramater passed to AL call. - */ -#define AL_INVALID_NAME 0xA001 +/** Invalid name paramater passed to AL call. */ +#define AL_INVALID_NAME 0xA001 -/** - * Invalid parameter passed to AL call. - */ -#define AL_ILLEGAL_ENUM 0xA002 -#define AL_INVALID_ENUM 0xA002 +/** Invalid enum parameter passed to AL call. */ +#define AL_INVALID_ENUM 0xA002 -/** - * Invalid enum parameter value. - */ -#define AL_INVALID_VALUE 0xA003 +/** Invalid value parameter passed to AL call. */ +#define AL_INVALID_VALUE 0xA003 -/** - * Illegal call. - */ -#define AL_ILLEGAL_COMMAND 0xA004 -#define AL_INVALID_OPERATION 0xA004 +/** Illegal AL call. */ +#define AL_INVALID_OPERATION 0xA004 - -/** - * No mojo. - */ -#define AL_OUT_OF_MEMORY 0xA005 +/** Not enough memory. */ +#define AL_OUT_OF_MEMORY 0xA005 -/** Context strings: Vendor Name. */ -#define AL_VENDOR 0xB001 -#define AL_VERSION 0xB002 -#define AL_RENDERER 0xB003 -#define AL_EXTENSIONS 0xB004 +/** Context string: Vendor ID. */ +#define AL_VENDOR 0xB001 +/** Context string: Version. */ +#define AL_VERSION 0xB002 +/** Context string: Renderer ID. */ +#define AL_RENDERER 0xB003 +/** Context string: Space-separated extension list. */ +#define AL_EXTENSIONS 0xB004 -/** Global tweakage. */ /** - * Doppler scale. Default 1.0 - */ -#define AL_DOPPLER_FACTOR 0xC000 - -/** - * Tweaks speed of propagation. - */ -#define AL_DOPPLER_VELOCITY 0xC001 - -/** - * Speed of Sound in units per second - */ -#define AL_SPEED_OF_SOUND 0xC003 - -/** - * Distance models + * Doppler scale. + * Type: ALfloat + * Range: [0.0 - ] + * Default: 1.0 * - * used in conjunction with DistanceModel + * Scale for source and listener velocities. + */ +#define AL_DOPPLER_FACTOR 0xC000 +AL_API void AL_APIENTRY alDopplerFactor(ALfloat value); + +/** + * Doppler velocity (deprecated). * - * implicit: NONE, which disances distance attenuation. + * A multiplier applied to the Speed of Sound. */ -#define AL_DISTANCE_MODEL 0xD000 -#define AL_INVERSE_DISTANCE 0xD001 -#define AL_INVERSE_DISTANCE_CLAMPED 0xD002 -#define AL_LINEAR_DISTANCE 0xD003 -#define AL_LINEAR_DISTANCE_CLAMPED 0xD004 -#define AL_EXPONENT_DISTANCE 0xD005 -#define AL_EXPONENT_DISTANCE_CLAMPED 0xD006 +#define AL_DOPPLER_VELOCITY 0xC001 +AL_API void AL_APIENTRY alDopplerVelocity(ALfloat value); - -#if !defined(AL_NO_PROTOTYPES) - -/* - * Renderer State management +/** + * Speed of Sound, in units per second. + * Type: ALfloat + * Range: [0.0001 - ] + * Default: 343.3 + * + * The speed at which sound waves are assumed to travel, when calculating the + * doppler effect. */ -AL_API void AL_APIENTRY alEnable( ALenum capability ); +#define AL_SPEED_OF_SOUND 0xC003 +AL_API void AL_APIENTRY alSpeedOfSound(ALfloat value); -AL_API void AL_APIENTRY alDisable( ALenum capability ); - -AL_API ALboolean AL_APIENTRY alIsEnabled( ALenum capability ); - - -/* - * State retrieval +/** + * Distance attenuation model. + * Type: ALint + * Range: [AL_NONE, AL_INVERSE_DISTANCE, AL_INVERSE_DISTANCE_CLAMPED, + * AL_LINEAR_DISTANCE, AL_LINEAR_DISTANCE_CLAMPED, + * AL_EXPONENT_DISTANCE, AL_EXPONENT_DISTANCE_CLAMPED] + * Default: AL_INVERSE_DISTANCE_CLAMPED + * + * The model by which sources attenuate with distance. + * + * None - No distance attenuation. + * Inverse - Doubling the distance halves the source gain. + * Linear - Linear gain scaling between the reference and max distances. + * Exponent - Exponential gain dropoff. + * + * Clamped variations work like the non-clamped counterparts, except the + * distance calculated is clamped between the reference and max distances. */ -AL_API const ALchar* AL_APIENTRY alGetString( ALenum param ); +#define AL_DISTANCE_MODEL 0xD000 +AL_API void AL_APIENTRY alDistanceModel(ALenum distanceModel); -AL_API void AL_APIENTRY alGetBooleanv( ALenum param, ALboolean* data ); +/** Distance model value. */ +#define AL_INVERSE_DISTANCE 0xD001 +#define AL_INVERSE_DISTANCE_CLAMPED 0xD002 +#define AL_LINEAR_DISTANCE 0xD003 +#define AL_LINEAR_DISTANCE_CLAMPED 0xD004 +#define AL_EXPONENT_DISTANCE 0xD005 +#define AL_EXPONENT_DISTANCE_CLAMPED 0xD006 -AL_API void AL_APIENTRY alGetIntegerv( ALenum param, ALint* data ); +/** Renderer State management. */ +AL_API void AL_APIENTRY alEnable(ALenum capability); +AL_API void AL_APIENTRY alDisable(ALenum capability); +AL_API ALboolean AL_APIENTRY alIsEnabled(ALenum capability); -AL_API void AL_APIENTRY alGetFloatv( ALenum param, ALfloat* data ); +/** State retrieval. */ +AL_API const ALchar* AL_APIENTRY alGetString(ALenum param); +AL_API void AL_APIENTRY alGetBooleanv(ALenum param, ALboolean *values); +AL_API void AL_APIENTRY alGetIntegerv(ALenum param, ALint *values); +AL_API void AL_APIENTRY alGetFloatv(ALenum param, ALfloat *values); +AL_API void AL_APIENTRY alGetDoublev(ALenum param, ALdouble *values); +AL_API ALboolean AL_APIENTRY alGetBoolean(ALenum param); +AL_API ALint AL_APIENTRY alGetInteger(ALenum param); +AL_API ALfloat AL_APIENTRY alGetFloat(ALenum param); +AL_API ALdouble AL_APIENTRY alGetDouble(ALenum param); -AL_API void AL_APIENTRY alGetDoublev( ALenum param, ALdouble* data ); - -AL_API ALboolean AL_APIENTRY alGetBoolean( ALenum param ); - -AL_API ALint AL_APIENTRY alGetInteger( ALenum param ); - -AL_API ALfloat AL_APIENTRY alGetFloat( ALenum param ); - -AL_API ALdouble AL_APIENTRY alGetDouble( ALenum param ); - - -/* - * Error support. - * Obtain the most recent error generated in the AL state machine. +/** + * Error retrieval. + * + * Obtain the first error generated in the AL context since the last check. */ -AL_API ALenum AL_APIENTRY alGetError( void ); +AL_API ALenum AL_APIENTRY alGetError(void); - -/* +/** * Extension support. - * Query for the presence of an extension, and obtain any appropriate - * function pointers and enum values. - */ -AL_API ALboolean AL_APIENTRY alIsExtensionPresent( const ALchar* extname ); - -AL_API void* AL_APIENTRY alGetProcAddress( const ALchar* fname ); - -AL_API ALenum AL_APIENTRY alGetEnumValue( const ALchar* ename ); - - -/* - * LISTENER - * Listener represents the location and orientation of the - * 'user' in 3D-space. * - * Properties include: - - * - * Gain AL_GAIN ALfloat - * Position AL_POSITION ALfloat[3] - * Velocity AL_VELOCITY ALfloat[3] - * Orientation AL_ORIENTATION ALfloat[6] (Forward then Up vectors) -*/ - -/* - * Set Listener parameters + * Query for the presence of an extension, and obtain any appropriate function + * pointers and enum values. */ -AL_API void AL_APIENTRY alListenerf( ALenum param, ALfloat value ); - -AL_API void AL_APIENTRY alListener3f( ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 ); - -AL_API void AL_APIENTRY alListenerfv( ALenum param, const ALfloat* values ); - -AL_API void AL_APIENTRY alListeneri( ALenum param, ALint value ); - -AL_API void AL_APIENTRY alListener3i( ALenum param, ALint value1, ALint value2, ALint value3 ); - -AL_API void AL_APIENTRY alListeneriv( ALenum param, const ALint* values ); - -/* - * Get Listener parameters - */ -AL_API void AL_APIENTRY alGetListenerf( ALenum param, ALfloat* value ); - -AL_API void AL_APIENTRY alGetListener3f( ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3 ); - -AL_API void AL_APIENTRY alGetListenerfv( ALenum param, ALfloat* values ); - -AL_API void AL_APIENTRY alGetListeneri( ALenum param, ALint* value ); - -AL_API void AL_APIENTRY alGetListener3i( ALenum param, ALint *value1, ALint *value2, ALint *value3 ); - -AL_API void AL_APIENTRY alGetListeneriv( ALenum param, ALint* values ); - - -/** - * SOURCE - * Sources represent individual sound objects in 3D-space. - * Sources take the PCM data provided in the specified Buffer, - * apply Source-specific modifications, and then - * submit them to be mixed according to spatial arrangement etc. - * - * Properties include: - - * - * Gain AL_GAIN ALfloat - * Min Gain AL_MIN_GAIN ALfloat - * Max Gain AL_MAX_GAIN ALfloat - * Position AL_POSITION ALfloat[3] - * Velocity AL_VELOCITY ALfloat[3] - * Direction AL_DIRECTION ALfloat[3] - * Head Relative Mode AL_SOURCE_RELATIVE ALint (AL_TRUE or AL_FALSE) - * Reference Distance AL_REFERENCE_DISTANCE ALfloat - * Max Distance AL_MAX_DISTANCE ALfloat - * RollOff Factor AL_ROLLOFF_FACTOR ALfloat - * Inner Angle AL_CONE_INNER_ANGLE ALint or ALfloat - * Outer Angle AL_CONE_OUTER_ANGLE ALint or ALfloat - * Cone Outer Gain AL_CONE_OUTER_GAIN ALint or ALfloat - * Pitch AL_PITCH ALfloat - * Looping AL_LOOPING ALint (AL_TRUE or AL_FALSE) - * MS Offset AL_MSEC_OFFSET ALint or ALfloat - * Byte Offset AL_BYTE_OFFSET ALint or ALfloat - * Sample Offset AL_SAMPLE_OFFSET ALint or ALfloat - * Attached Buffer AL_BUFFER ALint - * State (Query only) AL_SOURCE_STATE ALint - * Buffers Queued (Query only) AL_BUFFERS_QUEUED ALint - * Buffers Processed (Query only) AL_BUFFERS_PROCESSED ALint - */ - -/* Create Source objects */ -AL_API void AL_APIENTRY alGenSources( ALsizei n, ALuint* sources ); - -/* Delete Source objects */ -AL_API void AL_APIENTRY alDeleteSources( ALsizei n, const ALuint* sources ); - -/* Verify a handle is a valid Source */ -AL_API ALboolean AL_APIENTRY alIsSource( ALuint sid ); - -/* - * Set Source parameters - */ -AL_API void AL_APIENTRY alSourcef( ALuint sid, ALenum param, ALfloat value ); - -AL_API void AL_APIENTRY alSource3f( ALuint sid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 ); - -AL_API void AL_APIENTRY alSourcefv( ALuint sid, ALenum param, const ALfloat* values ); - -AL_API void AL_APIENTRY alSourcei( ALuint sid, ALenum param, ALint value ); - -AL_API void AL_APIENTRY alSource3i( ALuint sid, ALenum param, ALint value1, ALint value2, ALint value3 ); - -AL_API void AL_APIENTRY alSourceiv( ALuint sid, ALenum param, const ALint* values ); - -/* - * Get Source parameters - */ -AL_API void AL_APIENTRY alGetSourcef( ALuint sid, ALenum param, ALfloat* value ); - -AL_API void AL_APIENTRY alGetSource3f( ALuint sid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3); - -AL_API void AL_APIENTRY alGetSourcefv( ALuint sid, ALenum param, ALfloat* values ); - -AL_API void AL_APIENTRY alGetSourcei( ALuint sid, ALenum param, ALint* value ); - -AL_API void AL_APIENTRY alGetSource3i( ALuint sid, ALenum param, ALint* value1, ALint* value2, ALint* value3); - -AL_API void AL_APIENTRY alGetSourceiv( ALuint sid, ALenum param, ALint* values ); - - -/* - * Source vector based playback calls - */ - -/* Play, replay, or resume (if paused) a list of Sources */ -AL_API void AL_APIENTRY alSourcePlayv( ALsizei ns, const ALuint *sids ); - -/* Stop a list of Sources */ -AL_API void AL_APIENTRY alSourceStopv( ALsizei ns, const ALuint *sids ); - -/* Rewind a list of Sources */ -AL_API void AL_APIENTRY alSourceRewindv( ALsizei ns, const ALuint *sids ); - -/* Pause a list of Sources */ -AL_API void AL_APIENTRY alSourcePausev( ALsizei ns, const ALuint *sids ); - -/* - * Source based playback calls - */ - -/* Play, replay, or resume a Source */ -AL_API void AL_APIENTRY alSourcePlay( ALuint sid ); - -/* Stop a Source */ -AL_API void AL_APIENTRY alSourceStop( ALuint sid ); - -/* Rewind a Source (set playback postiton to beginning) */ -AL_API void AL_APIENTRY alSourceRewind( ALuint sid ); - -/* Pause a Source */ -AL_API void AL_APIENTRY alSourcePause( ALuint sid ); - -/* - * Source Queuing - */ -AL_API void AL_APIENTRY alSourceQueueBuffers( ALuint sid, ALsizei numEntries, const ALuint *bids ); - -AL_API void AL_APIENTRY alSourceUnqueueBuffers( ALuint sid, ALsizei numEntries, ALuint *bids ); - - -/** - * BUFFER - * Buffer objects are storage space for sample data. - * Buffers are referred to by Sources. One Buffer can be used - * by multiple Sources. - * - * Properties include: - - * - * Frequency (Query only) AL_FREQUENCY ALint - * Size (Query only) AL_SIZE ALint - * Bits (Query only) AL_BITS ALint - * Channels (Query only) AL_CHANNELS ALint - */ - -/* Create Buffer objects */ -AL_API void AL_APIENTRY alGenBuffers( ALsizei n, ALuint* buffers ); - -/* Delete Buffer objects */ -AL_API void AL_APIENTRY alDeleteBuffers( ALsizei n, const ALuint* buffers ); - -/* Verify a handle is a valid Buffer */ -AL_API ALboolean AL_APIENTRY alIsBuffer( ALuint bid ); - -/* Specify the data to be copied into a buffer */ -AL_API void AL_APIENTRY alBufferData( ALuint bid, ALenum format, const ALvoid* data, ALsizei size, ALsizei freq ); - -/* - * Set Buffer parameters - */ -AL_API void AL_APIENTRY alBufferf( ALuint bid, ALenum param, ALfloat value ); - -AL_API void AL_APIENTRY alBuffer3f( ALuint bid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 ); - -AL_API void AL_APIENTRY alBufferfv( ALuint bid, ALenum param, const ALfloat* values ); - -AL_API void AL_APIENTRY alBufferi( ALuint bid, ALenum param, ALint value ); - -AL_API void AL_APIENTRY alBuffer3i( ALuint bid, ALenum param, ALint value1, ALint value2, ALint value3 ); - -AL_API void AL_APIENTRY alBufferiv( ALuint bid, ALenum param, const ALint* values ); - -/* - * Get Buffer parameters - */ -AL_API void AL_APIENTRY alGetBufferf( ALuint bid, ALenum param, ALfloat* value ); - -AL_API void AL_APIENTRY alGetBuffer3f( ALuint bid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3); - -AL_API void AL_APIENTRY alGetBufferfv( ALuint bid, ALenum param, ALfloat* values ); - -AL_API void AL_APIENTRY alGetBufferi( ALuint bid, ALenum param, ALint* value ); - -AL_API void AL_APIENTRY alGetBuffer3i( ALuint bid, ALenum param, ALint* value1, ALint* value2, ALint* value3); - -AL_API void AL_APIENTRY alGetBufferiv( ALuint bid, ALenum param, ALint* values ); - - -/* - * Global Parameters - */ -AL_API void AL_APIENTRY alDopplerFactor( ALfloat value ); - -AL_API void AL_APIENTRY alDopplerVelocity( ALfloat value ); - -AL_API void AL_APIENTRY alSpeedOfSound( ALfloat value ); - -AL_API void AL_APIENTRY alDistanceModel( ALenum distanceModel ); - -#else /* AL_NO_PROTOTYPES */ - -typedef void (AL_APIENTRY *LPALENABLE)( ALenum capability ); -typedef void (AL_APIENTRY *LPALDISABLE)( ALenum capability ); -typedef ALboolean (AL_APIENTRY *LPALISENABLED)( ALenum capability ); -typedef const ALchar* (AL_APIENTRY *LPALGETSTRING)( ALenum param ); -typedef void (AL_APIENTRY *LPALGETBOOLEANV)( ALenum param, ALboolean* data ); -typedef void (AL_APIENTRY *LPALGETINTEGERV)( ALenum param, ALint* data ); -typedef void (AL_APIENTRY *LPALGETFLOATV)( ALenum param, ALfloat* data ); -typedef void (AL_APIENTRY *LPALGETDOUBLEV)( ALenum param, ALdouble* data ); -typedef ALboolean (AL_APIENTRY *LPALGETBOOLEAN)( ALenum param ); -typedef ALint (AL_APIENTRY *LPALGETINTEGER)( ALenum param ); -typedef ALfloat (AL_APIENTRY *LPALGETFLOAT)( ALenum param ); -typedef ALdouble (AL_APIENTRY *LPALGETDOUBLE)( ALenum param ); -typedef ALenum (AL_APIENTRY *LPALGETERROR)( void ); -typedef ALboolean (AL_APIENTRY *LPALISEXTENSIONPRESENT)(const ALchar* extname ); -typedef void* (AL_APIENTRY *LPALGETPROCADDRESS)( const ALchar* fname ); -typedef ALenum (AL_APIENTRY *LPALGETENUMVALUE)( const ALchar* ename ); -typedef void (AL_APIENTRY *LPALLISTENERF)( ALenum param, ALfloat value ); -typedef void (AL_APIENTRY *LPALLISTENER3F)( ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 ); -typedef void (AL_APIENTRY *LPALLISTENERFV)( ALenum param, const ALfloat* values ); -typedef void (AL_APIENTRY *LPALLISTENERI)( ALenum param, ALint value ); -typedef void (AL_APIENTRY *LPALLISTENER3I)( ALenum param, ALint value1, ALint value2, ALint value3 ); -typedef void (AL_APIENTRY *LPALLISTENERIV)( ALenum param, const ALint* values ); -typedef void (AL_APIENTRY *LPALGETLISTENERF)( ALenum param, ALfloat* value ); -typedef void (AL_APIENTRY *LPALGETLISTENER3F)( ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3 ); -typedef void (AL_APIENTRY *LPALGETLISTENERFV)( ALenum param, ALfloat* values ); -typedef void (AL_APIENTRY *LPALGETLISTENERI)( ALenum param, ALint* value ); -typedef void (AL_APIENTRY *LPALGETLISTENER3I)( ALenum param, ALint *value1, ALint *value2, ALint *value3 ); -typedef void (AL_APIENTRY *LPALGETLISTENERIV)( ALenum param, ALint* values ); -typedef void (AL_APIENTRY *LPALGENSOURCES)( ALsizei n, ALuint* sources ); -typedef void (AL_APIENTRY *LPALDELETESOURCES)( ALsizei n, const ALuint* sources ); -typedef ALboolean (AL_APIENTRY *LPALISSOURCE)( ALuint sid ); -typedef void (AL_APIENTRY *LPALSOURCEF)( ALuint sid, ALenum param, ALfloat value); -typedef void (AL_APIENTRY *LPALSOURCE3F)( ALuint sid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 ); -typedef void (AL_APIENTRY *LPALSOURCEFV)( ALuint sid, ALenum param, const ALfloat* values ); -typedef void (AL_APIENTRY *LPALSOURCEI)( ALuint sid, ALenum param, ALint value); -typedef void (AL_APIENTRY *LPALSOURCE3I)( ALuint sid, ALenum param, ALint value1, ALint value2, ALint value3 ); -typedef void (AL_APIENTRY *LPALSOURCEIV)( ALuint sid, ALenum param, const ALint* values ); -typedef void (AL_APIENTRY *LPALGETSOURCEF)( ALuint sid, ALenum param, ALfloat* value ); -typedef void (AL_APIENTRY *LPALGETSOURCE3F)( ALuint sid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3); -typedef void (AL_APIENTRY *LPALGETSOURCEFV)( ALuint sid, ALenum param, ALfloat* values ); -typedef void (AL_APIENTRY *LPALGETSOURCEI)( ALuint sid, ALenum param, ALint* value ); -typedef void (AL_APIENTRY *LPALGETSOURCE3I)( ALuint sid, ALenum param, ALint* value1, ALint* value2, ALint* value3); -typedef void (AL_APIENTRY *LPALGETSOURCEIV)( ALuint sid, ALenum param, ALint* values ); -typedef void (AL_APIENTRY *LPALSOURCEPLAYV)( ALsizei ns, const ALuint *sids ); -typedef void (AL_APIENTRY *LPALSOURCESTOPV)( ALsizei ns, const ALuint *sids ); -typedef void (AL_APIENTRY *LPALSOURCEREWINDV)( ALsizei ns, const ALuint *sids ); -typedef void (AL_APIENTRY *LPALSOURCEPAUSEV)( ALsizei ns, const ALuint *sids ); -typedef void (AL_APIENTRY *LPALSOURCEPLAY)( ALuint sid ); -typedef void (AL_APIENTRY *LPALSOURCESTOP)( ALuint sid ); -typedef void (AL_APIENTRY *LPALSOURCEREWIND)( ALuint sid ); -typedef void (AL_APIENTRY *LPALSOURCEPAUSE)( ALuint sid ); -typedef void (AL_APIENTRY *LPALSOURCEQUEUEBUFFERS)(ALuint sid, ALsizei numEntries, const ALuint *bids ); -typedef void (AL_APIENTRY *LPALSOURCEUNQUEUEBUFFERS)(ALuint sid, ALsizei numEntries, ALuint *bids ); -typedef void (AL_APIENTRY *LPALGENBUFFERS)( ALsizei n, ALuint* buffers ); -typedef void (AL_APIENTRY *LPALDELETEBUFFERS)( ALsizei n, const ALuint* buffers ); -typedef ALboolean (AL_APIENTRY *LPALISBUFFER)( ALuint bid ); -typedef void (AL_APIENTRY *LPALBUFFERDATA)( ALuint bid, ALenum format, const ALvoid* data, ALsizei size, ALsizei freq ); -typedef void (AL_APIENTRY *LPALBUFFERF)( ALuint bid, ALenum param, ALfloat value); -typedef void (AL_APIENTRY *LPALBUFFER3F)( ALuint bid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 ); -typedef void (AL_APIENTRY *LPALBUFFERFV)( ALuint bid, ALenum param, const ALfloat* values ); -typedef void (AL_APIENTRY *LPALBUFFERI)( ALuint bid, ALenum param, ALint value); -typedef void (AL_APIENTRY *LPALBUFFER3I)( ALuint bid, ALenum param, ALint value1, ALint value2, ALint value3 ); -typedef void (AL_APIENTRY *LPALBUFFERIV)( ALuint bid, ALenum param, const ALint* values ); -typedef void (AL_APIENTRY *LPALGETBUFFERF)( ALuint bid, ALenum param, ALfloat* value ); -typedef void (AL_APIENTRY *LPALGETBUFFER3F)( ALuint bid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3); -typedef void (AL_APIENTRY *LPALGETBUFFERFV)( ALuint bid, ALenum param, ALfloat* values ); -typedef void (AL_APIENTRY *LPALGETBUFFERI)( ALuint bid, ALenum param, ALint* value ); -typedef void (AL_APIENTRY *LPALGETBUFFER3I)( ALuint bid, ALenum param, ALint* value1, ALint* value2, ALint* value3); -typedef void (AL_APIENTRY *LPALGETBUFFERIV)( ALuint bid, ALenum param, ALint* values ); -typedef void (AL_APIENTRY *LPALDOPPLERFACTOR)( ALfloat value ); -typedef void (AL_APIENTRY *LPALDOPPLERVELOCITY)( ALfloat value ); -typedef void (AL_APIENTRY *LPALSPEEDOFSOUND)( ALfloat value ); -typedef void (AL_APIENTRY *LPALDISTANCEMODEL)( ALenum distanceModel ); - -#endif /* AL_NO_PROTOTYPES */ - -#if TARGET_OS_MAC - #pragma export off -#endif +AL_API ALboolean AL_APIENTRY alIsExtensionPresent(const ALchar *extname); +AL_API void* AL_APIENTRY alGetProcAddress(const ALchar *fname); +AL_API ALenum AL_APIENTRY alGetEnumValue(const ALchar *ename); + + +/** Set Listener parameters */ +AL_API void AL_APIENTRY alListenerf(ALenum param, ALfloat value); +AL_API void AL_APIENTRY alListener3f(ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); +AL_API void AL_APIENTRY alListenerfv(ALenum param, const ALfloat *values); +AL_API void AL_APIENTRY alListeneri(ALenum param, ALint value); +AL_API void AL_APIENTRY alListener3i(ALenum param, ALint value1, ALint value2, ALint value3); +AL_API void AL_APIENTRY alListeneriv(ALenum param, const ALint *values); + +/** Get Listener parameters */ +AL_API void AL_APIENTRY alGetListenerf(ALenum param, ALfloat *value); +AL_API void AL_APIENTRY alGetListener3f(ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); +AL_API void AL_APIENTRY alGetListenerfv(ALenum param, ALfloat *values); +AL_API void AL_APIENTRY alGetListeneri(ALenum param, ALint *value); +AL_API void AL_APIENTRY alGetListener3i(ALenum param, ALint *value1, ALint *value2, ALint *value3); +AL_API void AL_APIENTRY alGetListeneriv(ALenum param, ALint *values); + + +/** Create Source objects. */ +AL_API void AL_APIENTRY alGenSources(ALsizei n, ALuint *sources); +/** Delete Source objects. */ +AL_API void AL_APIENTRY alDeleteSources(ALsizei n, const ALuint *sources); +/** Verify a handle is a valid Source. */ +AL_API ALboolean AL_APIENTRY alIsSource(ALuint source); + +/** Set Source parameters. */ +AL_API void AL_APIENTRY alSourcef(ALuint source, ALenum param, ALfloat value); +AL_API void AL_APIENTRY alSource3f(ALuint source, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); +AL_API void AL_APIENTRY alSourcefv(ALuint source, ALenum param, const ALfloat *values); +AL_API void AL_APIENTRY alSourcei(ALuint source, ALenum param, ALint value); +AL_API void AL_APIENTRY alSource3i(ALuint source, ALenum param, ALint value1, ALint value2, ALint value3); +AL_API void AL_APIENTRY alSourceiv(ALuint source, ALenum param, const ALint *values); + +/** Get Source parameters. */ +AL_API void AL_APIENTRY alGetSourcef(ALuint source, ALenum param, ALfloat *value); +AL_API void AL_APIENTRY alGetSource3f(ALuint source, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); +AL_API void AL_APIENTRY alGetSourcefv(ALuint source, ALenum param, ALfloat *values); +AL_API void AL_APIENTRY alGetSourcei(ALuint source, ALenum param, ALint *value); +AL_API void AL_APIENTRY alGetSource3i(ALuint source, ALenum param, ALint *value1, ALint *value2, ALint *value3); +AL_API void AL_APIENTRY alGetSourceiv(ALuint source, ALenum param, ALint *values); + + +/** Play, replay, or resume (if paused) a list of Sources */ +AL_API void AL_APIENTRY alSourcePlayv(ALsizei n, const ALuint *sources); +/** Stop a list of Sources */ +AL_API void AL_APIENTRY alSourceStopv(ALsizei n, const ALuint *sources); +/** Rewind a list of Sources */ +AL_API void AL_APIENTRY alSourceRewindv(ALsizei n, const ALuint *sources); +/** Pause a list of Sources */ +AL_API void AL_APIENTRY alSourcePausev(ALsizei n, const ALuint *sources); + +/** Play, replay, or resume a Source */ +AL_API void AL_APIENTRY alSourcePlay(ALuint source); +/** Stop a Source */ +AL_API void AL_APIENTRY alSourceStop(ALuint source); +/** Rewind a Source (set playback postiton to beginning) */ +AL_API void AL_APIENTRY alSourceRewind(ALuint source); +/** Pause a Source */ +AL_API void AL_APIENTRY alSourcePause(ALuint source); + +/** Queue buffers onto a source */ +AL_API void AL_APIENTRY alSourceQueueBuffers(ALuint source, ALsizei nb, const ALuint *buffers); +/** Unqueue processed buffers from a source */ +AL_API void AL_APIENTRY alSourceUnqueueBuffers(ALuint source, ALsizei nb, ALuint *buffers); + + +/** Create Buffer objects */ +AL_API void AL_APIENTRY alGenBuffers(ALsizei n, ALuint *buffers); +/** Delete Buffer objects */ +AL_API void AL_APIENTRY alDeleteBuffers(ALsizei n, const ALuint *buffers); +/** Verify a handle is a valid Buffer */ +AL_API ALboolean AL_APIENTRY alIsBuffer(ALuint buffer); + +/** Specifies the data to be copied into a buffer */ +AL_API void AL_APIENTRY alBufferData(ALuint buffer, ALenum format, const ALvoid *data, ALsizei size, ALsizei freq); + +/** Set Buffer parameters, */ +AL_API void AL_APIENTRY alBufferf(ALuint buffer, ALenum param, ALfloat value); +AL_API void AL_APIENTRY alBuffer3f(ALuint buffer, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); +AL_API void AL_APIENTRY alBufferfv(ALuint buffer, ALenum param, const ALfloat *values); +AL_API void AL_APIENTRY alBufferi(ALuint buffer, ALenum param, ALint value); +AL_API void AL_APIENTRY alBuffer3i(ALuint buffer, ALenum param, ALint value1, ALint value2, ALint value3); +AL_API void AL_APIENTRY alBufferiv(ALuint buffer, ALenum param, const ALint *values); + +/** Get Buffer parameters. */ +AL_API void AL_APIENTRY alGetBufferf(ALuint buffer, ALenum param, ALfloat *value); +AL_API void AL_APIENTRY alGetBuffer3f(ALuint buffer, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); +AL_API void AL_APIENTRY alGetBufferfv(ALuint buffer, ALenum param, ALfloat *values); +AL_API void AL_APIENTRY alGetBufferi(ALuint buffer, ALenum param, ALint *value); +AL_API void AL_APIENTRY alGetBuffer3i(ALuint buffer, ALenum param, ALint *value1, ALint *value2, ALint *value3); +AL_API void AL_APIENTRY alGetBufferiv(ALuint buffer, ALenum param, ALint *values); + +/** Pointer-to-function type, useful for dynamically getting AL entry points. */ +typedef void (AL_APIENTRY *LPALENABLE)(ALenum capability); +typedef void (AL_APIENTRY *LPALDISABLE)(ALenum capability); +typedef ALboolean (AL_APIENTRY *LPALISENABLED)(ALenum capability); +typedef const ALchar* (AL_APIENTRY *LPALGETSTRING)(ALenum param); +typedef void (AL_APIENTRY *LPALGETBOOLEANV)(ALenum param, ALboolean *values); +typedef void (AL_APIENTRY *LPALGETINTEGERV)(ALenum param, ALint *values); +typedef void (AL_APIENTRY *LPALGETFLOATV)(ALenum param, ALfloat *values); +typedef void (AL_APIENTRY *LPALGETDOUBLEV)(ALenum param, ALdouble *values); +typedef ALboolean (AL_APIENTRY *LPALGETBOOLEAN)(ALenum param); +typedef ALint (AL_APIENTRY *LPALGETINTEGER)(ALenum param); +typedef ALfloat (AL_APIENTRY *LPALGETFLOAT)(ALenum param); +typedef ALdouble (AL_APIENTRY *LPALGETDOUBLE)(ALenum param); +typedef ALenum (AL_APIENTRY *LPALGETERROR)(void); +typedef ALboolean (AL_APIENTRY *LPALISEXTENSIONPRESENT)(const ALchar *extname); +typedef void* (AL_APIENTRY *LPALGETPROCADDRESS)(const ALchar *fname); +typedef ALenum (AL_APIENTRY *LPALGETENUMVALUE)(const ALchar *ename); +typedef void (AL_APIENTRY *LPALLISTENERF)(ALenum param, ALfloat value); +typedef void (AL_APIENTRY *LPALLISTENER3F)(ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); +typedef void (AL_APIENTRY *LPALLISTENERFV)(ALenum param, const ALfloat *values); +typedef void (AL_APIENTRY *LPALLISTENERI)(ALenum param, ALint value); +typedef void (AL_APIENTRY *LPALLISTENER3I)(ALenum param, ALint value1, ALint value2, ALint value3); +typedef void (AL_APIENTRY *LPALLISTENERIV)(ALenum param, const ALint *values); +typedef void (AL_APIENTRY *LPALGETLISTENERF)(ALenum param, ALfloat *value); +typedef void (AL_APIENTRY *LPALGETLISTENER3F)(ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); +typedef void (AL_APIENTRY *LPALGETLISTENERFV)(ALenum param, ALfloat *values); +typedef void (AL_APIENTRY *LPALGETLISTENERI)(ALenum param, ALint *value); +typedef void (AL_APIENTRY *LPALGETLISTENER3I)(ALenum param, ALint *value1, ALint *value2, ALint *value3); +typedef void (AL_APIENTRY *LPALGETLISTENERIV)(ALenum param, ALint *values); +typedef void (AL_APIENTRY *LPALGENSOURCES)(ALsizei n, ALuint *sources); +typedef void (AL_APIENTRY *LPALDELETESOURCES)(ALsizei n, const ALuint *sources); +typedef ALboolean (AL_APIENTRY *LPALISSOURCE)(ALuint source); +typedef void (AL_APIENTRY *LPALSOURCEF)(ALuint source, ALenum param, ALfloat value); +typedef void (AL_APIENTRY *LPALSOURCE3F)(ALuint source, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); +typedef void (AL_APIENTRY *LPALSOURCEFV)(ALuint source, ALenum param, const ALfloat *values); +typedef void (AL_APIENTRY *LPALSOURCEI)(ALuint source, ALenum param, ALint value); +typedef void (AL_APIENTRY *LPALSOURCE3I)(ALuint source, ALenum param, ALint value1, ALint value2, ALint value3); +typedef void (AL_APIENTRY *LPALSOURCEIV)(ALuint source, ALenum param, const ALint *values); +typedef void (AL_APIENTRY *LPALGETSOURCEF)(ALuint source, ALenum param, ALfloat *value); +typedef void (AL_APIENTRY *LPALGETSOURCE3F)(ALuint source, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); +typedef void (AL_APIENTRY *LPALGETSOURCEFV)(ALuint source, ALenum param, ALfloat *values); +typedef void (AL_APIENTRY *LPALGETSOURCEI)(ALuint source, ALenum param, ALint *value); +typedef void (AL_APIENTRY *LPALGETSOURCE3I)(ALuint source, ALenum param, ALint *value1, ALint *value2, ALint *value3); +typedef void (AL_APIENTRY *LPALGETSOURCEIV)(ALuint source, ALenum param, ALint *values); +typedef void (AL_APIENTRY *LPALSOURCEPLAYV)(ALsizei n, const ALuint *sources); +typedef void (AL_APIENTRY *LPALSOURCESTOPV)(ALsizei n, const ALuint *sources); +typedef void (AL_APIENTRY *LPALSOURCEREWINDV)(ALsizei n, const ALuint *sources); +typedef void (AL_APIENTRY *LPALSOURCEPAUSEV)(ALsizei n, const ALuint *sources); +typedef void (AL_APIENTRY *LPALSOURCEPLAY)(ALuint source); +typedef void (AL_APIENTRY *LPALSOURCESTOP)(ALuint source); +typedef void (AL_APIENTRY *LPALSOURCEREWIND)(ALuint source); +typedef void (AL_APIENTRY *LPALSOURCEPAUSE)(ALuint source); +typedef void (AL_APIENTRY *LPALSOURCEQUEUEBUFFERS)(ALuint source, ALsizei nb, const ALuint *buffers); +typedef void (AL_APIENTRY *LPALSOURCEUNQUEUEBUFFERS)(ALuint source, ALsizei nb, ALuint *buffers); +typedef void (AL_APIENTRY *LPALGENBUFFERS)(ALsizei n, ALuint *buffers); +typedef void (AL_APIENTRY *LPALDELETEBUFFERS)(ALsizei n, const ALuint *buffers); +typedef ALboolean (AL_APIENTRY *LPALISBUFFER)(ALuint buffer); +typedef void (AL_APIENTRY *LPALBUFFERDATA)(ALuint buffer, ALenum format, const ALvoid *data, ALsizei size, ALsizei freq); +typedef void (AL_APIENTRY *LPALBUFFERF)(ALuint buffer, ALenum param, ALfloat value); +typedef void (AL_APIENTRY *LPALBUFFER3F)(ALuint buffer, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); +typedef void (AL_APIENTRY *LPALBUFFERFV)(ALuint buffer, ALenum param, const ALfloat *values); +typedef void (AL_APIENTRY *LPALBUFFERI)(ALuint buffer, ALenum param, ALint value); +typedef void (AL_APIENTRY *LPALBUFFER3I)(ALuint buffer, ALenum param, ALint value1, ALint value2, ALint value3); +typedef void (AL_APIENTRY *LPALBUFFERIV)(ALuint buffer, ALenum param, const ALint *values); +typedef void (AL_APIENTRY *LPALGETBUFFERF)(ALuint buffer, ALenum param, ALfloat *value); +typedef void (AL_APIENTRY *LPALGETBUFFER3F)(ALuint buffer, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); +typedef void (AL_APIENTRY *LPALGETBUFFERFV)(ALuint buffer, ALenum param, ALfloat *values); +typedef void (AL_APIENTRY *LPALGETBUFFERI)(ALuint buffer, ALenum param, ALint *value); +typedef void (AL_APIENTRY *LPALGETBUFFER3I)(ALuint buffer, ALenum param, ALint *value1, ALint *value2, ALint *value3); +typedef void (AL_APIENTRY *LPALGETBUFFERIV)(ALuint buffer, ALenum param, ALint *values); +typedef void (AL_APIENTRY *LPALDOPPLERFACTOR)(ALfloat value); +typedef void (AL_APIENTRY *LPALDOPPLERVELOCITY)(ALfloat value); +typedef void (AL_APIENTRY *LPALSPEEDOFSOUND)(ALfloat value); +typedef void (AL_APIENTRY *LPALDISTANCEMODEL)(ALenum distanceModel); #if defined(__cplusplus) } /* extern "C" */ diff --git a/Externals/OpenAL/include/alc.h b/Externals/OpenAL/include/alc.h index b0bbfbe7de..294e8b33c6 100644 --- a/Externals/OpenAL/include/alc.h +++ b/Externals/OpenAL/include/alc.h @@ -5,16 +5,11 @@ extern "C" { #endif -#if defined(_WIN32) && !defined(_XBOX) - /* _OPENAL32LIB is deprecated */ - #if defined(AL_BUILD_LIBRARY) || defined (_OPENAL32LIB) - #define ALC_API __declspec(dllexport) - #else +#ifndef ALC_API + #if defined(AL_LIBTYPE_STATIC) + #define ALC_API + #elif defined(_WIN32) #define ALC_API __declspec(dllimport) - #endif -#else - #if defined(AL_BUILD_LIBRARY) && defined(HAVE_GCC_VISIBILITY) - #define ALC_API __attribute__((visibility("default"))) #else #define ALC_API extern #endif @@ -26,25 +21,20 @@ extern "C" { #define ALC_APIENTRY #endif -#if defined(TARGET_OS_MAC) && TARGET_OS_MAC - #pragma export on -#endif -/* - * The ALCAPI, ALCAPIENTRY, and ALC_INVALID macros are deprecated, but are - * included for applications porting code from AL 1.0 - */ -#define ALCAPI ALC_API -#define ALCAPIENTRY ALC_APIENTRY -#define ALC_INVALID 0 +/** Deprecated macro. */ +#define ALCAPI ALC_API +#define ALCAPIENTRY ALC_APIENTRY +#define ALC_INVALID 0 +/** Supported ALC version? */ +#define ALC_VERSION_0_1 1 -#define ALC_VERSION_0_1 1 - +/** Opaque device handle */ typedef struct ALCdevice_struct ALCdevice; +/** Opaque context handle */ typedef struct ALCcontext_struct ALCcontext; - /** 8-bit boolean */ typedef char ALCboolean; @@ -52,7 +42,7 @@ typedef char ALCboolean; typedef char ALCchar; /** signed 8-bit 2's complement integer */ -typedef char ALCbyte; +typedef signed char ALCbyte; /** unsigned 8-bit integer */ typedef unsigned char ALCubyte; @@ -87,192 +77,158 @@ typedef void ALCvoid; /* Enumerant values begin at column 50. No tabs. */ -/* Boolean False. */ +/** Boolean False. */ #define ALC_FALSE 0 -/* Boolean True. */ +/** Boolean True. */ #define ALC_TRUE 1 -/** - * followed by Hz - */ +/** Context attribute: Hz. */ #define ALC_FREQUENCY 0x1007 -/** - * followed by Hz - */ +/** Context attribute: Hz. */ #define ALC_REFRESH 0x1008 -/** - * followed by AL_TRUE, AL_FALSE - */ +/** Context attribute: AL_TRUE or AL_FALSE. */ #define ALC_SYNC 0x1009 -/** - * followed by Num of requested Mono (3D) Sources - */ +/** Context attribute: requested Mono (3D) Sources. */ #define ALC_MONO_SOURCES 0x1010 -/** - * followed by Num of requested Stereo Sources - */ +/** Context attribute: requested Stereo Sources. */ #define ALC_STEREO_SOURCES 0x1011 -/** - * errors - */ +/** No error. */ +#define ALC_NO_ERROR 0 -/** - * No error - */ -#define ALC_NO_ERROR ALC_FALSE - -/** - * No device - */ +/** Invalid device handle. */ #define ALC_INVALID_DEVICE 0xA001 -/** - * invalid context ID - */ +/** Invalid context handle. */ #define ALC_INVALID_CONTEXT 0xA002 -/** - * bad enum - */ +/** Invalid enum parameter passed to an ALC call. */ #define ALC_INVALID_ENUM 0xA003 -/** - * bad value - */ +/** Invalid value parameter passed to an ALC call. */ #define ALC_INVALID_VALUE 0xA004 -/** - * Out of memory. - */ +/** Out of memory. */ #define ALC_OUT_OF_MEMORY 0xA005 -/** - * The Specifier string for default device - */ -#define ALC_DEFAULT_DEVICE_SPECIFIER 0x1004 -#define ALC_DEVICE_SPECIFIER 0x1005 -#define ALC_EXTENSIONS 0x1006 - +/** Runtime ALC version. */ #define ALC_MAJOR_VERSION 0x1000 #define ALC_MINOR_VERSION 0x1001 +/** Context attribute list properties. */ #define ALC_ATTRIBUTES_SIZE 0x1002 #define ALC_ALL_ATTRIBUTES 0x1003 +/** String for the default device specifier. */ +#define ALC_DEFAULT_DEVICE_SPECIFIER 0x1004 /** - * ALC_ENUMERATE_ALL_EXT enums + * String for the given device's specifier. + * + * If device handle is NULL, it is instead a null-char separated list of + * strings of known device specifiers (list ends with an empty string). */ -#define ALC_DEFAULT_ALL_DEVICES_SPECIFIER 0x1012 -#define ALC_ALL_DEVICES_SPECIFIER 0x1013 +#define ALC_DEVICE_SPECIFIER 0x1005 +/** String for space-separated list of ALC extensions. */ +#define ALC_EXTENSIONS 0x1006 + +/** Capture extension */ +#define ALC_EXT_CAPTURE 1 /** - * Capture extension + * String for the given capture device's specifier. + * + * If device handle is NULL, it is instead a null-char separated list of + * strings of known capture device specifiers (list ends with an empty string). */ #define ALC_CAPTURE_DEVICE_SPECIFIER 0x310 +/** String for the default capture device specifier. */ #define ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER 0x311 +/** Number of sample frames available for capture. */ #define ALC_CAPTURE_SAMPLES 0x312 -/* - * Context Management +/** Enumerate All extension */ +#define ALC_ENUMERATE_ALL_EXT 1 +/** String for the default extended device specifier. */ +#define ALC_DEFAULT_ALL_DEVICES_SPECIFIER 0x1012 +/** + * String for the given extended device's specifier. + * + * If device handle is NULL, it is instead a null-char separated list of + * strings of known extended device specifiers (list ends with an empty string). */ -ALC_API ALCcontext * ALC_APIENTRY alcCreateContext( ALCdevice *device, const ALCint* attrlist ); - -ALC_API ALCboolean ALC_APIENTRY alcMakeContextCurrent( ALCcontext *context ); - -ALC_API void ALC_APIENTRY alcProcessContext( ALCcontext *context ); - -ALC_API void ALC_APIENTRY alcSuspendContext( ALCcontext *context ); - -ALC_API void ALC_APIENTRY alcDestroyContext( ALCcontext *context ); - -ALC_API ALCcontext * ALC_APIENTRY alcGetCurrentContext( void ); - -ALC_API ALCdevice* ALC_APIENTRY alcGetContextsDevice( ALCcontext *context ); +#define ALC_ALL_DEVICES_SPECIFIER 0x1013 -/* - * Device Management - */ -ALC_API ALCdevice * ALC_APIENTRY alcOpenDevice( const ALCchar *devicename ); +/** Context management. */ +ALC_API ALCcontext* ALC_APIENTRY alcCreateContext(ALCdevice *device, const ALCint* attrlist); +ALC_API ALCboolean ALC_APIENTRY alcMakeContextCurrent(ALCcontext *context); +ALC_API void ALC_APIENTRY alcProcessContext(ALCcontext *context); +ALC_API void ALC_APIENTRY alcSuspendContext(ALCcontext *context); +ALC_API void ALC_APIENTRY alcDestroyContext(ALCcontext *context); +ALC_API ALCcontext* ALC_APIENTRY alcGetCurrentContext(void); +ALC_API ALCdevice* ALC_APIENTRY alcGetContextsDevice(ALCcontext *context); -ALC_API ALCboolean ALC_APIENTRY alcCloseDevice( ALCdevice *device ); +/** Device management. */ +ALC_API ALCdevice* ALC_APIENTRY alcOpenDevice(const ALCchar *devicename); +ALC_API ALCboolean ALC_APIENTRY alcCloseDevice(ALCdevice *device); -/* +/** * Error support. - * Obtain the most recent Context error + * + * Obtain the most recent Device error. */ -ALC_API ALCenum ALC_APIENTRY alcGetError( ALCdevice *device ); +ALC_API ALCenum ALC_APIENTRY alcGetError(ALCdevice *device); - -/* +/** * Extension support. + * * Query for the presence of an extension, and obtain any appropriate * function pointers and enum values. */ -ALC_API ALCboolean ALC_APIENTRY alcIsExtensionPresent( ALCdevice *device, const ALCchar *extname ); +ALC_API ALCboolean ALC_APIENTRY alcIsExtensionPresent(ALCdevice *device, const ALCchar *extname); +ALC_API void* ALC_APIENTRY alcGetProcAddress(ALCdevice *device, const ALCchar *funcname); +ALC_API ALCenum ALC_APIENTRY alcGetEnumValue(ALCdevice *device, const ALCchar *enumname); -ALC_API void * ALC_APIENTRY alcGetProcAddress( ALCdevice *device, const ALCchar *funcname ); +/** Query function. */ +ALC_API const ALCchar* ALC_APIENTRY alcGetString(ALCdevice *device, ALCenum param); +ALC_API void ALC_APIENTRY alcGetIntegerv(ALCdevice *device, ALCenum param, ALCsizei size, ALCint *values); -ALC_API ALCenum ALC_APIENTRY alcGetEnumValue( ALCdevice *device, const ALCchar *enumname ); +/** Capture function. */ +ALC_API ALCdevice* ALC_APIENTRY alcCaptureOpenDevice(const ALCchar *devicename, ALCuint frequency, ALCenum format, ALCsizei buffersize); +ALC_API ALCboolean ALC_APIENTRY alcCaptureCloseDevice(ALCdevice *device); +ALC_API void ALC_APIENTRY alcCaptureStart(ALCdevice *device); +ALC_API void ALC_APIENTRY alcCaptureStop(ALCdevice *device); +ALC_API void ALC_APIENTRY alcCaptureSamples(ALCdevice *device, ALCvoid *buffer, ALCsizei samples); - -/* - * Query functions - */ -ALC_API const ALCchar * ALC_APIENTRY alcGetString( ALCdevice *device, ALCenum param ); - -ALC_API void ALC_APIENTRY alcGetIntegerv( ALCdevice *device, ALCenum param, ALCsizei size, ALCint *data ); - - -/* - * Capture functions - */ -ALC_API ALCdevice* ALC_APIENTRY alcCaptureOpenDevice( const ALCchar *devicename, ALCuint frequency, ALCenum format, ALCsizei buffersize ); - -ALC_API ALCboolean ALC_APIENTRY alcCaptureCloseDevice( ALCdevice *device ); - -ALC_API void ALC_APIENTRY alcCaptureStart( ALCdevice *device ); - -ALC_API void ALC_APIENTRY alcCaptureStop( ALCdevice *device ); - -ALC_API void ALC_APIENTRY alcCaptureSamples( ALCdevice *device, ALCvoid *buffer, ALCsizei samples ); - -/* - * Pointer-to-function types, useful for dynamically getting ALC entry points. - */ -typedef ALCcontext * (ALC_APIENTRY *LPALCCREATECONTEXT) (ALCdevice *device, const ALCint *attrlist); -typedef ALCboolean (ALC_APIENTRY *LPALCMAKECONTEXTCURRENT)( ALCcontext *context ); -typedef void (ALC_APIENTRY *LPALCPROCESSCONTEXT)( ALCcontext *context ); -typedef void (ALC_APIENTRY *LPALCSUSPENDCONTEXT)( ALCcontext *context ); -typedef void (ALC_APIENTRY *LPALCDESTROYCONTEXT)( ALCcontext *context ); -typedef ALCcontext * (ALC_APIENTRY *LPALCGETCURRENTCONTEXT)( void ); -typedef ALCdevice * (ALC_APIENTRY *LPALCGETCONTEXTSDEVICE)( ALCcontext *context ); -typedef ALCdevice * (ALC_APIENTRY *LPALCOPENDEVICE)( const ALCchar *devicename ); -typedef ALCboolean (ALC_APIENTRY *LPALCCLOSEDEVICE)( ALCdevice *device ); -typedef ALCenum (ALC_APIENTRY *LPALCGETERROR)( ALCdevice *device ); -typedef ALCboolean (ALC_APIENTRY *LPALCISEXTENSIONPRESENT)( ALCdevice *device, const ALCchar *extname ); -typedef void * (ALC_APIENTRY *LPALCGETPROCADDRESS)(ALCdevice *device, const ALCchar *funcname ); -typedef ALCenum (ALC_APIENTRY *LPALCGETENUMVALUE)(ALCdevice *device, const ALCchar *enumname ); -typedef const ALCchar* (ALC_APIENTRY *LPALCGETSTRING)( ALCdevice *device, ALCenum param ); -typedef void (ALC_APIENTRY *LPALCGETINTEGERV)( ALCdevice *device, ALCenum param, ALCsizei size, ALCint *dest ); -typedef ALCdevice * (ALC_APIENTRY *LPALCCAPTUREOPENDEVICE)( const ALCchar *devicename, ALCuint frequency, ALCenum format, ALCsizei buffersize ); -typedef ALCboolean (ALC_APIENTRY *LPALCCAPTURECLOSEDEVICE)( ALCdevice *device ); -typedef void (ALC_APIENTRY *LPALCCAPTURESTART)( ALCdevice *device ); -typedef void (ALC_APIENTRY *LPALCCAPTURESTOP)( ALCdevice *device ); -typedef void (ALC_APIENTRY *LPALCCAPTURESAMPLES)( ALCdevice *device, ALCvoid *buffer, ALCsizei samples ); - -#if defined(TARGET_OS_MAC) && TARGET_OS_MAC - #pragma export off -#endif +/** Pointer-to-function type, useful for dynamically getting ALC entry points. */ +typedef ALCcontext* (ALC_APIENTRY *LPALCCREATECONTEXT)(ALCdevice *device, const ALCint *attrlist); +typedef ALCboolean (ALC_APIENTRY *LPALCMAKECONTEXTCURRENT)(ALCcontext *context); +typedef void (ALC_APIENTRY *LPALCPROCESSCONTEXT)(ALCcontext *context); +typedef void (ALC_APIENTRY *LPALCSUSPENDCONTEXT)(ALCcontext *context); +typedef void (ALC_APIENTRY *LPALCDESTROYCONTEXT)(ALCcontext *context); +typedef ALCcontext* (ALC_APIENTRY *LPALCGETCURRENTCONTEXT)(void); +typedef ALCdevice* (ALC_APIENTRY *LPALCGETCONTEXTSDEVICE)(ALCcontext *context); +typedef ALCdevice* (ALC_APIENTRY *LPALCOPENDEVICE)(const ALCchar *devicename); +typedef ALCboolean (ALC_APIENTRY *LPALCCLOSEDEVICE)(ALCdevice *device); +typedef ALCenum (ALC_APIENTRY *LPALCGETERROR)(ALCdevice *device); +typedef ALCboolean (ALC_APIENTRY *LPALCISEXTENSIONPRESENT)(ALCdevice *device, const ALCchar *extname); +typedef void* (ALC_APIENTRY *LPALCGETPROCADDRESS)(ALCdevice *device, const ALCchar *funcname); +typedef ALCenum (ALC_APIENTRY *LPALCGETENUMVALUE)(ALCdevice *device, const ALCchar *enumname); +typedef const ALCchar* (ALC_APIENTRY *LPALCGETSTRING)(ALCdevice *device, ALCenum param); +typedef void (ALC_APIENTRY *LPALCGETINTEGERV)(ALCdevice *device, ALCenum param, ALCsizei size, ALCint *values); +typedef ALCdevice* (ALC_APIENTRY *LPALCCAPTUREOPENDEVICE)(const ALCchar *devicename, ALCuint frequency, ALCenum format, ALCsizei buffersize); +typedef ALCboolean (ALC_APIENTRY *LPALCCAPTURECLOSEDEVICE)(ALCdevice *device); +typedef void (ALC_APIENTRY *LPALCCAPTURESTART)(ALCdevice *device); +typedef void (ALC_APIENTRY *LPALCCAPTURESTOP)(ALCdevice *device); +typedef void (ALC_APIENTRY *LPALCCAPTURESAMPLES)(ALCdevice *device, ALCvoid *buffer, ALCsizei samples); #if defined(__cplusplus) } diff --git a/Externals/OpenAL/include/alext.h b/Externals/OpenAL/include/alext.h new file mode 100644 index 0000000000..0447f2bb45 --- /dev/null +++ b/Externals/OpenAL/include/alext.h @@ -0,0 +1,355 @@ +/** + * OpenAL cross platform audio library + * Copyright (C) 2008 by authors. + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * Or go to http://www.gnu.org/copyleft/lgpl.html + */ + +#ifndef AL_ALEXT_H +#define AL_ALEXT_H + +#include +/* Define int64_t and uint64_t types */ +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#include +#elif defined(_WIN32) && defined(__GNUC__) +#include +#elif defined(_WIN32) +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; +#else +/* Fallback if nothing above works */ +#include +#endif + +#include "alc.h" +#include "al.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef AL_LOKI_IMA_ADPCM_format +#define AL_LOKI_IMA_ADPCM_format 1 +#define AL_FORMAT_IMA_ADPCM_MONO16_EXT 0x10000 +#define AL_FORMAT_IMA_ADPCM_STEREO16_EXT 0x10001 +#endif + +#ifndef AL_LOKI_WAVE_format +#define AL_LOKI_WAVE_format 1 +#define AL_FORMAT_WAVE_EXT 0x10002 +#endif + +#ifndef AL_EXT_vorbis +#define AL_EXT_vorbis 1 +#define AL_FORMAT_VORBIS_EXT 0x10003 +#endif + +#ifndef AL_LOKI_quadriphonic +#define AL_LOKI_quadriphonic 1 +#define AL_FORMAT_QUAD8_LOKI 0x10004 +#define AL_FORMAT_QUAD16_LOKI 0x10005 +#endif + +#ifndef AL_EXT_float32 +#define AL_EXT_float32 1 +#define AL_FORMAT_MONO_FLOAT32 0x10010 +#define AL_FORMAT_STEREO_FLOAT32 0x10011 +#endif + +#ifndef AL_EXT_double +#define AL_EXT_double 1 +#define AL_FORMAT_MONO_DOUBLE_EXT 0x10012 +#define AL_FORMAT_STEREO_DOUBLE_EXT 0x10013 +#endif + +#ifndef AL_EXT_MULAW +#define AL_EXT_MULAW 1 +#define AL_FORMAT_MONO_MULAW_EXT 0x10014 +#define AL_FORMAT_STEREO_MULAW_EXT 0x10015 +#endif + +#ifndef AL_EXT_ALAW +#define AL_EXT_ALAW 1 +#define AL_FORMAT_MONO_ALAW_EXT 0x10016 +#define AL_FORMAT_STEREO_ALAW_EXT 0x10017 +#endif + +#ifndef ALC_LOKI_audio_channel +#define ALC_LOKI_audio_channel 1 +#define ALC_CHAN_MAIN_LOKI 0x500001 +#define ALC_CHAN_PCM_LOKI 0x500002 +#define ALC_CHAN_CD_LOKI 0x500003 +#endif + +#ifndef AL_EXT_MCFORMATS +#define AL_EXT_MCFORMATS 1 +#define AL_FORMAT_QUAD8 0x1204 +#define AL_FORMAT_QUAD16 0x1205 +#define AL_FORMAT_QUAD32 0x1206 +#define AL_FORMAT_REAR8 0x1207 +#define AL_FORMAT_REAR16 0x1208 +#define AL_FORMAT_REAR32 0x1209 +#define AL_FORMAT_51CHN8 0x120A +#define AL_FORMAT_51CHN16 0x120B +#define AL_FORMAT_51CHN32 0x120C +#define AL_FORMAT_61CHN8 0x120D +#define AL_FORMAT_61CHN16 0x120E +#define AL_FORMAT_61CHN32 0x120F +#define AL_FORMAT_71CHN8 0x1210 +#define AL_FORMAT_71CHN16 0x1211 +#define AL_FORMAT_71CHN32 0x1212 +#endif + +#ifndef AL_EXT_MULAW_MCFORMATS +#define AL_EXT_MULAW_MCFORMATS 1 +#define AL_FORMAT_MONO_MULAW 0x10014 +#define AL_FORMAT_STEREO_MULAW 0x10015 +#define AL_FORMAT_QUAD_MULAW 0x10021 +#define AL_FORMAT_REAR_MULAW 0x10022 +#define AL_FORMAT_51CHN_MULAW 0x10023 +#define AL_FORMAT_61CHN_MULAW 0x10024 +#define AL_FORMAT_71CHN_MULAW 0x10025 +#endif + +#ifndef AL_EXT_IMA4 +#define AL_EXT_IMA4 1 +#define AL_FORMAT_MONO_IMA4 0x1300 +#define AL_FORMAT_STEREO_IMA4 0x1301 +#endif + +#ifndef AL_EXT_STATIC_BUFFER +#define AL_EXT_STATIC_BUFFER 1 +typedef ALvoid (AL_APIENTRY*PFNALBUFFERDATASTATICPROC)(const ALint,ALenum,ALvoid*,ALsizei,ALsizei); +#ifdef AL_ALEXT_PROTOTYPES +AL_API ALvoid AL_APIENTRY alBufferDataStatic(const ALint buffer, ALenum format, ALvoid *data, ALsizei len, ALsizei freq); +#endif +#endif + +#ifndef ALC_EXT_EFX +#define ALC_EXT_EFX 1 +#include "efx.h" +#endif + +#ifndef ALC_EXT_disconnect +#define ALC_EXT_disconnect 1 +#define ALC_CONNECTED 0x313 +#endif + +#ifndef ALC_EXT_thread_local_context +#define ALC_EXT_thread_local_context 1 +typedef ALCboolean (ALC_APIENTRY*PFNALCSETTHREADCONTEXTPROC)(ALCcontext *context); +typedef ALCcontext* (ALC_APIENTRY*PFNALCGETTHREADCONTEXTPROC)(void); +#ifdef AL_ALEXT_PROTOTYPES +ALC_API ALCboolean ALC_APIENTRY alcSetThreadContext(ALCcontext *context); +ALC_API ALCcontext* ALC_APIENTRY alcGetThreadContext(void); +#endif +#endif + +#ifndef AL_EXT_source_distance_model +#define AL_EXT_source_distance_model 1 +#define AL_SOURCE_DISTANCE_MODEL 0x200 +#endif + +#ifndef AL_SOFT_buffer_sub_data +#define AL_SOFT_buffer_sub_data 1 +#define AL_BYTE_RW_OFFSETS_SOFT 0x1031 +#define AL_SAMPLE_RW_OFFSETS_SOFT 0x1032 +typedef ALvoid (AL_APIENTRY*PFNALBUFFERSUBDATASOFTPROC)(ALuint,ALenum,const ALvoid*,ALsizei,ALsizei); +#ifdef AL_ALEXT_PROTOTYPES +AL_API ALvoid AL_APIENTRY alBufferSubDataSOFT(ALuint buffer,ALenum format,const ALvoid *data,ALsizei offset,ALsizei length); +#endif +#endif + +#ifndef AL_SOFT_loop_points +#define AL_SOFT_loop_points 1 +#define AL_LOOP_POINTS_SOFT 0x2015 +#endif + +#ifndef AL_EXT_FOLDBACK +#define AL_EXT_FOLDBACK 1 +#define AL_EXT_FOLDBACK_NAME "AL_EXT_FOLDBACK" +#define AL_FOLDBACK_EVENT_BLOCK 0x4112 +#define AL_FOLDBACK_EVENT_START 0x4111 +#define AL_FOLDBACK_EVENT_STOP 0x4113 +#define AL_FOLDBACK_MODE_MONO 0x4101 +#define AL_FOLDBACK_MODE_STEREO 0x4102 +typedef void (AL_APIENTRY*LPALFOLDBACKCALLBACK)(ALenum,ALsizei); +typedef void (AL_APIENTRY*LPALREQUESTFOLDBACKSTART)(ALenum,ALsizei,ALsizei,ALfloat*,LPALFOLDBACKCALLBACK); +typedef void (AL_APIENTRY*LPALREQUESTFOLDBACKSTOP)(void); +#ifdef AL_ALEXT_PROTOTYPES +AL_API void AL_APIENTRY alRequestFoldbackStart(ALenum mode,ALsizei count,ALsizei length,ALfloat *mem,LPALFOLDBACKCALLBACK callback); +AL_API void AL_APIENTRY alRequestFoldbackStop(void); +#endif +#endif + +#ifndef ALC_EXT_DEDICATED +#define ALC_EXT_DEDICATED 1 +#define AL_DEDICATED_GAIN 0x0001 +#define AL_EFFECT_DEDICATED_DIALOGUE 0x9001 +#define AL_EFFECT_DEDICATED_LOW_FREQUENCY_EFFECT 0x9000 +#endif + +#ifndef AL_SOFT_buffer_samples +#define AL_SOFT_buffer_samples 1 +/* Channel configurations */ +#define AL_MONO_SOFT 0x1500 +#define AL_STEREO_SOFT 0x1501 +#define AL_REAR_SOFT 0x1502 +#define AL_QUAD_SOFT 0x1503 +#define AL_5POINT1_SOFT 0x1504 +#define AL_6POINT1_SOFT 0x1505 +#define AL_7POINT1_SOFT 0x1506 + +/* Sample types */ +#define AL_BYTE_SOFT 0x1400 +#define AL_UNSIGNED_BYTE_SOFT 0x1401 +#define AL_SHORT_SOFT 0x1402 +#define AL_UNSIGNED_SHORT_SOFT 0x1403 +#define AL_INT_SOFT 0x1404 +#define AL_UNSIGNED_INT_SOFT 0x1405 +#define AL_FLOAT_SOFT 0x1406 +#define AL_DOUBLE_SOFT 0x1407 +#define AL_BYTE3_SOFT 0x1408 +#define AL_UNSIGNED_BYTE3_SOFT 0x1409 + +/* Storage formats */ +#define AL_MONO8_SOFT 0x1100 +#define AL_MONO16_SOFT 0x1101 +#define AL_MONO32F_SOFT 0x10010 +#define AL_STEREO8_SOFT 0x1102 +#define AL_STEREO16_SOFT 0x1103 +#define AL_STEREO32F_SOFT 0x10011 +#define AL_QUAD8_SOFT 0x1204 +#define AL_QUAD16_SOFT 0x1205 +#define AL_QUAD32F_SOFT 0x1206 +#define AL_REAR8_SOFT 0x1207 +#define AL_REAR16_SOFT 0x1208 +#define AL_REAR32F_SOFT 0x1209 +#define AL_5POINT1_8_SOFT 0x120A +#define AL_5POINT1_16_SOFT 0x120B +#define AL_5POINT1_32F_SOFT 0x120C +#define AL_6POINT1_8_SOFT 0x120D +#define AL_6POINT1_16_SOFT 0x120E +#define AL_6POINT1_32F_SOFT 0x120F +#define AL_7POINT1_8_SOFT 0x1210 +#define AL_7POINT1_16_SOFT 0x1211 +#define AL_7POINT1_32F_SOFT 0x1212 + +/* Buffer attributes */ +#define AL_INTERNAL_FORMAT_SOFT 0x2008 +#define AL_BYTE_LENGTH_SOFT 0x2009 +#define AL_SAMPLE_LENGTH_SOFT 0x200A +#define AL_SEC_LENGTH_SOFT 0x200B + +typedef void (AL_APIENTRY*LPALBUFFERSAMPLESSOFT)(ALuint,ALuint,ALenum,ALsizei,ALenum,ALenum,const ALvoid*); +typedef void (AL_APIENTRY*LPALBUFFERSUBSAMPLESSOFT)(ALuint,ALsizei,ALsizei,ALenum,ALenum,const ALvoid*); +typedef void (AL_APIENTRY*LPALGETBUFFERSAMPLESSOFT)(ALuint,ALsizei,ALsizei,ALenum,ALenum,ALvoid*); +typedef ALboolean (AL_APIENTRY*LPALISBUFFERFORMATSUPPORTEDSOFT)(ALenum); +#ifdef AL_ALEXT_PROTOTYPES +AL_API void AL_APIENTRY alBufferSamplesSOFT(ALuint buffer, ALuint samplerate, ALenum internalformat, ALsizei samples, ALenum channels, ALenum type, const ALvoid *data); +AL_API void AL_APIENTRY alBufferSubSamplesSOFT(ALuint buffer, ALsizei offset, ALsizei samples, ALenum channels, ALenum type, const ALvoid *data); +AL_API void AL_APIENTRY alGetBufferSamplesSOFT(ALuint buffer, ALsizei offset, ALsizei samples, ALenum channels, ALenum type, ALvoid *data); +AL_API ALboolean AL_APIENTRY alIsBufferFormatSupportedSOFT(ALenum format); +#endif +#endif + +#ifndef AL_SOFT_direct_channels +#define AL_SOFT_direct_channels 1 +#define AL_DIRECT_CHANNELS_SOFT 0x1033 +#endif + +#ifndef ALC_SOFT_loopback +#define ALC_SOFT_loopback 1 +#define ALC_FORMAT_CHANNELS_SOFT 0x1990 +#define ALC_FORMAT_TYPE_SOFT 0x1991 + +/* Sample types */ +#define ALC_BYTE_SOFT 0x1400 +#define ALC_UNSIGNED_BYTE_SOFT 0x1401 +#define ALC_SHORT_SOFT 0x1402 +#define ALC_UNSIGNED_SHORT_SOFT 0x1403 +#define ALC_INT_SOFT 0x1404 +#define ALC_UNSIGNED_INT_SOFT 0x1405 +#define ALC_FLOAT_SOFT 0x1406 + +/* Channel configurations */ +#define ALC_MONO_SOFT 0x1500 +#define ALC_STEREO_SOFT 0x1501 +#define ALC_QUAD_SOFT 0x1503 +#define ALC_5POINT1_SOFT 0x1504 +#define ALC_6POINT1_SOFT 0x1505 +#define ALC_7POINT1_SOFT 0x1506 + +typedef ALCdevice* (ALC_APIENTRY*LPALCLOOPBACKOPENDEVICESOFT)(const ALCchar*); +typedef ALCboolean (ALC_APIENTRY*LPALCISRENDERFORMATSUPPORTEDSOFT)(ALCdevice*,ALCsizei,ALCenum,ALCenum); +typedef void (ALC_APIENTRY*LPALCRENDERSAMPLESSOFT)(ALCdevice*,ALCvoid*,ALCsizei); +#ifdef AL_ALEXT_PROTOTYPES +ALC_API ALCdevice* ALC_APIENTRY alcLoopbackOpenDeviceSOFT(const ALCchar *deviceName); +ALC_API ALCboolean ALC_APIENTRY alcIsRenderFormatSupportedSOFT(ALCdevice *device, ALCsizei freq, ALCenum channels, ALCenum type); +ALC_API void ALC_APIENTRY alcRenderSamplesSOFT(ALCdevice *device, ALCvoid *buffer, ALCsizei samples); +#endif +#endif + +#ifndef AL_EXT_STEREO_ANGLES +#define AL_EXT_STEREO_ANGLES 1 +#define AL_STEREO_ANGLES 0x1030 +#endif + +#ifndef AL_EXT_SOURCE_RADIUS +#define AL_EXT_SOURCE_RADIUS 1 +#define AL_SOURCE_RADIUS 0x1031 +#endif + +#ifndef AL_SOFT_source_latency +#define AL_SOFT_source_latency 1 +#define AL_SAMPLE_OFFSET_LATENCY_SOFT 0x1200 +#define AL_SEC_OFFSET_LATENCY_SOFT 0x1201 +typedef int64_t ALint64SOFT; +typedef uint64_t ALuint64SOFT; +typedef void (AL_APIENTRY*LPALSOURCEDSOFT)(ALuint,ALenum,ALdouble); +typedef void (AL_APIENTRY*LPALSOURCE3DSOFT)(ALuint,ALenum,ALdouble,ALdouble,ALdouble); +typedef void (AL_APIENTRY*LPALSOURCEDVSOFT)(ALuint,ALenum,const ALdouble*); +typedef void (AL_APIENTRY*LPALGETSOURCEDSOFT)(ALuint,ALenum,ALdouble*); +typedef void (AL_APIENTRY*LPALGETSOURCE3DSOFT)(ALuint,ALenum,ALdouble*,ALdouble*,ALdouble*); +typedef void (AL_APIENTRY*LPALGETSOURCEDVSOFT)(ALuint,ALenum,ALdouble*); +typedef void (AL_APIENTRY*LPALSOURCEI64SOFT)(ALuint,ALenum,ALint64SOFT); +typedef void (AL_APIENTRY*LPALSOURCE3I64SOFT)(ALuint,ALenum,ALint64SOFT,ALint64SOFT,ALint64SOFT); +typedef void (AL_APIENTRY*LPALSOURCEI64VSOFT)(ALuint,ALenum,const ALint64SOFT*); +typedef void (AL_APIENTRY*LPALGETSOURCEI64SOFT)(ALuint,ALenum,ALint64SOFT*); +typedef void (AL_APIENTRY*LPALGETSOURCE3I64SOFT)(ALuint,ALenum,ALint64SOFT*,ALint64SOFT*,ALint64SOFT*); +typedef void (AL_APIENTRY*LPALGETSOURCEI64VSOFT)(ALuint,ALenum,ALint64SOFT*); +#ifdef AL_ALEXT_PROTOTYPES +AL_API void AL_APIENTRY alSourcedSOFT(ALuint source, ALenum param, ALdouble value); +AL_API void AL_APIENTRY alSource3dSOFT(ALuint source, ALenum param, ALdouble value1, ALdouble value2, ALdouble value3); +AL_API void AL_APIENTRY alSourcedvSOFT(ALuint source, ALenum param, const ALdouble *values); +AL_API void AL_APIENTRY alGetSourcedSOFT(ALuint source, ALenum param, ALdouble *value); +AL_API void AL_APIENTRY alGetSource3dSOFT(ALuint source, ALenum param, ALdouble *value1, ALdouble *value2, ALdouble *value3); +AL_API void AL_APIENTRY alGetSourcedvSOFT(ALuint source, ALenum param, ALdouble *values); +AL_API void AL_APIENTRY alSourcei64SOFT(ALuint source, ALenum param, ALint64SOFT value); +AL_API void AL_APIENTRY alSource3i64SOFT(ALuint source, ALenum param, ALint64SOFT value1, ALint64SOFT value2, ALint64SOFT value3); +AL_API void AL_APIENTRY alSourcei64vSOFT(ALuint source, ALenum param, const ALint64SOFT *values); +AL_API void AL_APIENTRY alGetSourcei64SOFT(ALuint source, ALenum param, ALint64SOFT *value); +AL_API void AL_APIENTRY alGetSource3i64SOFT(ALuint source, ALenum param, ALint64SOFT *value1, ALint64SOFT *value2, ALint64SOFT *value3); +AL_API void AL_APIENTRY alGetSourcei64vSOFT(ALuint source, ALenum param, ALint64SOFT *values); +#endif +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Externals/OpenAL/include/efx-creative.h b/Externals/OpenAL/include/efx-creative.h index 4ea9da6b72..0a04c982e1 100644 --- a/Externals/OpenAL/include/efx-creative.h +++ b/Externals/OpenAL/include/efx-creative.h @@ -1,151 +1,3 @@ -#ifndef __efxcreative_h_ -#define __efxcreative_h_ - -/** - * efx-creative.h - Environmental Audio Extensions - * for OpenAL Effects Extension. - * - */ -#ifdef __cplusplus -extern "C" { -#endif - - -/** - * Effect object definitions to be used with alEffect functions. - * - * Effect parameter value definitions, ranges, and defaults - * appear farther down in this file. - */ - -/* AL EAXReverb effect parameters. */ -#define AL_EAXREVERB_DENSITY 0x0001 -#define AL_EAXREVERB_DIFFUSION 0x0002 -#define AL_EAXREVERB_GAIN 0x0003 -#define AL_EAXREVERB_GAINHF 0x0004 -#define AL_EAXREVERB_GAINLF 0x0005 -#define AL_EAXREVERB_DECAY_TIME 0x0006 -#define AL_EAXREVERB_DECAY_HFRATIO 0x0007 -#define AL_EAXREVERB_DECAY_LFRATIO 0x0008 -#define AL_EAXREVERB_REFLECTIONS_GAIN 0x0009 -#define AL_EAXREVERB_REFLECTIONS_DELAY 0x000A -#define AL_EAXREVERB_REFLECTIONS_PAN 0x000B -#define AL_EAXREVERB_LATE_REVERB_GAIN 0x000C -#define AL_EAXREVERB_LATE_REVERB_DELAY 0x000D -#define AL_EAXREVERB_LATE_REVERB_PAN 0x000E -#define AL_EAXREVERB_ECHO_TIME 0x000F -#define AL_EAXREVERB_ECHO_DEPTH 0x0010 -#define AL_EAXREVERB_MODULATION_TIME 0x0011 -#define AL_EAXREVERB_MODULATION_DEPTH 0x0012 -#define AL_EAXREVERB_AIR_ABSORPTION_GAINHF 0x0013 -#define AL_EAXREVERB_HFREFERENCE 0x0014 -#define AL_EAXREVERB_LFREFERENCE 0x0015 -#define AL_EAXREVERB_ROOM_ROLLOFF_FACTOR 0x0016 -#define AL_EAXREVERB_DECAY_HFLIMIT 0x0017 - -/* Effect type definitions to be used with AL_EFFECT_TYPE. */ -#define AL_EFFECT_EAXREVERB 0x8000 - - - - /********************************************************** - * Effect parameter structures, value definitions, ranges and defaults. - */ - -/** - * AL reverb effect parameter ranges and defaults - */ -#define AL_EAXREVERB_MIN_DENSITY 0.0f -#define AL_EAXREVERB_MAX_DENSITY 1.0f -#define AL_EAXREVERB_DEFAULT_DENSITY 1.0f - -#define AL_EAXREVERB_MIN_DIFFUSION 0.0f -#define AL_EAXREVERB_MAX_DIFFUSION 1.0f -#define AL_EAXREVERB_DEFAULT_DIFFUSION 1.0f - -#define AL_EAXREVERB_MIN_GAIN 0.0f -#define AL_EAXREVERB_MAX_GAIN 1.0f -#define AL_EAXREVERB_DEFAULT_GAIN 0.32f - -#define AL_EAXREVERB_MIN_GAINHF 0.0f -#define AL_EAXREVERB_MAX_GAINHF 1.0f -#define AL_EAXREVERB_DEFAULT_GAINHF 0.89f - -#define AL_EAXREVERB_MIN_GAINLF 0.0f -#define AL_EAXREVERB_MAX_GAINLF 1.0f -#define AL_EAXREVERB_DEFAULT_GAINLF 1.0f - -#define AL_EAXREVERB_MIN_DECAY_TIME 0.1f -#define AL_EAXREVERB_MAX_DECAY_TIME 20.0f -#define AL_EAXREVERB_DEFAULT_DECAY_TIME 1.49f - -#define AL_EAXREVERB_MIN_DECAY_HFRATIO 0.1f -#define AL_EAXREVERB_MAX_DECAY_HFRATIO 2.0f -#define AL_EAXREVERB_DEFAULT_DECAY_HFRATIO 0.83f - -#define AL_EAXREVERB_MIN_DECAY_LFRATIO 0.1f -#define AL_EAXREVERB_MAX_DECAY_LFRATIO 2.0f -#define AL_EAXREVERB_DEFAULT_DECAY_LFRATIO 1.0f - -#define AL_EAXREVERB_MIN_REFLECTIONS_GAIN 0.0f -#define AL_EAXREVERB_MAX_REFLECTIONS_GAIN 3.16f -#define AL_EAXREVERB_DEFAULT_REFLECTIONS_GAIN 0.05f - -#define AL_EAXREVERB_MIN_REFLECTIONS_DELAY 0.0f -#define AL_EAXREVERB_MAX_REFLECTIONS_DELAY 0.3f -#define AL_EAXREVERB_DEFAULT_REFLECTIONS_DELAY 0.007f - -#define AL_EAXREVERB_DEFAULT_REFLECTIONS_PAN {0.0f, 0.0f, 0.0f} - -#define AL_EAXREVERB_MIN_LATE_REVERB_GAIN 0.0f -#define AL_EAXREVERB_MAX_LATE_REVERB_GAIN 10.0f -#define AL_EAXREVERB_DEFAULT_LATE_REVERB_GAIN 1.26f - -#define AL_EAXREVERB_MIN_LATE_REVERB_DELAY 0.0f -#define AL_EAXREVERB_MAX_LATE_REVERB_DELAY 0.1f -#define AL_EAXREVERB_DEFAULT_LATE_REVERB_DELAY 0.011f - -#define AL_EAXREVERB_DEFAULT_LATE_REVERB_PAN {0.0f, 0.0f, 0.0f} - -#define AL_EAXREVERB_MIN_ECHO_TIME 0.075f -#define AL_EAXREVERB_MAX_ECHO_TIME 0.25f -#define AL_EAXREVERB_DEFAULT_ECHO_TIME 0.25f - -#define AL_EAXREVERB_MIN_ECHO_DEPTH 0.0f -#define AL_EAXREVERB_MAX_ECHO_DEPTH 1.0f -#define AL_EAXREVERB_DEFAULT_ECHO_DEPTH 0.0f - -#define AL_EAXREVERB_MIN_MODULATION_TIME 0.04f -#define AL_EAXREVERB_MAX_MODULATION_TIME 4.0f -#define AL_EAXREVERB_DEFAULT_MODULATION_TIME 0.25f - -#define AL_EAXREVERB_MIN_MODULATION_DEPTH 0.0f -#define AL_EAXREVERB_MAX_MODULATION_DEPTH 1.0f -#define AL_EAXREVERB_DEFAULT_MODULATION_DEPTH 0.0f - -#define AL_EAXREVERB_MIN_AIR_ABSORPTION_GAINHF 0.892f -#define AL_EAXREVERB_MAX_AIR_ABSORPTION_GAINHF 1.0f -#define AL_EAXREVERB_DEFAULT_AIR_ABSORPTION_GAINHF 0.994f - -#define AL_EAXREVERB_MIN_HFREFERENCE 1000.0f -#define AL_EAXREVERB_MAX_HFREFERENCE 20000.0f -#define AL_EAXREVERB_DEFAULT_HFREFERENCE 5000.0f - -#define AL_EAXREVERB_MIN_LFREFERENCE 20.0f -#define AL_EAXREVERB_MAX_LFREFERENCE 1000.0f -#define AL_EAXREVERB_DEFAULT_LFREFERENCE 250.0f - -#define AL_EAXREVERB_MIN_ROOM_ROLLOFF_FACTOR 0.0f -#define AL_EAXREVERB_MAX_ROOM_ROLLOFF_FACTOR 10.0f -#define AL_EAXREVERB_DEFAULT_ROOM_ROLLOFF_FACTOR 0.0f - -#define AL_EAXREVERB_MIN_DECAY_HFLIMIT AL_FALSE -#define AL_EAXREVERB_MAX_DECAY_HFLIMIT AL_TRUE -#define AL_EAXREVERB_DEFAULT_DECAY_HFLIMIT AL_TRUE - - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* __efxcreative_h_ */ +/* The tokens that would be defined here are already defined in efx.h. This + * empty file is here to provide compatibility with Windows-based projects + * that would include it. */ diff --git a/Externals/OpenAL/include/efx-presets.h b/Externals/OpenAL/include/efx-presets.h new file mode 100644 index 0000000000..86dcbda2f3 --- /dev/null +++ b/Externals/OpenAL/include/efx-presets.h @@ -0,0 +1,402 @@ +/* Reverb presets for EFX */ + +#ifndef EFX_PRESETS_H +#define EFX_PRESETS_H + +#ifndef EFXEAXREVERBPROPERTIES_DEFINED +#define EFXEAXREVERBPROPERTIES_DEFINED +typedef struct { + float flDensity; + float flDiffusion; + float flGain; + float flGainHF; + float flGainLF; + float flDecayTime; + float flDecayHFRatio; + float flDecayLFRatio; + float flReflectionsGain; + float flReflectionsDelay; + float flReflectionsPan[3]; + float flLateReverbGain; + float flLateReverbDelay; + float flLateReverbPan[3]; + float flEchoTime; + float flEchoDepth; + float flModulationTime; + float flModulationDepth; + float flAirAbsorptionGainHF; + float flHFReference; + float flLFReference; + float flRoomRolloffFactor; + int iDecayHFLimit; +} EFXEAXREVERBPROPERTIES, *LPEFXEAXREVERBPROPERTIES; +#endif + +/* Default Presets */ + +#define EFX_REVERB_PRESET_GENERIC \ + { 1.0000f, 1.0000f, 0.3162f, 0.8913f, 1.0000f, 1.4900f, 0.8300f, 1.0000f, 0.0500f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_PADDEDCELL \ + { 0.1715f, 1.0000f, 0.3162f, 0.0010f, 1.0000f, 0.1700f, 0.1000f, 1.0000f, 0.2500f, 0.0010f, { 0.0000f, 0.0000f, 0.0000f }, 1.2691f, 0.0020f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_ROOM \ + { 0.4287f, 1.0000f, 0.3162f, 0.5929f, 1.0000f, 0.4000f, 0.8300f, 1.0000f, 0.1503f, 0.0020f, { 0.0000f, 0.0000f, 0.0000f }, 1.0629f, 0.0030f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_BATHROOM \ + { 0.1715f, 1.0000f, 0.3162f, 0.2512f, 1.0000f, 1.4900f, 0.5400f, 1.0000f, 0.6531f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 3.2734f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_LIVINGROOM \ + { 0.9766f, 1.0000f, 0.3162f, 0.0010f, 1.0000f, 0.5000f, 0.1000f, 1.0000f, 0.2051f, 0.0030f, { 0.0000f, 0.0000f, 0.0000f }, 0.2805f, 0.0040f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_STONEROOM \ + { 1.0000f, 1.0000f, 0.3162f, 0.7079f, 1.0000f, 2.3100f, 0.6400f, 1.0000f, 0.4411f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.1003f, 0.0170f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_AUDITORIUM \ + { 1.0000f, 1.0000f, 0.3162f, 0.5781f, 1.0000f, 4.3200f, 0.5900f, 1.0000f, 0.4032f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 0.7170f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CONCERTHALL \ + { 1.0000f, 1.0000f, 0.3162f, 0.5623f, 1.0000f, 3.9200f, 0.7000f, 1.0000f, 0.2427f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 0.9977f, 0.0290f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CAVE \ + { 1.0000f, 1.0000f, 0.3162f, 1.0000f, 1.0000f, 2.9100f, 1.3000f, 1.0000f, 0.5000f, 0.0150f, { 0.0000f, 0.0000f, 0.0000f }, 0.7063f, 0.0220f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_ARENA \ + { 1.0000f, 1.0000f, 0.3162f, 0.4477f, 1.0000f, 7.2400f, 0.3300f, 1.0000f, 0.2612f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 1.0186f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_HANGAR \ + { 1.0000f, 1.0000f, 0.3162f, 0.3162f, 1.0000f, 10.0500f, 0.2300f, 1.0000f, 0.5000f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 1.2560f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CARPETEDHALLWAY \ + { 0.4287f, 1.0000f, 0.3162f, 0.0100f, 1.0000f, 0.3000f, 0.1000f, 1.0000f, 0.1215f, 0.0020f, { 0.0000f, 0.0000f, 0.0000f }, 0.1531f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_HALLWAY \ + { 0.3645f, 1.0000f, 0.3162f, 0.7079f, 1.0000f, 1.4900f, 0.5900f, 1.0000f, 0.2458f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.6615f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_STONECORRIDOR \ + { 1.0000f, 1.0000f, 0.3162f, 0.7612f, 1.0000f, 2.7000f, 0.7900f, 1.0000f, 0.2472f, 0.0130f, { 0.0000f, 0.0000f, 0.0000f }, 1.5758f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_ALLEY \ + { 1.0000f, 0.3000f, 0.3162f, 0.7328f, 1.0000f, 1.4900f, 0.8600f, 1.0000f, 0.2500f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 0.9954f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.1250f, 0.9500f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_FOREST \ + { 1.0000f, 0.3000f, 0.3162f, 0.0224f, 1.0000f, 1.4900f, 0.5400f, 1.0000f, 0.0525f, 0.1620f, { 0.0000f, 0.0000f, 0.0000f }, 0.7682f, 0.0880f, { 0.0000f, 0.0000f, 0.0000f }, 0.1250f, 1.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CITY \ + { 1.0000f, 0.5000f, 0.3162f, 0.3981f, 1.0000f, 1.4900f, 0.6700f, 1.0000f, 0.0730f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 0.1427f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_MOUNTAINS \ + { 1.0000f, 0.2700f, 0.3162f, 0.0562f, 1.0000f, 1.4900f, 0.2100f, 1.0000f, 0.0407f, 0.3000f, { 0.0000f, 0.0000f, 0.0000f }, 0.1919f, 0.1000f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 1.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_QUARRY \ + { 1.0000f, 1.0000f, 0.3162f, 0.3162f, 1.0000f, 1.4900f, 0.8300f, 1.0000f, 0.0000f, 0.0610f, { 0.0000f, 0.0000f, 0.0000f }, 1.7783f, 0.0250f, { 0.0000f, 0.0000f, 0.0000f }, 0.1250f, 0.7000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_PLAIN \ + { 1.0000f, 0.2100f, 0.3162f, 0.1000f, 1.0000f, 1.4900f, 0.5000f, 1.0000f, 0.0585f, 0.1790f, { 0.0000f, 0.0000f, 0.0000f }, 0.1089f, 0.1000f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 1.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_PARKINGLOT \ + { 1.0000f, 1.0000f, 0.3162f, 1.0000f, 1.0000f, 1.6500f, 1.5000f, 1.0000f, 0.2082f, 0.0080f, { 0.0000f, 0.0000f, 0.0000f }, 0.2652f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_SEWERPIPE \ + { 0.3071f, 0.8000f, 0.3162f, 0.3162f, 1.0000f, 2.8100f, 0.1400f, 1.0000f, 1.6387f, 0.0140f, { 0.0000f, 0.0000f, 0.0000f }, 3.2471f, 0.0210f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_UNDERWATER \ + { 0.3645f, 1.0000f, 0.3162f, 0.0100f, 1.0000f, 1.4900f, 0.1000f, 1.0000f, 0.5963f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 7.0795f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 1.1800f, 0.3480f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_DRUGGED \ + { 0.4287f, 0.5000f, 0.3162f, 1.0000f, 1.0000f, 8.3900f, 1.3900f, 1.0000f, 0.8760f, 0.0020f, { 0.0000f, 0.0000f, 0.0000f }, 3.1081f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 1.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_DIZZY \ + { 0.3645f, 0.6000f, 0.3162f, 0.6310f, 1.0000f, 17.2300f, 0.5600f, 1.0000f, 0.1392f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 0.4937f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 1.0000f, 0.8100f, 0.3100f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_PSYCHOTIC \ + { 0.0625f, 0.5000f, 0.3162f, 0.8404f, 1.0000f, 7.5600f, 0.9100f, 1.0000f, 0.4864f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 2.4378f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 4.0000f, 1.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +/* Castle Presets */ + +#define EFX_REVERB_PRESET_CASTLE_SMALLROOM \ + { 1.0000f, 0.8900f, 0.3162f, 0.3981f, 0.1000f, 1.2200f, 0.8300f, 0.3100f, 0.8913f, 0.0220f, { 0.0000f, 0.0000f, 0.0000f }, 1.9953f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.1380f, 0.0800f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CASTLE_SHORTPASSAGE \ + { 1.0000f, 0.8900f, 0.3162f, 0.3162f, 0.1000f, 2.3200f, 0.8300f, 0.3100f, 0.8913f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0230f, { 0.0000f, 0.0000f, 0.0000f }, 0.1380f, 0.0800f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CASTLE_MEDIUMROOM \ + { 1.0000f, 0.9300f, 0.3162f, 0.2818f, 0.1000f, 2.0400f, 0.8300f, 0.4600f, 0.6310f, 0.0220f, { 0.0000f, 0.0000f, 0.0000f }, 1.5849f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.1550f, 0.0300f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CASTLE_LARGEROOM \ + { 1.0000f, 0.8200f, 0.3162f, 0.2818f, 0.1259f, 2.5300f, 0.8300f, 0.5000f, 0.4467f, 0.0340f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0160f, { 0.0000f, 0.0000f, 0.0000f }, 0.1850f, 0.0700f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CASTLE_LONGPASSAGE \ + { 1.0000f, 0.8900f, 0.3162f, 0.3981f, 0.1000f, 3.4200f, 0.8300f, 0.3100f, 0.8913f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0230f, { 0.0000f, 0.0000f, 0.0000f }, 0.1380f, 0.0800f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CASTLE_HALL \ + { 1.0000f, 0.8100f, 0.3162f, 0.2818f, 0.1778f, 3.1400f, 0.7900f, 0.6200f, 0.1778f, 0.0560f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0240f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CASTLE_CUPBOARD \ + { 1.0000f, 0.8900f, 0.3162f, 0.2818f, 0.1000f, 0.6700f, 0.8700f, 0.3100f, 1.4125f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 3.5481f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 0.1380f, 0.0800f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CASTLE_COURTYARD \ + { 1.0000f, 0.4200f, 0.3162f, 0.4467f, 0.1995f, 2.1300f, 0.6100f, 0.2300f, 0.2239f, 0.1600f, { 0.0000f, 0.0000f, 0.0000f }, 0.7079f, 0.0360f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.3700f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_CASTLE_ALCOVE \ + { 1.0000f, 0.8900f, 0.3162f, 0.5012f, 0.1000f, 1.6400f, 0.8700f, 0.3100f, 1.0000f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0340f, { 0.0000f, 0.0000f, 0.0000f }, 0.1380f, 0.0800f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } + +/* Factory Presets */ + +#define EFX_REVERB_PRESET_FACTORY_SMALLROOM \ + { 0.3645f, 0.8200f, 0.3162f, 0.7943f, 0.5012f, 1.7200f, 0.6500f, 1.3100f, 0.7079f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.7783f, 0.0240f, { 0.0000f, 0.0000f, 0.0000f }, 0.1190f, 0.0700f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_FACTORY_SHORTPASSAGE \ + { 0.3645f, 0.6400f, 0.2512f, 0.7943f, 0.5012f, 2.5300f, 0.6500f, 1.3100f, 1.0000f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0380f, { 0.0000f, 0.0000f, 0.0000f }, 0.1350f, 0.2300f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_FACTORY_MEDIUMROOM \ + { 0.4287f, 0.8200f, 0.2512f, 0.7943f, 0.5012f, 2.7600f, 0.6500f, 1.3100f, 0.2818f, 0.0220f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0230f, { 0.0000f, 0.0000f, 0.0000f }, 0.1740f, 0.0700f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_FACTORY_LARGEROOM \ + { 0.4287f, 0.7500f, 0.2512f, 0.7079f, 0.6310f, 4.2400f, 0.5100f, 1.3100f, 0.1778f, 0.0390f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0230f, { 0.0000f, 0.0000f, 0.0000f }, 0.2310f, 0.0700f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_FACTORY_LONGPASSAGE \ + { 0.3645f, 0.6400f, 0.2512f, 0.7943f, 0.5012f, 4.0600f, 0.6500f, 1.3100f, 1.0000f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0370f, { 0.0000f, 0.0000f, 0.0000f }, 0.1350f, 0.2300f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_FACTORY_HALL \ + { 0.4287f, 0.7500f, 0.3162f, 0.7079f, 0.6310f, 7.4300f, 0.5100f, 1.3100f, 0.0631f, 0.0730f, { 0.0000f, 0.0000f, 0.0000f }, 0.8913f, 0.0270f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0700f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_FACTORY_CUPBOARD \ + { 0.3071f, 0.6300f, 0.2512f, 0.7943f, 0.5012f, 0.4900f, 0.6500f, 1.3100f, 1.2589f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.9953f, 0.0320f, { 0.0000f, 0.0000f, 0.0000f }, 0.1070f, 0.0700f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_FACTORY_COURTYARD \ + { 0.3071f, 0.5700f, 0.3162f, 0.3162f, 0.6310f, 2.3200f, 0.2900f, 0.5600f, 0.2239f, 0.1400f, { 0.0000f, 0.0000f, 0.0000f }, 0.3981f, 0.0390f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.2900f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_FACTORY_ALCOVE \ + { 0.3645f, 0.5900f, 0.2512f, 0.7943f, 0.5012f, 3.1400f, 0.6500f, 1.3100f, 1.4125f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.0000f, 0.0380f, { 0.0000f, 0.0000f, 0.0000f }, 0.1140f, 0.1000f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } + +/* Ice Palace Presets */ + +#define EFX_REVERB_PRESET_ICEPALACE_SMALLROOM \ + { 1.0000f, 0.8400f, 0.3162f, 0.5623f, 0.2818f, 1.5100f, 1.5300f, 0.2700f, 0.8913f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.1640f, 0.1400f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_ICEPALACE_SHORTPASSAGE \ + { 1.0000f, 0.7500f, 0.3162f, 0.5623f, 0.2818f, 1.7900f, 1.4600f, 0.2800f, 0.5012f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0190f, { 0.0000f, 0.0000f, 0.0000f }, 0.1770f, 0.0900f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_ICEPALACE_MEDIUMROOM \ + { 1.0000f, 0.8700f, 0.3162f, 0.5623f, 0.4467f, 2.2200f, 1.5300f, 0.3200f, 0.3981f, 0.0390f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0270f, { 0.0000f, 0.0000f, 0.0000f }, 0.1860f, 0.1200f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_ICEPALACE_LARGEROOM \ + { 1.0000f, 0.8100f, 0.3162f, 0.5623f, 0.4467f, 3.1400f, 1.5300f, 0.3200f, 0.2512f, 0.0390f, { 0.0000f, 0.0000f, 0.0000f }, 1.0000f, 0.0270f, { 0.0000f, 0.0000f, 0.0000f }, 0.2140f, 0.1100f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_ICEPALACE_LONGPASSAGE \ + { 1.0000f, 0.7700f, 0.3162f, 0.5623f, 0.3981f, 3.0100f, 1.4600f, 0.2800f, 0.7943f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0250f, { 0.0000f, 0.0000f, 0.0000f }, 0.1860f, 0.0400f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_ICEPALACE_HALL \ + { 1.0000f, 0.7600f, 0.3162f, 0.4467f, 0.5623f, 5.4900f, 1.5300f, 0.3800f, 0.1122f, 0.0540f, { 0.0000f, 0.0000f, 0.0000f }, 0.6310f, 0.0520f, { 0.0000f, 0.0000f, 0.0000f }, 0.2260f, 0.1100f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_ICEPALACE_CUPBOARD \ + { 1.0000f, 0.8300f, 0.3162f, 0.5012f, 0.2239f, 0.7600f, 1.5300f, 0.2600f, 1.1220f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.9953f, 0.0160f, { 0.0000f, 0.0000f, 0.0000f }, 0.1430f, 0.0800f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_ICEPALACE_COURTYARD \ + { 1.0000f, 0.5900f, 0.3162f, 0.2818f, 0.3162f, 2.0400f, 1.2000f, 0.3800f, 0.3162f, 0.1730f, { 0.0000f, 0.0000f, 0.0000f }, 0.3162f, 0.0430f, { 0.0000f, 0.0000f, 0.0000f }, 0.2350f, 0.4800f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_ICEPALACE_ALCOVE \ + { 1.0000f, 0.8400f, 0.3162f, 0.5623f, 0.2818f, 2.7600f, 1.4600f, 0.2800f, 1.1220f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 0.8913f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.1610f, 0.0900f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } + +/* Space Station Presets */ + +#define EFX_REVERB_PRESET_SPACESTATION_SMALLROOM \ + { 0.2109f, 0.7000f, 0.3162f, 0.7079f, 0.8913f, 1.7200f, 0.8200f, 0.5500f, 0.7943f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0130f, { 0.0000f, 0.0000f, 0.0000f }, 0.1880f, 0.2600f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SPACESTATION_SHORTPASSAGE \ + { 0.2109f, 0.8700f, 0.3162f, 0.6310f, 0.8913f, 3.5700f, 0.5000f, 0.5500f, 1.0000f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0160f, { 0.0000f, 0.0000f, 0.0000f }, 0.1720f, 0.2000f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SPACESTATION_MEDIUMROOM \ + { 0.2109f, 0.7500f, 0.3162f, 0.6310f, 0.8913f, 3.0100f, 0.5000f, 0.5500f, 0.3981f, 0.0340f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0350f, { 0.0000f, 0.0000f, 0.0000f }, 0.2090f, 0.3100f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SPACESTATION_LARGEROOM \ + { 0.3645f, 0.8100f, 0.3162f, 0.6310f, 0.8913f, 3.8900f, 0.3800f, 0.6100f, 0.3162f, 0.0560f, { 0.0000f, 0.0000f, 0.0000f }, 0.8913f, 0.0350f, { 0.0000f, 0.0000f, 0.0000f }, 0.2330f, 0.2800f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SPACESTATION_LONGPASSAGE \ + { 0.4287f, 0.8200f, 0.3162f, 0.6310f, 0.8913f, 4.6200f, 0.6200f, 0.5500f, 1.0000f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0310f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.2300f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SPACESTATION_HALL \ + { 0.4287f, 0.8700f, 0.3162f, 0.6310f, 0.8913f, 7.1100f, 0.3800f, 0.6100f, 0.1778f, 0.1000f, { 0.0000f, 0.0000f, 0.0000f }, 0.6310f, 0.0470f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.2500f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SPACESTATION_CUPBOARD \ + { 0.1715f, 0.5600f, 0.3162f, 0.7079f, 0.8913f, 0.7900f, 0.8100f, 0.5500f, 1.4125f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.7783f, 0.0180f, { 0.0000f, 0.0000f, 0.0000f }, 0.1810f, 0.3100f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SPACESTATION_ALCOVE \ + { 0.2109f, 0.7800f, 0.3162f, 0.7079f, 0.8913f, 1.1600f, 0.8100f, 0.5500f, 1.4125f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.0000f, 0.0180f, { 0.0000f, 0.0000f, 0.0000f }, 0.1920f, 0.2100f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } + +/* Wooden Galleon Presets */ + +#define EFX_REVERB_PRESET_WOODEN_SMALLROOM \ + { 1.0000f, 1.0000f, 0.3162f, 0.1122f, 0.3162f, 0.7900f, 0.3200f, 0.8700f, 1.0000f, 0.0320f, { 0.0000f, 0.0000f, 0.0000f }, 0.8913f, 0.0290f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_WOODEN_SHORTPASSAGE \ + { 1.0000f, 1.0000f, 0.3162f, 0.1259f, 0.3162f, 1.7500f, 0.5000f, 0.8700f, 0.8913f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 0.6310f, 0.0240f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_WOODEN_MEDIUMROOM \ + { 1.0000f, 1.0000f, 0.3162f, 0.1000f, 0.2818f, 1.4700f, 0.4200f, 0.8200f, 0.8913f, 0.0490f, { 0.0000f, 0.0000f, 0.0000f }, 0.8913f, 0.0290f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_WOODEN_LARGEROOM \ + { 1.0000f, 1.0000f, 0.3162f, 0.0891f, 0.2818f, 2.6500f, 0.3300f, 0.8200f, 0.8913f, 0.0660f, { 0.0000f, 0.0000f, 0.0000f }, 0.7943f, 0.0490f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_WOODEN_LONGPASSAGE \ + { 1.0000f, 1.0000f, 0.3162f, 0.1000f, 0.3162f, 1.9900f, 0.4000f, 0.7900f, 1.0000f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 0.4467f, 0.0360f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_WOODEN_HALL \ + { 1.0000f, 1.0000f, 0.3162f, 0.0794f, 0.2818f, 3.4500f, 0.3000f, 0.8200f, 0.8913f, 0.0880f, { 0.0000f, 0.0000f, 0.0000f }, 0.7943f, 0.0630f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_WOODEN_CUPBOARD \ + { 1.0000f, 1.0000f, 0.3162f, 0.1413f, 0.3162f, 0.5600f, 0.4600f, 0.9100f, 1.1220f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0280f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_WOODEN_COURTYARD \ + { 1.0000f, 0.6500f, 0.3162f, 0.0794f, 0.3162f, 1.7900f, 0.3500f, 0.7900f, 0.5623f, 0.1230f, { 0.0000f, 0.0000f, 0.0000f }, 0.1000f, 0.0320f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_WOODEN_ALCOVE \ + { 1.0000f, 1.0000f, 0.3162f, 0.1259f, 0.3162f, 1.2200f, 0.6200f, 0.9100f, 1.1220f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 0.7079f, 0.0240f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } + +/* Sports Presets */ + +#define EFX_REVERB_PRESET_SPORT_EMPTYSTADIUM \ + { 1.0000f, 1.0000f, 0.3162f, 0.4467f, 0.7943f, 6.2600f, 0.5100f, 1.1000f, 0.0631f, 0.1830f, { 0.0000f, 0.0000f, 0.0000f }, 0.3981f, 0.0380f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SPORT_SQUASHCOURT \ + { 1.0000f, 0.7500f, 0.3162f, 0.3162f, 0.7943f, 2.2200f, 0.9100f, 1.1600f, 0.4467f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 0.7943f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.1260f, 0.1900f, 0.2500f, 0.0000f, 0.9943f, 7176.8999f, 211.2000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SPORT_SMALLSWIMMINGPOOL \ + { 1.0000f, 0.7000f, 0.3162f, 0.7943f, 0.8913f, 2.7600f, 1.2500f, 1.1400f, 0.6310f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 0.7943f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.1790f, 0.1500f, 0.8950f, 0.1900f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_SPORT_LARGESWIMMINGPOOL \ + { 1.0000f, 0.8200f, 0.3162f, 0.7943f, 1.0000f, 5.4900f, 1.3100f, 1.1400f, 0.4467f, 0.0390f, { 0.0000f, 0.0000f, 0.0000f }, 0.5012f, 0.0490f, { 0.0000f, 0.0000f, 0.0000f }, 0.2220f, 0.5500f, 1.1590f, 0.2100f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_SPORT_GYMNASIUM \ + { 1.0000f, 0.8100f, 0.3162f, 0.4467f, 0.8913f, 3.1400f, 1.0600f, 1.3500f, 0.3981f, 0.0290f, { 0.0000f, 0.0000f, 0.0000f }, 0.5623f, 0.0450f, { 0.0000f, 0.0000f, 0.0000f }, 0.1460f, 0.1400f, 0.2500f, 0.0000f, 0.9943f, 7176.8999f, 211.2000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SPORT_FULLSTADIUM \ + { 1.0000f, 1.0000f, 0.3162f, 0.0708f, 0.7943f, 5.2500f, 0.1700f, 0.8000f, 0.1000f, 0.1880f, { 0.0000f, 0.0000f, 0.0000f }, 0.2818f, 0.0380f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SPORT_STADIUMTANNOY \ + { 1.0000f, 0.7800f, 0.3162f, 0.5623f, 0.5012f, 2.5300f, 0.8800f, 0.6800f, 0.2818f, 0.2300f, { 0.0000f, 0.0000f, 0.0000f }, 0.5012f, 0.0630f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.2000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +/* Prefab Presets */ + +#define EFX_REVERB_PRESET_PREFAB_WORKSHOP \ + { 0.4287f, 1.0000f, 0.3162f, 0.1413f, 0.3981f, 0.7600f, 1.0000f, 1.0000f, 1.0000f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_PREFAB_SCHOOLROOM \ + { 0.4022f, 0.6900f, 0.3162f, 0.6310f, 0.5012f, 0.9800f, 0.4500f, 0.1800f, 1.4125f, 0.0170f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0150f, { 0.0000f, 0.0000f, 0.0000f }, 0.0950f, 0.1400f, 0.2500f, 0.0000f, 0.9943f, 7176.8999f, 211.2000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_PREFAB_PRACTISEROOM \ + { 0.4022f, 0.8700f, 0.3162f, 0.3981f, 0.5012f, 1.1200f, 0.5600f, 0.1800f, 1.2589f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.0950f, 0.1400f, 0.2500f, 0.0000f, 0.9943f, 7176.8999f, 211.2000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_PREFAB_OUTHOUSE \ + { 1.0000f, 0.8200f, 0.3162f, 0.1122f, 0.1585f, 1.3800f, 0.3800f, 0.3500f, 0.8913f, 0.0240f, { 0.0000f, 0.0000f, -0.0000f }, 0.6310f, 0.0440f, { 0.0000f, 0.0000f, 0.0000f }, 0.1210f, 0.1700f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 107.5000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_PREFAB_CARAVAN \ + { 1.0000f, 1.0000f, 0.3162f, 0.0891f, 0.1259f, 0.4300f, 1.5000f, 1.0000f, 1.0000f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.9953f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +/* Dome and Pipe Presets */ + +#define EFX_REVERB_PRESET_DOME_TOMB \ + { 1.0000f, 0.7900f, 0.3162f, 0.3548f, 0.2239f, 4.1800f, 0.2100f, 0.1000f, 0.3868f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 1.6788f, 0.0220f, { 0.0000f, 0.0000f, 0.0000f }, 0.1770f, 0.1900f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 20.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_PIPE_SMALL \ + { 1.0000f, 1.0000f, 0.3162f, 0.3548f, 0.2239f, 5.0400f, 0.1000f, 0.1000f, 0.5012f, 0.0320f, { 0.0000f, 0.0000f, 0.0000f }, 2.5119f, 0.0150f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 20.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_DOME_SAINTPAULS \ + { 1.0000f, 0.8700f, 0.3162f, 0.3548f, 0.2239f, 10.4800f, 0.1900f, 0.1000f, 0.1778f, 0.0900f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0420f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.1200f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 20.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_PIPE_LONGTHIN \ + { 0.2560f, 0.9100f, 0.3162f, 0.4467f, 0.2818f, 9.2100f, 0.1800f, 0.1000f, 0.7079f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 0.7079f, 0.0220f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 20.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_PIPE_LARGE \ + { 1.0000f, 1.0000f, 0.3162f, 0.3548f, 0.2239f, 8.4500f, 0.1000f, 0.1000f, 0.3981f, 0.0460f, { 0.0000f, 0.0000f, 0.0000f }, 1.5849f, 0.0320f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 20.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_PIPE_RESONANT \ + { 0.1373f, 0.9100f, 0.3162f, 0.4467f, 0.2818f, 6.8100f, 0.1800f, 0.1000f, 0.7079f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.0000f, 0.0220f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 20.0000f, 0.0000f, 0x0 } + +/* Outdoors Presets */ + +#define EFX_REVERB_PRESET_OUTDOORS_BACKYARD \ + { 1.0000f, 0.4500f, 0.3162f, 0.2512f, 0.5012f, 1.1200f, 0.3400f, 0.4600f, 0.4467f, 0.0690f, { 0.0000f, 0.0000f, -0.0000f }, 0.7079f, 0.0230f, { 0.0000f, 0.0000f, 0.0000f }, 0.2180f, 0.3400f, 0.2500f, 0.0000f, 0.9943f, 4399.1001f, 242.9000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_OUTDOORS_ROLLINGPLAINS \ + { 1.0000f, 0.0000f, 0.3162f, 0.0112f, 0.6310f, 2.1300f, 0.2100f, 0.4600f, 0.1778f, 0.3000f, { 0.0000f, 0.0000f, -0.0000f }, 0.4467f, 0.0190f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 1.0000f, 0.2500f, 0.0000f, 0.9943f, 4399.1001f, 242.9000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_OUTDOORS_DEEPCANYON \ + { 1.0000f, 0.7400f, 0.3162f, 0.1778f, 0.6310f, 3.8900f, 0.2100f, 0.4600f, 0.3162f, 0.2230f, { 0.0000f, 0.0000f, -0.0000f }, 0.3548f, 0.0190f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 1.0000f, 0.2500f, 0.0000f, 0.9943f, 4399.1001f, 242.9000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_OUTDOORS_CREEK \ + { 1.0000f, 0.3500f, 0.3162f, 0.1778f, 0.5012f, 2.1300f, 0.2100f, 0.4600f, 0.3981f, 0.1150f, { 0.0000f, 0.0000f, -0.0000f }, 0.1995f, 0.0310f, { 0.0000f, 0.0000f, 0.0000f }, 0.2180f, 0.3400f, 0.2500f, 0.0000f, 0.9943f, 4399.1001f, 242.9000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_OUTDOORS_VALLEY \ + { 1.0000f, 0.2800f, 0.3162f, 0.0282f, 0.1585f, 2.8800f, 0.2600f, 0.3500f, 0.1413f, 0.2630f, { 0.0000f, 0.0000f, -0.0000f }, 0.3981f, 0.1000f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.3400f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 107.5000f, 0.0000f, 0x0 } + +/* Mood Presets */ + +#define EFX_REVERB_PRESET_MOOD_HEAVEN \ + { 1.0000f, 0.9400f, 0.3162f, 0.7943f, 0.4467f, 5.0400f, 1.1200f, 0.5600f, 0.2427f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0290f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0800f, 2.7420f, 0.0500f, 0.9977f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_MOOD_HELL \ + { 1.0000f, 0.5700f, 0.3162f, 0.3548f, 0.4467f, 3.5700f, 0.4900f, 2.0000f, 0.0000f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.1100f, 0.0400f, 2.1090f, 0.5200f, 0.9943f, 5000.0000f, 139.5000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_MOOD_MEMORY \ + { 1.0000f, 0.8500f, 0.3162f, 0.6310f, 0.3548f, 4.0600f, 0.8200f, 0.5600f, 0.0398f, 0.0000f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0000f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.4740f, 0.4500f, 0.9886f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +/* Driving Presets */ + +#define EFX_REVERB_PRESET_DRIVING_COMMENTATOR \ + { 1.0000f, 0.0000f, 3.1623f, 0.5623f, 0.5012f, 2.4200f, 0.8800f, 0.6800f, 0.1995f, 0.0930f, { 0.0000f, 0.0000f, 0.0000f }, 0.2512f, 0.0170f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 1.0000f, 0.2500f, 0.0000f, 0.9886f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_DRIVING_PITGARAGE \ + { 0.4287f, 0.5900f, 0.3162f, 0.7079f, 0.5623f, 1.7200f, 0.9300f, 0.8700f, 0.5623f, 0.0000f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0160f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.1100f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_DRIVING_INCAR_RACER \ + { 0.0832f, 0.8000f, 0.3162f, 1.0000f, 0.7943f, 0.1700f, 2.0000f, 0.4100f, 1.7783f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 0.7079f, 0.0150f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 10268.2002f, 251.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_DRIVING_INCAR_SPORTS \ + { 0.0832f, 0.8000f, 0.3162f, 0.6310f, 1.0000f, 0.1700f, 0.7500f, 0.4100f, 1.0000f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 0.5623f, 0.0000f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 10268.2002f, 251.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_DRIVING_INCAR_LUXURY \ + { 0.2560f, 1.0000f, 0.3162f, 0.1000f, 0.5012f, 0.1300f, 0.4100f, 0.4600f, 0.7943f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.5849f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 10268.2002f, 251.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_DRIVING_FULLGRANDSTAND \ + { 1.0000f, 1.0000f, 0.3162f, 0.2818f, 0.6310f, 3.0100f, 1.3700f, 1.2800f, 0.3548f, 0.0900f, { 0.0000f, 0.0000f, 0.0000f }, 0.1778f, 0.0490f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 10420.2002f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_DRIVING_EMPTYGRANDSTAND \ + { 1.0000f, 1.0000f, 0.3162f, 1.0000f, 0.7943f, 4.6200f, 1.7500f, 1.4000f, 0.2082f, 0.0900f, { 0.0000f, 0.0000f, 0.0000f }, 0.2512f, 0.0490f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 10420.2002f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_DRIVING_TUNNEL \ + { 1.0000f, 0.8100f, 0.3162f, 0.3981f, 0.8913f, 3.4200f, 0.9400f, 1.3100f, 0.7079f, 0.0510f, { 0.0000f, 0.0000f, 0.0000f }, 0.7079f, 0.0470f, { 0.0000f, 0.0000f, 0.0000f }, 0.2140f, 0.0500f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 155.3000f, 0.0000f, 0x1 } + +/* City Presets */ + +#define EFX_REVERB_PRESET_CITY_STREETS \ + { 1.0000f, 0.7800f, 0.3162f, 0.7079f, 0.8913f, 1.7900f, 1.1200f, 0.9100f, 0.2818f, 0.0460f, { 0.0000f, 0.0000f, 0.0000f }, 0.1995f, 0.0280f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.2000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CITY_SUBWAY \ + { 1.0000f, 0.7400f, 0.3162f, 0.7079f, 0.8913f, 3.0100f, 1.2300f, 0.9100f, 0.7079f, 0.0460f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0280f, { 0.0000f, 0.0000f, 0.0000f }, 0.1250f, 0.2100f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CITY_MUSEUM \ + { 1.0000f, 0.8200f, 0.3162f, 0.1778f, 0.1778f, 3.2800f, 1.4000f, 0.5700f, 0.2512f, 0.0390f, { 0.0000f, 0.0000f, -0.0000f }, 0.8913f, 0.0340f, { 0.0000f, 0.0000f, 0.0000f }, 0.1300f, 0.1700f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 107.5000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_CITY_LIBRARY \ + { 1.0000f, 0.8200f, 0.3162f, 0.2818f, 0.0891f, 2.7600f, 0.8900f, 0.4100f, 0.3548f, 0.0290f, { 0.0000f, 0.0000f, -0.0000f }, 0.8913f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 0.1300f, 0.1700f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 107.5000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_CITY_UNDERPASS \ + { 1.0000f, 0.8200f, 0.3162f, 0.4467f, 0.8913f, 3.5700f, 1.1200f, 0.9100f, 0.3981f, 0.0590f, { 0.0000f, 0.0000f, 0.0000f }, 0.8913f, 0.0370f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.1400f, 0.2500f, 0.0000f, 0.9920f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CITY_ABANDONED \ + { 1.0000f, 0.6900f, 0.3162f, 0.7943f, 0.8913f, 3.2800f, 1.1700f, 0.9100f, 0.4467f, 0.0440f, { 0.0000f, 0.0000f, 0.0000f }, 0.2818f, 0.0240f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.2000f, 0.2500f, 0.0000f, 0.9966f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +/* Misc. Presets */ + +#define EFX_REVERB_PRESET_DUSTYROOM \ + { 0.3645f, 0.5600f, 0.3162f, 0.7943f, 0.7079f, 1.7900f, 0.3800f, 0.2100f, 0.5012f, 0.0020f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0060f, { 0.0000f, 0.0000f, 0.0000f }, 0.2020f, 0.0500f, 0.2500f, 0.0000f, 0.9886f, 13046.0000f, 163.3000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CHAPEL \ + { 1.0000f, 0.8400f, 0.3162f, 0.5623f, 1.0000f, 4.6200f, 0.6400f, 1.2300f, 0.4467f, 0.0320f, { 0.0000f, 0.0000f, 0.0000f }, 0.7943f, 0.0490f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.1100f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SMALLWATERROOM \ + { 1.0000f, 0.7000f, 0.3162f, 0.4477f, 1.0000f, 1.5100f, 1.2500f, 1.1400f, 0.8913f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.1790f, 0.1500f, 0.8950f, 0.1900f, 0.9920f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +#endif /* EFX_PRESETS_H */ diff --git a/Externals/OpenAL/include/efx.h b/Externals/OpenAL/include/efx.h index fece1608de..57766983f6 100644 --- a/Externals/OpenAL/include/efx.h +++ b/Externals/OpenAL/include/efx.h @@ -1,737 +1,761 @@ -#ifndef __efx_h_ -#define __efx_h_ +#ifndef AL_EFX_H +#define AL_EFX_H +#include "alc.h" +#include "al.h" + #ifdef __cplusplus extern "C" { #endif -#define ALC_EXT_EFX_NAME "ALC_EXT_EFX" +#define ALC_EXT_EFX_NAME "ALC_EXT_EFX" -/** - * Context definitions to be used with alcCreateContext. - * These values must be unique and not conflict with other - * al context values. - */ -#define ALC_EFX_MAJOR_VERSION 0x20001 -#define ALC_EFX_MINOR_VERSION 0x20002 -#define ALC_MAX_AUXILIARY_SENDS 0x20003 +#define ALC_EFX_MAJOR_VERSION 0x20001 +#define ALC_EFX_MINOR_VERSION 0x20002 +#define ALC_MAX_AUXILIARY_SENDS 0x20003 +/* Listener properties. */ +#define AL_METERS_PER_UNIT 0x20004 + +/* Source properties. */ +#define AL_DIRECT_FILTER 0x20005 +#define AL_AUXILIARY_SEND_FILTER 0x20006 +#define AL_AIR_ABSORPTION_FACTOR 0x20007 +#define AL_ROOM_ROLLOFF_FACTOR 0x20008 +#define AL_CONE_OUTER_GAINHF 0x20009 +#define AL_DIRECT_FILTER_GAINHF_AUTO 0x2000A +#define AL_AUXILIARY_SEND_FILTER_GAIN_AUTO 0x2000B +#define AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO 0x2000C -/** - * Listener definitions to be used with alListener functions. - * These values must be unique and not conflict with other - * al listener values. - */ -#define AL_METERS_PER_UNIT 0x20004 +/* Effect properties. */ +/* Reverb effect parameters */ +#define AL_REVERB_DENSITY 0x0001 +#define AL_REVERB_DIFFUSION 0x0002 +#define AL_REVERB_GAIN 0x0003 +#define AL_REVERB_GAINHF 0x0004 +#define AL_REVERB_DECAY_TIME 0x0005 +#define AL_REVERB_DECAY_HFRATIO 0x0006 +#define AL_REVERB_REFLECTIONS_GAIN 0x0007 +#define AL_REVERB_REFLECTIONS_DELAY 0x0008 +#define AL_REVERB_LATE_REVERB_GAIN 0x0009 +#define AL_REVERB_LATE_REVERB_DELAY 0x000A +#define AL_REVERB_AIR_ABSORPTION_GAINHF 0x000B +#define AL_REVERB_ROOM_ROLLOFF_FACTOR 0x000C +#define AL_REVERB_DECAY_HFLIMIT 0x000D +/* EAX Reverb effect parameters */ +#define AL_EAXREVERB_DENSITY 0x0001 +#define AL_EAXREVERB_DIFFUSION 0x0002 +#define AL_EAXREVERB_GAIN 0x0003 +#define AL_EAXREVERB_GAINHF 0x0004 +#define AL_EAXREVERB_GAINLF 0x0005 +#define AL_EAXREVERB_DECAY_TIME 0x0006 +#define AL_EAXREVERB_DECAY_HFRATIO 0x0007 +#define AL_EAXREVERB_DECAY_LFRATIO 0x0008 +#define AL_EAXREVERB_REFLECTIONS_GAIN 0x0009 +#define AL_EAXREVERB_REFLECTIONS_DELAY 0x000A +#define AL_EAXREVERB_REFLECTIONS_PAN 0x000B +#define AL_EAXREVERB_LATE_REVERB_GAIN 0x000C +#define AL_EAXREVERB_LATE_REVERB_DELAY 0x000D +#define AL_EAXREVERB_LATE_REVERB_PAN 0x000E +#define AL_EAXREVERB_ECHO_TIME 0x000F +#define AL_EAXREVERB_ECHO_DEPTH 0x0010 +#define AL_EAXREVERB_MODULATION_TIME 0x0011 +#define AL_EAXREVERB_MODULATION_DEPTH 0x0012 +#define AL_EAXREVERB_AIR_ABSORPTION_GAINHF 0x0013 +#define AL_EAXREVERB_HFREFERENCE 0x0014 +#define AL_EAXREVERB_LFREFERENCE 0x0015 +#define AL_EAXREVERB_ROOM_ROLLOFF_FACTOR 0x0016 +#define AL_EAXREVERB_DECAY_HFLIMIT 0x0017 +/* Chorus effect parameters */ +#define AL_CHORUS_WAVEFORM 0x0001 +#define AL_CHORUS_PHASE 0x0002 +#define AL_CHORUS_RATE 0x0003 +#define AL_CHORUS_DEPTH 0x0004 +#define AL_CHORUS_FEEDBACK 0x0005 +#define AL_CHORUS_DELAY 0x0006 -/** - * Source definitions to be used with alSource functions. - * These values must be unique and not conflict with other - * al source values. - */ -#define AL_DIRECT_FILTER 0x20005 -#define AL_AUXILIARY_SEND_FILTER 0x20006 -#define AL_AIR_ABSORPTION_FACTOR 0x20007 -#define AL_ROOM_ROLLOFF_FACTOR 0x20008 -#define AL_CONE_OUTER_GAINHF 0x20009 -#define AL_DIRECT_FILTER_GAINHF_AUTO 0x2000A -#define AL_AUXILIARY_SEND_FILTER_GAIN_AUTO 0x2000B -#define AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO 0x2000C +/* Distortion effect parameters */ +#define AL_DISTORTION_EDGE 0x0001 +#define AL_DISTORTION_GAIN 0x0002 +#define AL_DISTORTION_LOWPASS_CUTOFF 0x0003 +#define AL_DISTORTION_EQCENTER 0x0004 +#define AL_DISTORTION_EQBANDWIDTH 0x0005 +/* Echo effect parameters */ +#define AL_ECHO_DELAY 0x0001 +#define AL_ECHO_LRDELAY 0x0002 +#define AL_ECHO_DAMPING 0x0003 +#define AL_ECHO_FEEDBACK 0x0004 +#define AL_ECHO_SPREAD 0x0005 +/* Flanger effect parameters */ +#define AL_FLANGER_WAVEFORM 0x0001 +#define AL_FLANGER_PHASE 0x0002 +#define AL_FLANGER_RATE 0x0003 +#define AL_FLANGER_DEPTH 0x0004 +#define AL_FLANGER_FEEDBACK 0x0005 +#define AL_FLANGER_DELAY 0x0006 +/* Frequency shifter effect parameters */ +#define AL_FREQUENCY_SHIFTER_FREQUENCY 0x0001 +#define AL_FREQUENCY_SHIFTER_LEFT_DIRECTION 0x0002 +#define AL_FREQUENCY_SHIFTER_RIGHT_DIRECTION 0x0003 -/** - * Effect object definitions to be used with alEffect functions. - * - * Effect parameter value definitions, ranges, and defaults - * appear farther down in this file. - */ +/* Vocal morpher effect parameters */ +#define AL_VOCAL_MORPHER_PHONEMEA 0x0001 +#define AL_VOCAL_MORPHER_PHONEMEA_COARSE_TUNING 0x0002 +#define AL_VOCAL_MORPHER_PHONEMEB 0x0003 +#define AL_VOCAL_MORPHER_PHONEMEB_COARSE_TUNING 0x0004 +#define AL_VOCAL_MORPHER_WAVEFORM 0x0005 +#define AL_VOCAL_MORPHER_RATE 0x0006 -/* Reverb Parameters */ -#define AL_REVERB_DENSITY 0x0001 -#define AL_REVERB_DIFFUSION 0x0002 -#define AL_REVERB_GAIN 0x0003 -#define AL_REVERB_GAINHF 0x0004 -#define AL_REVERB_DECAY_TIME 0x0005 -#define AL_REVERB_DECAY_HFRATIO 0x0006 -#define AL_REVERB_REFLECTIONS_GAIN 0x0007 -#define AL_REVERB_REFLECTIONS_DELAY 0x0008 -#define AL_REVERB_LATE_REVERB_GAIN 0x0009 -#define AL_REVERB_LATE_REVERB_DELAY 0x000A -#define AL_REVERB_AIR_ABSORPTION_GAINHF 0x000B -#define AL_REVERB_ROOM_ROLLOFF_FACTOR 0x000C -#define AL_REVERB_DECAY_HFLIMIT 0x000D +/* Pitchshifter effect parameters */ +#define AL_PITCH_SHIFTER_COARSE_TUNE 0x0001 +#define AL_PITCH_SHIFTER_FINE_TUNE 0x0002 -/* Chorus Parameters */ -#define AL_CHORUS_WAVEFORM 0x0001 -#define AL_CHORUS_PHASE 0x0002 -#define AL_CHORUS_RATE 0x0003 -#define AL_CHORUS_DEPTH 0x0004 -#define AL_CHORUS_FEEDBACK 0x0005 -#define AL_CHORUS_DELAY 0x0006 +/* Ringmodulator effect parameters */ +#define AL_RING_MODULATOR_FREQUENCY 0x0001 +#define AL_RING_MODULATOR_HIGHPASS_CUTOFF 0x0002 +#define AL_RING_MODULATOR_WAVEFORM 0x0003 -/* Distortion Parameters */ -#define AL_DISTORTION_EDGE 0x0001 -#define AL_DISTORTION_GAIN 0x0002 -#define AL_DISTORTION_LOWPASS_CUTOFF 0x0003 -#define AL_DISTORTION_EQCENTER 0x0004 -#define AL_DISTORTION_EQBANDWIDTH 0x0005 +/* Autowah effect parameters */ +#define AL_AUTOWAH_ATTACK_TIME 0x0001 +#define AL_AUTOWAH_RELEASE_TIME 0x0002 +#define AL_AUTOWAH_RESONANCE 0x0003 +#define AL_AUTOWAH_PEAK_GAIN 0x0004 -/* Echo Parameters */ -#define AL_ECHO_DELAY 0x0001 -#define AL_ECHO_LRDELAY 0x0002 -#define AL_ECHO_DAMPING 0x0003 -#define AL_ECHO_FEEDBACK 0x0004 -#define AL_ECHO_SPREAD 0x0005 +/* Compressor effect parameters */ +#define AL_COMPRESSOR_ONOFF 0x0001 -/* Flanger Parameters */ -#define AL_FLANGER_WAVEFORM 0x0001 -#define AL_FLANGER_PHASE 0x0002 -#define AL_FLANGER_RATE 0x0003 -#define AL_FLANGER_DEPTH 0x0004 -#define AL_FLANGER_FEEDBACK 0x0005 -#define AL_FLANGER_DELAY 0x0006 - -/* Frequencyshifter Parameters */ -#define AL_FREQUENCY_SHIFTER_FREQUENCY 0x0001 -#define AL_FREQUENCY_SHIFTER_LEFT_DIRECTION 0x0002 -#define AL_FREQUENCY_SHIFTER_RIGHT_DIRECTION 0x0003 - -/* Vocalmorpher Parameters */ -#define AL_VOCAL_MORPHER_PHONEMEA 0x0001 -#define AL_VOCAL_MORPHER_PHONEMEA_COARSE_TUNING 0x0002 -#define AL_VOCAL_MORPHER_PHONEMEB 0x0003 -#define AL_VOCAL_MORPHER_PHONEMEB_COARSE_TUNING 0x0004 -#define AL_VOCAL_MORPHER_WAVEFORM 0x0005 -#define AL_VOCAL_MORPHER_RATE 0x0006 - -/* Pitchshifter Parameters */ -#define AL_PITCH_SHIFTER_COARSE_TUNE 0x0001 -#define AL_PITCH_SHIFTER_FINE_TUNE 0x0002 - -/* Ringmodulator Parameters */ -#define AL_RING_MODULATOR_FREQUENCY 0x0001 -#define AL_RING_MODULATOR_HIGHPASS_CUTOFF 0x0002 -#define AL_RING_MODULATOR_WAVEFORM 0x0003 - -/* Autowah Parameters */ -#define AL_AUTOWAH_ATTACK_TIME 0x0001 -#define AL_AUTOWAH_RELEASE_TIME 0x0002 -#define AL_AUTOWAH_RESONANCE 0x0003 -#define AL_AUTOWAH_PEAK_GAIN 0x0004 - -/* Compressor Parameters */ -#define AL_COMPRESSOR_ONOFF 0x0001 - -/* Equalizer Parameters */ -#define AL_EQUALIZER_LOW_GAIN 0x0001 -#define AL_EQUALIZER_LOW_CUTOFF 0x0002 -#define AL_EQUALIZER_MID1_GAIN 0x0003 -#define AL_EQUALIZER_MID1_CENTER 0x0004 -#define AL_EQUALIZER_MID1_WIDTH 0x0005 -#define AL_EQUALIZER_MID2_GAIN 0x0006 -#define AL_EQUALIZER_MID2_CENTER 0x0007 -#define AL_EQUALIZER_MID2_WIDTH 0x0008 -#define AL_EQUALIZER_HIGH_GAIN 0x0009 -#define AL_EQUALIZER_HIGH_CUTOFF 0x000A +/* Equalizer effect parameters */ +#define AL_EQUALIZER_LOW_GAIN 0x0001 +#define AL_EQUALIZER_LOW_CUTOFF 0x0002 +#define AL_EQUALIZER_MID1_GAIN 0x0003 +#define AL_EQUALIZER_MID1_CENTER 0x0004 +#define AL_EQUALIZER_MID1_WIDTH 0x0005 +#define AL_EQUALIZER_MID2_GAIN 0x0006 +#define AL_EQUALIZER_MID2_CENTER 0x0007 +#define AL_EQUALIZER_MID2_WIDTH 0x0008 +#define AL_EQUALIZER_HIGH_GAIN 0x0009 +#define AL_EQUALIZER_HIGH_CUTOFF 0x000A /* Effect type */ -#define AL_EFFECT_FIRST_PARAMETER 0x0000 -#define AL_EFFECT_LAST_PARAMETER 0x8000 -#define AL_EFFECT_TYPE 0x8001 +#define AL_EFFECT_FIRST_PARAMETER 0x0000 +#define AL_EFFECT_LAST_PARAMETER 0x8000 +#define AL_EFFECT_TYPE 0x8001 -/* Effect type definitions to be used with AL_EFFECT_TYPE. */ -#define AL_EFFECT_NULL 0x0000 /* Can also be used as an Effect Object ID */ -#define AL_EFFECT_REVERB 0x0001 -#define AL_EFFECT_CHORUS 0x0002 -#define AL_EFFECT_DISTORTION 0x0003 -#define AL_EFFECT_ECHO 0x0004 -#define AL_EFFECT_FLANGER 0x0005 -#define AL_EFFECT_FREQUENCY_SHIFTER 0x0006 -#define AL_EFFECT_VOCAL_MORPHER 0x0007 -#define AL_EFFECT_PITCH_SHIFTER 0x0008 -#define AL_EFFECT_RING_MODULATOR 0x0009 -#define AL_EFFECT_AUTOWAH 0x000A -#define AL_EFFECT_COMPRESSOR 0x000B -#define AL_EFFECT_EQUALIZER 0x000C +/* Effect types, used with the AL_EFFECT_TYPE property */ +#define AL_EFFECT_NULL 0x0000 +#define AL_EFFECT_REVERB 0x0001 +#define AL_EFFECT_CHORUS 0x0002 +#define AL_EFFECT_DISTORTION 0x0003 +#define AL_EFFECT_ECHO 0x0004 +#define AL_EFFECT_FLANGER 0x0005 +#define AL_EFFECT_FREQUENCY_SHIFTER 0x0006 +#define AL_EFFECT_VOCAL_MORPHER 0x0007 +#define AL_EFFECT_PITCH_SHIFTER 0x0008 +#define AL_EFFECT_RING_MODULATOR 0x0009 +#define AL_EFFECT_AUTOWAH 0x000A +#define AL_EFFECT_COMPRESSOR 0x000B +#define AL_EFFECT_EQUALIZER 0x000C +#define AL_EFFECT_EAXREVERB 0x8000 -/** - * Auxiliary Slot object definitions to be used with alAuxiliaryEffectSlot functions. - */ -#define AL_EFFECTSLOT_EFFECT 0x0001 -#define AL_EFFECTSLOT_GAIN 0x0002 -#define AL_EFFECTSLOT_AUXILIARY_SEND_AUTO 0x0003 +/* Auxiliary Effect Slot properties. */ +#define AL_EFFECTSLOT_EFFECT 0x0001 +#define AL_EFFECTSLOT_GAIN 0x0002 +#define AL_EFFECTSLOT_AUXILIARY_SEND_AUTO 0x0003 -/** - * Value to be used as an Auxiliary Slot ID to disable a source send.. - */ -#define AL_EFFECTSLOT_NULL 0x0000 +/* NULL Auxiliary Slot ID to disable a source send. */ +#define AL_EFFECTSLOT_NULL 0x0000 +/* Filter properties. */ -/** - * Filter object definitions to be used with alFilter functions. - */ +/* Lowpass filter parameters */ +#define AL_LOWPASS_GAIN 0x0001 +#define AL_LOWPASS_GAINHF 0x0002 -/* Lowpass parameters. */ -#define AL_LOWPASS_GAIN 0x0001 -#define AL_LOWPASS_GAINHF 0x0002 +/* Highpass filter parameters */ +#define AL_HIGHPASS_GAIN 0x0001 +#define AL_HIGHPASS_GAINLF 0x0002 -/* Highpass Parameters */ -#define AL_HIGHPASS_GAIN 0x0001 -#define AL_HIGHPASS_GAINLF 0x0002 - -/* Bandpass Parameters */ -#define AL_BANDPASS_GAIN 0x0001 -#define AL_BANDPASS_GAINLF 0x0002 -#define AL_BANDPASS_GAINHF 0x0003 +/* Bandpass filter parameters */ +#define AL_BANDPASS_GAIN 0x0001 +#define AL_BANDPASS_GAINLF 0x0002 +#define AL_BANDPASS_GAINHF 0x0003 /* Filter type */ -#define AL_FILTER_FIRST_PARAMETER 0x0000 -#define AL_FILTER_LAST_PARAMETER 0x8000 -#define AL_FILTER_TYPE 0x8001 +#define AL_FILTER_FIRST_PARAMETER 0x0000 +#define AL_FILTER_LAST_PARAMETER 0x8000 +#define AL_FILTER_TYPE 0x8001 + +/* Filter types, used with the AL_FILTER_TYPE property */ +#define AL_FILTER_NULL 0x0000 +#define AL_FILTER_LOWPASS 0x0001 +#define AL_FILTER_HIGHPASS 0x0002 +#define AL_FILTER_BANDPASS 0x0003 + + +/* Effect object function types. */ +typedef void (AL_APIENTRY *LPALGENEFFECTS)(ALsizei, ALuint*); +typedef void (AL_APIENTRY *LPALDELETEEFFECTS)(ALsizei, const ALuint*); +typedef ALboolean (AL_APIENTRY *LPALISEFFECT)(ALuint); +typedef void (AL_APIENTRY *LPALEFFECTI)(ALuint, ALenum, ALint); +typedef void (AL_APIENTRY *LPALEFFECTIV)(ALuint, ALenum, const ALint*); +typedef void (AL_APIENTRY *LPALEFFECTF)(ALuint, ALenum, ALfloat); +typedef void (AL_APIENTRY *LPALEFFECTFV)(ALuint, ALenum, const ALfloat*); +typedef void (AL_APIENTRY *LPALGETEFFECTI)(ALuint, ALenum, ALint*); +typedef void (AL_APIENTRY *LPALGETEFFECTIV)(ALuint, ALenum, ALint*); +typedef void (AL_APIENTRY *LPALGETEFFECTF)(ALuint, ALenum, ALfloat*); +typedef void (AL_APIENTRY *LPALGETEFFECTFV)(ALuint, ALenum, ALfloat*); + +/* Filter object function types. */ +typedef void (AL_APIENTRY *LPALGENFILTERS)(ALsizei, ALuint*); +typedef void (AL_APIENTRY *LPALDELETEFILTERS)(ALsizei, const ALuint*); +typedef ALboolean (AL_APIENTRY *LPALISFILTER)(ALuint); +typedef void (AL_APIENTRY *LPALFILTERI)(ALuint, ALenum, ALint); +typedef void (AL_APIENTRY *LPALFILTERIV)(ALuint, ALenum, const ALint*); +typedef void (AL_APIENTRY *LPALFILTERF)(ALuint, ALenum, ALfloat); +typedef void (AL_APIENTRY *LPALFILTERFV)(ALuint, ALenum, const ALfloat*); +typedef void (AL_APIENTRY *LPALGETFILTERI)(ALuint, ALenum, ALint*); +typedef void (AL_APIENTRY *LPALGETFILTERIV)(ALuint, ALenum, ALint*); +typedef void (AL_APIENTRY *LPALGETFILTERF)(ALuint, ALenum, ALfloat*); +typedef void (AL_APIENTRY *LPALGETFILTERFV)(ALuint, ALenum, ALfloat*); + +/* Auxiliary Effect Slot object function types. */ +typedef void (AL_APIENTRY *LPALGENAUXILIARYEFFECTSLOTS)(ALsizei, ALuint*); +typedef void (AL_APIENTRY *LPALDELETEAUXILIARYEFFECTSLOTS)(ALsizei, const ALuint*); +typedef ALboolean (AL_APIENTRY *LPALISAUXILIARYEFFECTSLOT)(ALuint); +typedef void (AL_APIENTRY *LPALAUXILIARYEFFECTSLOTI)(ALuint, ALenum, ALint); +typedef void (AL_APIENTRY *LPALAUXILIARYEFFECTSLOTIV)(ALuint, ALenum, const ALint*); +typedef void (AL_APIENTRY *LPALAUXILIARYEFFECTSLOTF)(ALuint, ALenum, ALfloat); +typedef void (AL_APIENTRY *LPALAUXILIARYEFFECTSLOTFV)(ALuint, ALenum, const ALfloat*); +typedef void (AL_APIENTRY *LPALGETAUXILIARYEFFECTSLOTI)(ALuint, ALenum, ALint*); +typedef void (AL_APIENTRY *LPALGETAUXILIARYEFFECTSLOTIV)(ALuint, ALenum, ALint*); +typedef void (AL_APIENTRY *LPALGETAUXILIARYEFFECTSLOTF)(ALuint, ALenum, ALfloat*); +typedef void (AL_APIENTRY *LPALGETAUXILIARYEFFECTSLOTFV)(ALuint, ALenum, ALfloat*); + +#ifdef AL_ALEXT_PROTOTYPES +AL_API ALvoid AL_APIENTRY alGenEffects(ALsizei n, ALuint *effects); +AL_API ALvoid AL_APIENTRY alDeleteEffects(ALsizei n, const ALuint *effects); +AL_API ALboolean AL_APIENTRY alIsEffect(ALuint effect); +AL_API ALvoid AL_APIENTRY alEffecti(ALuint effect, ALenum param, ALint iValue); +AL_API ALvoid AL_APIENTRY alEffectiv(ALuint effect, ALenum param, const ALint *piValues); +AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue); +AL_API ALvoid AL_APIENTRY alEffectfv(ALuint effect, ALenum param, const ALfloat *pflValues); +AL_API ALvoid AL_APIENTRY alGetEffecti(ALuint effect, ALenum param, ALint *piValue); +AL_API ALvoid AL_APIENTRY alGetEffectiv(ALuint effect, ALenum param, ALint *piValues); +AL_API ALvoid AL_APIENTRY alGetEffectf(ALuint effect, ALenum param, ALfloat *pflValue); +AL_API ALvoid AL_APIENTRY alGetEffectfv(ALuint effect, ALenum param, ALfloat *pflValues); + +AL_API ALvoid AL_APIENTRY alGenFilters(ALsizei n, ALuint *filters); +AL_API ALvoid AL_APIENTRY alDeleteFilters(ALsizei n, const ALuint *filters); +AL_API ALboolean AL_APIENTRY alIsFilter(ALuint filter); +AL_API ALvoid AL_APIENTRY alFilteri(ALuint filter, ALenum param, ALint iValue); +AL_API ALvoid AL_APIENTRY alFilteriv(ALuint filter, ALenum param, const ALint *piValues); +AL_API ALvoid AL_APIENTRY alFilterf(ALuint filter, ALenum param, ALfloat flValue); +AL_API ALvoid AL_APIENTRY alFilterfv(ALuint filter, ALenum param, const ALfloat *pflValues); +AL_API ALvoid AL_APIENTRY alGetFilteri(ALuint filter, ALenum param, ALint *piValue); +AL_API ALvoid AL_APIENTRY alGetFilteriv(ALuint filter, ALenum param, ALint *piValues); +AL_API ALvoid AL_APIENTRY alGetFilterf(ALuint filter, ALenum param, ALfloat *pflValue); +AL_API ALvoid AL_APIENTRY alGetFilterfv(ALuint filter, ALenum param, ALfloat *pflValues); + +AL_API ALvoid AL_APIENTRY alGenAuxiliaryEffectSlots(ALsizei n, ALuint *effectslots); +AL_API ALvoid AL_APIENTRY alDeleteAuxiliaryEffectSlots(ALsizei n, const ALuint *effectslots); +AL_API ALboolean AL_APIENTRY alIsAuxiliaryEffectSlot(ALuint effectslot); +AL_API ALvoid AL_APIENTRY alAuxiliaryEffectSloti(ALuint effectslot, ALenum param, ALint iValue); +AL_API ALvoid AL_APIENTRY alAuxiliaryEffectSlotiv(ALuint effectslot, ALenum param, const ALint *piValues); +AL_API ALvoid AL_APIENTRY alAuxiliaryEffectSlotf(ALuint effectslot, ALenum param, ALfloat flValue); +AL_API ALvoid AL_APIENTRY alAuxiliaryEffectSlotfv(ALuint effectslot, ALenum param, const ALfloat *pflValues); +AL_API ALvoid AL_APIENTRY alGetAuxiliaryEffectSloti(ALuint effectslot, ALenum param, ALint *piValue); +AL_API ALvoid AL_APIENTRY alGetAuxiliaryEffectSlotiv(ALuint effectslot, ALenum param, ALint *piValues); +AL_API ALvoid AL_APIENTRY alGetAuxiliaryEffectSlotf(ALuint effectslot, ALenum param, ALfloat *pflValue); +AL_API ALvoid AL_APIENTRY alGetAuxiliaryEffectSlotfv(ALuint effectslot, ALenum param, ALfloat *pflValues); +#endif + +/* Filter ranges and defaults. */ + +/* Lowpass filter */ +#define AL_LOWPASS_MIN_GAIN (0.0f) +#define AL_LOWPASS_MAX_GAIN (1.0f) +#define AL_LOWPASS_DEFAULT_GAIN (1.0f) + +#define AL_LOWPASS_MIN_GAINHF (0.0f) +#define AL_LOWPASS_MAX_GAINHF (1.0f) +#define AL_LOWPASS_DEFAULT_GAINHF (1.0f) + +/* Highpass filter */ +#define AL_HIGHPASS_MIN_GAIN (0.0f) +#define AL_HIGHPASS_MAX_GAIN (1.0f) +#define AL_HIGHPASS_DEFAULT_GAIN (1.0f) + +#define AL_HIGHPASS_MIN_GAINLF (0.0f) +#define AL_HIGHPASS_MAX_GAINLF (1.0f) +#define AL_HIGHPASS_DEFAULT_GAINLF (1.0f) + +/* Bandpass filter */ +#define AL_BANDPASS_MIN_GAIN (0.0f) +#define AL_BANDPASS_MAX_GAIN (1.0f) +#define AL_BANDPASS_DEFAULT_GAIN (1.0f) + +#define AL_BANDPASS_MIN_GAINHF (0.0f) +#define AL_BANDPASS_MAX_GAINHF (1.0f) +#define AL_BANDPASS_DEFAULT_GAINHF (1.0f) + +#define AL_BANDPASS_MIN_GAINLF (0.0f) +#define AL_BANDPASS_MAX_GAINLF (1.0f) +#define AL_BANDPASS_DEFAULT_GAINLF (1.0f) + + +/* Effect parameter ranges and defaults. */ + +/* Standard reverb effect */ +#define AL_REVERB_MIN_DENSITY (0.0f) +#define AL_REVERB_MAX_DENSITY (1.0f) +#define AL_REVERB_DEFAULT_DENSITY (1.0f) + +#define AL_REVERB_MIN_DIFFUSION (0.0f) +#define AL_REVERB_MAX_DIFFUSION (1.0f) +#define AL_REVERB_DEFAULT_DIFFUSION (1.0f) + +#define AL_REVERB_MIN_GAIN (0.0f) +#define AL_REVERB_MAX_GAIN (1.0f) +#define AL_REVERB_DEFAULT_GAIN (0.32f) + +#define AL_REVERB_MIN_GAINHF (0.0f) +#define AL_REVERB_MAX_GAINHF (1.0f) +#define AL_REVERB_DEFAULT_GAINHF (0.89f) + +#define AL_REVERB_MIN_DECAY_TIME (0.1f) +#define AL_REVERB_MAX_DECAY_TIME (20.0f) +#define AL_REVERB_DEFAULT_DECAY_TIME (1.49f) + +#define AL_REVERB_MIN_DECAY_HFRATIO (0.1f) +#define AL_REVERB_MAX_DECAY_HFRATIO (2.0f) +#define AL_REVERB_DEFAULT_DECAY_HFRATIO (0.83f) + +#define AL_REVERB_MIN_REFLECTIONS_GAIN (0.0f) +#define AL_REVERB_MAX_REFLECTIONS_GAIN (3.16f) +#define AL_REVERB_DEFAULT_REFLECTIONS_GAIN (0.05f) + +#define AL_REVERB_MIN_REFLECTIONS_DELAY (0.0f) +#define AL_REVERB_MAX_REFLECTIONS_DELAY (0.3f) +#define AL_REVERB_DEFAULT_REFLECTIONS_DELAY (0.007f) + +#define AL_REVERB_MIN_LATE_REVERB_GAIN (0.0f) +#define AL_REVERB_MAX_LATE_REVERB_GAIN (10.0f) +#define AL_REVERB_DEFAULT_LATE_REVERB_GAIN (1.26f) + +#define AL_REVERB_MIN_LATE_REVERB_DELAY (0.0f) +#define AL_REVERB_MAX_LATE_REVERB_DELAY (0.1f) +#define AL_REVERB_DEFAULT_LATE_REVERB_DELAY (0.011f) + +#define AL_REVERB_MIN_AIR_ABSORPTION_GAINHF (0.892f) +#define AL_REVERB_MAX_AIR_ABSORPTION_GAINHF (1.0f) +#define AL_REVERB_DEFAULT_AIR_ABSORPTION_GAINHF (0.994f) + +#define AL_REVERB_MIN_ROOM_ROLLOFF_FACTOR (0.0f) +#define AL_REVERB_MAX_ROOM_ROLLOFF_FACTOR (10.0f) +#define AL_REVERB_DEFAULT_ROOM_ROLLOFF_FACTOR (0.0f) + +#define AL_REVERB_MIN_DECAY_HFLIMIT AL_FALSE +#define AL_REVERB_MAX_DECAY_HFLIMIT AL_TRUE +#define AL_REVERB_DEFAULT_DECAY_HFLIMIT AL_TRUE + +/* EAX reverb effect */ +#define AL_EAXREVERB_MIN_DENSITY (0.0f) +#define AL_EAXREVERB_MAX_DENSITY (1.0f) +#define AL_EAXREVERB_DEFAULT_DENSITY (1.0f) -/* Filter type definitions to be used with AL_FILTER_TYPE. */ -#define AL_FILTER_NULL 0x0000 /* Can also be used as a Filter Object ID */ -#define AL_FILTER_LOWPASS 0x0001 -#define AL_FILTER_HIGHPASS 0x0002 -#define AL_FILTER_BANDPASS 0x0003 +#define AL_EAXREVERB_MIN_DIFFUSION (0.0f) +#define AL_EAXREVERB_MAX_DIFFUSION (1.0f) +#define AL_EAXREVERB_DEFAULT_DIFFUSION (1.0f) +#define AL_EAXREVERB_MIN_GAIN (0.0f) +#define AL_EAXREVERB_MAX_GAIN (1.0f) +#define AL_EAXREVERB_DEFAULT_GAIN (0.32f) -/** - * Effect object functions. - */ +#define AL_EAXREVERB_MIN_GAINHF (0.0f) +#define AL_EAXREVERB_MAX_GAINHF (1.0f) +#define AL_EAXREVERB_DEFAULT_GAINHF (0.89f) -/* Create Effect objects. */ -typedef void (__cdecl *LPALGENEFFECTS)( ALsizei n, ALuint* effects ); +#define AL_EAXREVERB_MIN_GAINLF (0.0f) +#define AL_EAXREVERB_MAX_GAINLF (1.0f) +#define AL_EAXREVERB_DEFAULT_GAINLF (1.0f) -/* Delete Effect objects. */ -typedef void (__cdecl *LPALDELETEEFFECTS)( ALsizei n, ALuint* effects ); +#define AL_EAXREVERB_MIN_DECAY_TIME (0.1f) +#define AL_EAXREVERB_MAX_DECAY_TIME (20.0f) +#define AL_EAXREVERB_DEFAULT_DECAY_TIME (1.49f) -/* Verify a handle is a valid Effect. */ -typedef ALboolean (__cdecl *LPALISEFFECT)( ALuint eid ); +#define AL_EAXREVERB_MIN_DECAY_HFRATIO (0.1f) +#define AL_EAXREVERB_MAX_DECAY_HFRATIO (2.0f) +#define AL_EAXREVERB_DEFAULT_DECAY_HFRATIO (0.83f) -/* Set an integer parameter for an Effect object. */ -typedef void (__cdecl *LPALEFFECTI)( ALuint eid, ALenum param, ALint value); -typedef void (__cdecl *LPALEFFECTIV)( ALuint eid, ALenum param, ALint* values ); +#define AL_EAXREVERB_MIN_DECAY_LFRATIO (0.1f) +#define AL_EAXREVERB_MAX_DECAY_LFRATIO (2.0f) +#define AL_EAXREVERB_DEFAULT_DECAY_LFRATIO (1.0f) -/* Set a floating point parameter for an Effect object. */ -typedef void (__cdecl *LPALEFFECTF)( ALuint eid, ALenum param, ALfloat value); -typedef void (__cdecl *LPALEFFECTFV)( ALuint eid, ALenum param, ALfloat* values ); +#define AL_EAXREVERB_MIN_REFLECTIONS_GAIN (0.0f) +#define AL_EAXREVERB_MAX_REFLECTIONS_GAIN (3.16f) +#define AL_EAXREVERB_DEFAULT_REFLECTIONS_GAIN (0.05f) -/* Get an integer parameter for an Effect object. */ -typedef void (__cdecl *LPALGETEFFECTI)( ALuint eid, ALenum pname, ALint* value ); -typedef void (__cdecl *LPALGETEFFECTIV)( ALuint eid, ALenum pname, ALint* values ); +#define AL_EAXREVERB_MIN_REFLECTIONS_DELAY (0.0f) +#define AL_EAXREVERB_MAX_REFLECTIONS_DELAY (0.3f) +#define AL_EAXREVERB_DEFAULT_REFLECTIONS_DELAY (0.007f) -/* Get a floating point parameter for an Effect object. */ -typedef void (__cdecl *LPALGETEFFECTF)( ALuint eid, ALenum pname, ALfloat* value ); -typedef void (__cdecl *LPALGETEFFECTFV)( ALuint eid, ALenum pname, ALfloat* values ); +#define AL_EAXREVERB_DEFAULT_REFLECTIONS_PAN_XYZ (0.0f) +#define AL_EAXREVERB_MIN_LATE_REVERB_GAIN (0.0f) +#define AL_EAXREVERB_MAX_LATE_REVERB_GAIN (10.0f) +#define AL_EAXREVERB_DEFAULT_LATE_REVERB_GAIN (1.26f) -/** - * Filter object functions - */ +#define AL_EAXREVERB_MIN_LATE_REVERB_DELAY (0.0f) +#define AL_EAXREVERB_MAX_LATE_REVERB_DELAY (0.1f) +#define AL_EAXREVERB_DEFAULT_LATE_REVERB_DELAY (0.011f) -/* Create Filter objects. */ -typedef void (__cdecl *LPALGENFILTERS)( ALsizei n, ALuint* filters ); +#define AL_EAXREVERB_DEFAULT_LATE_REVERB_PAN_XYZ (0.0f) -/* Delete Filter objects. */ -typedef void (__cdecl *LPALDELETEFILTERS)( ALsizei n, ALuint* filters ); +#define AL_EAXREVERB_MIN_ECHO_TIME (0.075f) +#define AL_EAXREVERB_MAX_ECHO_TIME (0.25f) +#define AL_EAXREVERB_DEFAULT_ECHO_TIME (0.25f) -/* Verify a handle is a valid Filter. */ -typedef ALboolean (__cdecl *LPALISFILTER)( ALuint fid ); +#define AL_EAXREVERB_MIN_ECHO_DEPTH (0.0f) +#define AL_EAXREVERB_MAX_ECHO_DEPTH (1.0f) +#define AL_EAXREVERB_DEFAULT_ECHO_DEPTH (0.0f) -/* Set an integer parameter for a Filter object. */ -typedef void (__cdecl *LPALFILTERI)( ALuint fid, ALenum param, ALint value ); -typedef void (__cdecl *LPALFILTERIV)( ALuint fid, ALenum param, ALint* values ); +#define AL_EAXREVERB_MIN_MODULATION_TIME (0.04f) +#define AL_EAXREVERB_MAX_MODULATION_TIME (4.0f) +#define AL_EAXREVERB_DEFAULT_MODULATION_TIME (0.25f) -/* Set a floating point parameter for an Filter object. */ -typedef void (__cdecl *LPALFILTERF)( ALuint fid, ALenum param, ALfloat value); -typedef void (__cdecl *LPALFILTERFV)( ALuint fid, ALenum param, ALfloat* values ); +#define AL_EAXREVERB_MIN_MODULATION_DEPTH (0.0f) +#define AL_EAXREVERB_MAX_MODULATION_DEPTH (1.0f) +#define AL_EAXREVERB_DEFAULT_MODULATION_DEPTH (0.0f) -/* Get an integer parameter for a Filter object. */ -typedef void (__cdecl *LPALGETFILTERI)( ALuint fid, ALenum pname, ALint* value ); -typedef void (__cdecl *LPALGETFILTERIV)( ALuint fid, ALenum pname, ALint* values ); +#define AL_EAXREVERB_MIN_AIR_ABSORPTION_GAINHF (0.892f) +#define AL_EAXREVERB_MAX_AIR_ABSORPTION_GAINHF (1.0f) +#define AL_EAXREVERB_DEFAULT_AIR_ABSORPTION_GAINHF (0.994f) -/* Get a floating point parameter for a Filter object. */ -typedef void (__cdecl *LPALGETFILTERF)( ALuint fid, ALenum pname, ALfloat* value ); -typedef void (__cdecl *LPALGETFILTERFV)( ALuint fid, ALenum pname, ALfloat* values ); +#define AL_EAXREVERB_MIN_HFREFERENCE (1000.0f) +#define AL_EAXREVERB_MAX_HFREFERENCE (20000.0f) +#define AL_EAXREVERB_DEFAULT_HFREFERENCE (5000.0f) +#define AL_EAXREVERB_MIN_LFREFERENCE (20.0f) +#define AL_EAXREVERB_MAX_LFREFERENCE (1000.0f) +#define AL_EAXREVERB_DEFAULT_LFREFERENCE (250.0f) -/** - * Auxiliary Slot object functions - */ +#define AL_EAXREVERB_MIN_ROOM_ROLLOFF_FACTOR (0.0f) +#define AL_EAXREVERB_MAX_ROOM_ROLLOFF_FACTOR (10.0f) +#define AL_EAXREVERB_DEFAULT_ROOM_ROLLOFF_FACTOR (0.0f) -/* Create Auxiliary Slot objects. */ -typedef void (__cdecl *LPALGENAUXILIARYEFFECTSLOTS)( ALsizei n, ALuint* slots ); +#define AL_EAXREVERB_MIN_DECAY_HFLIMIT AL_FALSE +#define AL_EAXREVERB_MAX_DECAY_HFLIMIT AL_TRUE +#define AL_EAXREVERB_DEFAULT_DECAY_HFLIMIT AL_TRUE -/* Delete Auxiliary Slot objects. */ -typedef void (__cdecl *LPALDELETEAUXILIARYEFFECTSLOTS)( ALsizei n, ALuint* slots ); +/* Chorus effect */ +#define AL_CHORUS_WAVEFORM_SINUSOID (0) +#define AL_CHORUS_WAVEFORM_TRIANGLE (1) -/* Verify a handle is a valid Auxiliary Slot. */ -typedef ALboolean (__cdecl *LPALISAUXILIARYEFFECTSLOT)( ALuint slot ); +#define AL_CHORUS_MIN_WAVEFORM (0) +#define AL_CHORUS_MAX_WAVEFORM (1) +#define AL_CHORUS_DEFAULT_WAVEFORM (1) -/* Set an integer parameter for a Auxiliary Slot object. */ -typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTI)( ALuint asid, ALenum param, ALint value ); -typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTIV)( ALuint asid, ALenum param, ALint* values ); +#define AL_CHORUS_MIN_PHASE (-180) +#define AL_CHORUS_MAX_PHASE (180) +#define AL_CHORUS_DEFAULT_PHASE (90) -/* Set a floating point parameter for an Auxiliary Slot object. */ -typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTF)( ALuint asid, ALenum param, ALfloat value ); -typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTFV)( ALuint asid, ALenum param, ALfloat* values ); +#define AL_CHORUS_MIN_RATE (0.0f) +#define AL_CHORUS_MAX_RATE (10.0f) +#define AL_CHORUS_DEFAULT_RATE (1.1f) -/* Get an integer parameter for a Auxiliary Slot object. */ -typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTI)( ALuint asid, ALenum pname, ALint* value ); -typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTIV)( ALuint asid, ALenum pname, ALint* values ); +#define AL_CHORUS_MIN_DEPTH (0.0f) +#define AL_CHORUS_MAX_DEPTH (1.0f) +#define AL_CHORUS_DEFAULT_DEPTH (0.1f) -/* Get a floating point parameter for a Auxiliary Slot object. */ -typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTF)( ALuint asid, ALenum pname, ALfloat* value ); -typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTFV)( ALuint asid, ALenum pname, ALfloat* values ); +#define AL_CHORUS_MIN_FEEDBACK (-1.0f) +#define AL_CHORUS_MAX_FEEDBACK (1.0f) +#define AL_CHORUS_DEFAULT_FEEDBACK (0.25f) +#define AL_CHORUS_MIN_DELAY (0.0f) +#define AL_CHORUS_MAX_DELAY (0.016f) +#define AL_CHORUS_DEFAULT_DELAY (0.016f) +/* Distortion effect */ +#define AL_DISTORTION_MIN_EDGE (0.0f) +#define AL_DISTORTION_MAX_EDGE (1.0f) +#define AL_DISTORTION_DEFAULT_EDGE (0.2f) + +#define AL_DISTORTION_MIN_GAIN (0.01f) +#define AL_DISTORTION_MAX_GAIN (1.0f) +#define AL_DISTORTION_DEFAULT_GAIN (0.05f) + +#define AL_DISTORTION_MIN_LOWPASS_CUTOFF (80.0f) +#define AL_DISTORTION_MAX_LOWPASS_CUTOFF (24000.0f) +#define AL_DISTORTION_DEFAULT_LOWPASS_CUTOFF (8000.0f) + +#define AL_DISTORTION_MIN_EQCENTER (80.0f) +#define AL_DISTORTION_MAX_EQCENTER (24000.0f) +#define AL_DISTORTION_DEFAULT_EQCENTER (3600.0f) + +#define AL_DISTORTION_MIN_EQBANDWIDTH (80.0f) +#define AL_DISTORTION_MAX_EQBANDWIDTH (24000.0f) +#define AL_DISTORTION_DEFAULT_EQBANDWIDTH (3600.0f) + +/* Echo effect */ +#define AL_ECHO_MIN_DELAY (0.0f) +#define AL_ECHO_MAX_DELAY (0.207f) +#define AL_ECHO_DEFAULT_DELAY (0.1f) + +#define AL_ECHO_MIN_LRDELAY (0.0f) +#define AL_ECHO_MAX_LRDELAY (0.404f) +#define AL_ECHO_DEFAULT_LRDELAY (0.1f) + +#define AL_ECHO_MIN_DAMPING (0.0f) +#define AL_ECHO_MAX_DAMPING (0.99f) +#define AL_ECHO_DEFAULT_DAMPING (0.5f) + +#define AL_ECHO_MIN_FEEDBACK (0.0f) +#define AL_ECHO_MAX_FEEDBACK (1.0f) +#define AL_ECHO_DEFAULT_FEEDBACK (0.5f) + +#define AL_ECHO_MIN_SPREAD (-1.0f) +#define AL_ECHO_MAX_SPREAD (1.0f) +#define AL_ECHO_DEFAULT_SPREAD (-1.0f) + +/* Flanger effect */ +#define AL_FLANGER_WAVEFORM_SINUSOID (0) +#define AL_FLANGER_WAVEFORM_TRIANGLE (1) + +#define AL_FLANGER_MIN_WAVEFORM (0) +#define AL_FLANGER_MAX_WAVEFORM (1) +#define AL_FLANGER_DEFAULT_WAVEFORM (1) + +#define AL_FLANGER_MIN_PHASE (-180) +#define AL_FLANGER_MAX_PHASE (180) +#define AL_FLANGER_DEFAULT_PHASE (0) + +#define AL_FLANGER_MIN_RATE (0.0f) +#define AL_FLANGER_MAX_RATE (10.0f) +#define AL_FLANGER_DEFAULT_RATE (0.27f) + +#define AL_FLANGER_MIN_DEPTH (0.0f) +#define AL_FLANGER_MAX_DEPTH (1.0f) +#define AL_FLANGER_DEFAULT_DEPTH (1.0f) + +#define AL_FLANGER_MIN_FEEDBACK (-1.0f) +#define AL_FLANGER_MAX_FEEDBACK (1.0f) +#define AL_FLANGER_DEFAULT_FEEDBACK (-0.5f) + +#define AL_FLANGER_MIN_DELAY (0.0f) +#define AL_FLANGER_MAX_DELAY (0.004f) +#define AL_FLANGER_DEFAULT_DELAY (0.002f) + +/* Frequency shifter effect */ +#define AL_FREQUENCY_SHIFTER_MIN_FREQUENCY (0.0f) +#define AL_FREQUENCY_SHIFTER_MAX_FREQUENCY (24000.0f) +#define AL_FREQUENCY_SHIFTER_DEFAULT_FREQUENCY (0.0f) + +#define AL_FREQUENCY_SHIFTER_MIN_LEFT_DIRECTION (0) +#define AL_FREQUENCY_SHIFTER_MAX_LEFT_DIRECTION (2) +#define AL_FREQUENCY_SHIFTER_DEFAULT_LEFT_DIRECTION (0) + +#define AL_FREQUENCY_SHIFTER_DIRECTION_DOWN (0) +#define AL_FREQUENCY_SHIFTER_DIRECTION_UP (1) +#define AL_FREQUENCY_SHIFTER_DIRECTION_OFF (2) + +#define AL_FREQUENCY_SHIFTER_MIN_RIGHT_DIRECTION (0) +#define AL_FREQUENCY_SHIFTER_MAX_RIGHT_DIRECTION (2) +#define AL_FREQUENCY_SHIFTER_DEFAULT_RIGHT_DIRECTION (0) + +/* Vocal morpher effect */ +#define AL_VOCAL_MORPHER_MIN_PHONEMEA (0) +#define AL_VOCAL_MORPHER_MAX_PHONEMEA (29) +#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEA (0) + +#define AL_VOCAL_MORPHER_MIN_PHONEMEA_COARSE_TUNING (-24) +#define AL_VOCAL_MORPHER_MAX_PHONEMEA_COARSE_TUNING (24) +#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEA_COARSE_TUNING (0) + +#define AL_VOCAL_MORPHER_MIN_PHONEMEB (0) +#define AL_VOCAL_MORPHER_MAX_PHONEMEB (29) +#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEB (10) + +#define AL_VOCAL_MORPHER_MIN_PHONEMEB_COARSE_TUNING (-24) +#define AL_VOCAL_MORPHER_MAX_PHONEMEB_COARSE_TUNING (24) +#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEB_COARSE_TUNING (0) + +#define AL_VOCAL_MORPHER_PHONEME_A (0) +#define AL_VOCAL_MORPHER_PHONEME_E (1) +#define AL_VOCAL_MORPHER_PHONEME_I (2) +#define AL_VOCAL_MORPHER_PHONEME_O (3) +#define AL_VOCAL_MORPHER_PHONEME_U (4) +#define AL_VOCAL_MORPHER_PHONEME_AA (5) +#define AL_VOCAL_MORPHER_PHONEME_AE (6) +#define AL_VOCAL_MORPHER_PHONEME_AH (7) +#define AL_VOCAL_MORPHER_PHONEME_AO (8) +#define AL_VOCAL_MORPHER_PHONEME_EH (9) +#define AL_VOCAL_MORPHER_PHONEME_ER (10) +#define AL_VOCAL_MORPHER_PHONEME_IH (11) +#define AL_VOCAL_MORPHER_PHONEME_IY (12) +#define AL_VOCAL_MORPHER_PHONEME_UH (13) +#define AL_VOCAL_MORPHER_PHONEME_UW (14) +#define AL_VOCAL_MORPHER_PHONEME_B (15) +#define AL_VOCAL_MORPHER_PHONEME_D (16) +#define AL_VOCAL_MORPHER_PHONEME_F (17) +#define AL_VOCAL_MORPHER_PHONEME_G (18) +#define AL_VOCAL_MORPHER_PHONEME_J (19) +#define AL_VOCAL_MORPHER_PHONEME_K (20) +#define AL_VOCAL_MORPHER_PHONEME_L (21) +#define AL_VOCAL_MORPHER_PHONEME_M (22) +#define AL_VOCAL_MORPHER_PHONEME_N (23) +#define AL_VOCAL_MORPHER_PHONEME_P (24) +#define AL_VOCAL_MORPHER_PHONEME_R (25) +#define AL_VOCAL_MORPHER_PHONEME_S (26) +#define AL_VOCAL_MORPHER_PHONEME_T (27) +#define AL_VOCAL_MORPHER_PHONEME_V (28) +#define AL_VOCAL_MORPHER_PHONEME_Z (29) + +#define AL_VOCAL_MORPHER_WAVEFORM_SINUSOID (0) +#define AL_VOCAL_MORPHER_WAVEFORM_TRIANGLE (1) +#define AL_VOCAL_MORPHER_WAVEFORM_SAWTOOTH (2) + +#define AL_VOCAL_MORPHER_MIN_WAVEFORM (0) +#define AL_VOCAL_MORPHER_MAX_WAVEFORM (2) +#define AL_VOCAL_MORPHER_DEFAULT_WAVEFORM (0) + +#define AL_VOCAL_MORPHER_MIN_RATE (0.0f) +#define AL_VOCAL_MORPHER_MAX_RATE (10.0f) +#define AL_VOCAL_MORPHER_DEFAULT_RATE (1.41f) + +/* Pitch shifter effect */ +#define AL_PITCH_SHIFTER_MIN_COARSE_TUNE (-12) +#define AL_PITCH_SHIFTER_MAX_COARSE_TUNE (12) +#define AL_PITCH_SHIFTER_DEFAULT_COARSE_TUNE (12) + +#define AL_PITCH_SHIFTER_MIN_FINE_TUNE (-50) +#define AL_PITCH_SHIFTER_MAX_FINE_TUNE (50) +#define AL_PITCH_SHIFTER_DEFAULT_FINE_TUNE (0) + +/* Ring modulator effect */ +#define AL_RING_MODULATOR_MIN_FREQUENCY (0.0f) +#define AL_RING_MODULATOR_MAX_FREQUENCY (8000.0f) +#define AL_RING_MODULATOR_DEFAULT_FREQUENCY (440.0f) + +#define AL_RING_MODULATOR_MIN_HIGHPASS_CUTOFF (0.0f) +#define AL_RING_MODULATOR_MAX_HIGHPASS_CUTOFF (24000.0f) +#define AL_RING_MODULATOR_DEFAULT_HIGHPASS_CUTOFF (800.0f) + +#define AL_RING_MODULATOR_SINUSOID (0) +#define AL_RING_MODULATOR_SAWTOOTH (1) +#define AL_RING_MODULATOR_SQUARE (2) + +#define AL_RING_MODULATOR_MIN_WAVEFORM (0) +#define AL_RING_MODULATOR_MAX_WAVEFORM (2) +#define AL_RING_MODULATOR_DEFAULT_WAVEFORM (0) + +/* Autowah effect */ +#define AL_AUTOWAH_MIN_ATTACK_TIME (0.0001f) +#define AL_AUTOWAH_MAX_ATTACK_TIME (1.0f) +#define AL_AUTOWAH_DEFAULT_ATTACK_TIME (0.06f) + +#define AL_AUTOWAH_MIN_RELEASE_TIME (0.0001f) +#define AL_AUTOWAH_MAX_RELEASE_TIME (1.0f) +#define AL_AUTOWAH_DEFAULT_RELEASE_TIME (0.06f) + +#define AL_AUTOWAH_MIN_RESONANCE (2.0f) +#define AL_AUTOWAH_MAX_RESONANCE (1000.0f) +#define AL_AUTOWAH_DEFAULT_RESONANCE (1000.0f) + +#define AL_AUTOWAH_MIN_PEAK_GAIN (0.00003f) +#define AL_AUTOWAH_MAX_PEAK_GAIN (31621.0f) +#define AL_AUTOWAH_DEFAULT_PEAK_GAIN (11.22f) + +/* Compressor effect */ +#define AL_COMPRESSOR_MIN_ONOFF (0) +#define AL_COMPRESSOR_MAX_ONOFF (1) +#define AL_COMPRESSOR_DEFAULT_ONOFF (1) + +/* Equalizer effect */ +#define AL_EQUALIZER_MIN_LOW_GAIN (0.126f) +#define AL_EQUALIZER_MAX_LOW_GAIN (7.943f) +#define AL_EQUALIZER_DEFAULT_LOW_GAIN (1.0f) + +#define AL_EQUALIZER_MIN_LOW_CUTOFF (50.0f) +#define AL_EQUALIZER_MAX_LOW_CUTOFF (800.0f) +#define AL_EQUALIZER_DEFAULT_LOW_CUTOFF (200.0f) + +#define AL_EQUALIZER_MIN_MID1_GAIN (0.126f) +#define AL_EQUALIZER_MAX_MID1_GAIN (7.943f) +#define AL_EQUALIZER_DEFAULT_MID1_GAIN (1.0f) + +#define AL_EQUALIZER_MIN_MID1_CENTER (200.0f) +#define AL_EQUALIZER_MAX_MID1_CENTER (3000.0f) +#define AL_EQUALIZER_DEFAULT_MID1_CENTER (500.0f) + +#define AL_EQUALIZER_MIN_MID1_WIDTH (0.01f) +#define AL_EQUALIZER_MAX_MID1_WIDTH (1.0f) +#define AL_EQUALIZER_DEFAULT_MID1_WIDTH (1.0f) + +#define AL_EQUALIZER_MIN_MID2_GAIN (0.126f) +#define AL_EQUALIZER_MAX_MID2_GAIN (7.943f) +#define AL_EQUALIZER_DEFAULT_MID2_GAIN (1.0f) + +#define AL_EQUALIZER_MIN_MID2_CENTER (1000.0f) +#define AL_EQUALIZER_MAX_MID2_CENTER (8000.0f) +#define AL_EQUALIZER_DEFAULT_MID2_CENTER (3000.0f) + +#define AL_EQUALIZER_MIN_MID2_WIDTH (0.01f) +#define AL_EQUALIZER_MAX_MID2_WIDTH (1.0f) +#define AL_EQUALIZER_DEFAULT_MID2_WIDTH (1.0f) + +#define AL_EQUALIZER_MIN_HIGH_GAIN (0.126f) +#define AL_EQUALIZER_MAX_HIGH_GAIN (7.943f) +#define AL_EQUALIZER_DEFAULT_HIGH_GAIN (1.0f) + +#define AL_EQUALIZER_MIN_HIGH_CUTOFF (4000.0f) +#define AL_EQUALIZER_MAX_HIGH_CUTOFF (16000.0f) +#define AL_EQUALIZER_DEFAULT_HIGH_CUTOFF (6000.0f) -/********************************************************** - * Filter ranges and defaults. - */ +/* Source parameter value ranges and defaults. */ +#define AL_MIN_AIR_ABSORPTION_FACTOR (0.0f) +#define AL_MAX_AIR_ABSORPTION_FACTOR (10.0f) +#define AL_DEFAULT_AIR_ABSORPTION_FACTOR (0.0f) -/** - * Lowpass filter - */ +#define AL_MIN_ROOM_ROLLOFF_FACTOR (0.0f) +#define AL_MAX_ROOM_ROLLOFF_FACTOR (10.0f) +#define AL_DEFAULT_ROOM_ROLLOFF_FACTOR (0.0f) -#define LOWPASS_MIN_GAIN 0.0f -#define LOWPASS_MAX_GAIN 1.0f -#define LOWPASS_DEFAULT_GAIN 1.0f +#define AL_MIN_CONE_OUTER_GAINHF (0.0f) +#define AL_MAX_CONE_OUTER_GAINHF (1.0f) +#define AL_DEFAULT_CONE_OUTER_GAINHF (1.0f) -#define LOWPASS_MIN_GAINHF 0.0f -#define LOWPASS_MAX_GAINHF 1.0f -#define LOWPASS_DEFAULT_GAINHF 1.0f +#define AL_MIN_DIRECT_FILTER_GAINHF_AUTO AL_FALSE +#define AL_MAX_DIRECT_FILTER_GAINHF_AUTO AL_TRUE +#define AL_DEFAULT_DIRECT_FILTER_GAINHF_AUTO AL_TRUE -/** - * Highpass filter - */ +#define AL_MIN_AUXILIARY_SEND_FILTER_GAIN_AUTO AL_FALSE +#define AL_MAX_AUXILIARY_SEND_FILTER_GAIN_AUTO AL_TRUE +#define AL_DEFAULT_AUXILIARY_SEND_FILTER_GAIN_AUTO AL_TRUE -#define HIGHPASS_MIN_GAIN 0.0f -#define HIGHPASS_MAX_GAIN 1.0f -#define HIGHPASS_DEFAULT_GAIN 1.0f +#define AL_MIN_AUXILIARY_SEND_FILTER_GAINHF_AUTO AL_FALSE +#define AL_MAX_AUXILIARY_SEND_FILTER_GAINHF_AUTO AL_TRUE +#define AL_DEFAULT_AUXILIARY_SEND_FILTER_GAINHF_AUTO AL_TRUE -#define HIGHPASS_MIN_GAINLF 0.0f -#define HIGHPASS_MAX_GAINLF 1.0f -#define HIGHPASS_DEFAULT_GAINLF 1.0f -/** - * Bandpass filter - */ - -#define BANDPASS_MIN_GAIN 0.0f -#define BANDPASS_MAX_GAIN 1.0f -#define BANDPASS_DEFAULT_GAIN 1.0f - -#define BANDPASS_MIN_GAINHF 0.0f -#define BANDPASS_MAX_GAINHF 1.0f -#define BANDPASS_DEFAULT_GAINHF 1.0f - -#define BANDPASS_MIN_GAINLF 0.0f -#define BANDPASS_MAX_GAINLF 1.0f -#define BANDPASS_DEFAULT_GAINLF 1.0f - - - - - /********************************************************** - * Effect parameter structures, value definitions, ranges and defaults. - */ - -/** - * AL reverb effect parameter ranges and defaults - */ -#define AL_REVERB_MIN_DENSITY 0.0f -#define AL_REVERB_MAX_DENSITY 1.0f -#define AL_REVERB_DEFAULT_DENSITY 1.0f - -#define AL_REVERB_MIN_DIFFUSION 0.0f -#define AL_REVERB_MAX_DIFFUSION 1.0f -#define AL_REVERB_DEFAULT_DIFFUSION 1.0f - -#define AL_REVERB_MIN_GAIN 0.0f -#define AL_REVERB_MAX_GAIN 1.0f -#define AL_REVERB_DEFAULT_GAIN 0.32f - -#define AL_REVERB_MIN_GAINHF 0.0f -#define AL_REVERB_MAX_GAINHF 1.0f -#define AL_REVERB_DEFAULT_GAINHF 0.89f - -#define AL_REVERB_MIN_DECAY_TIME 0.1f -#define AL_REVERB_MAX_DECAY_TIME 20.0f -#define AL_REVERB_DEFAULT_DECAY_TIME 1.49f - -#define AL_REVERB_MIN_DECAY_HFRATIO 0.1f -#define AL_REVERB_MAX_DECAY_HFRATIO 2.0f -#define AL_REVERB_DEFAULT_DECAY_HFRATIO 0.83f - -#define AL_REVERB_MIN_REFLECTIONS_GAIN 0.0f -#define AL_REVERB_MAX_REFLECTIONS_GAIN 3.16f -#define AL_REVERB_DEFAULT_REFLECTIONS_GAIN 0.05f - -#define AL_REVERB_MIN_REFLECTIONS_DELAY 0.0f -#define AL_REVERB_MAX_REFLECTIONS_DELAY 0.3f -#define AL_REVERB_DEFAULT_REFLECTIONS_DELAY 0.007f - -#define AL_REVERB_MIN_LATE_REVERB_GAIN 0.0f -#define AL_REVERB_MAX_LATE_REVERB_GAIN 10.0f -#define AL_REVERB_DEFAULT_LATE_REVERB_GAIN 1.26f - -#define AL_REVERB_MIN_LATE_REVERB_DELAY 0.0f -#define AL_REVERB_MAX_LATE_REVERB_DELAY 0.1f -#define AL_REVERB_DEFAULT_LATE_REVERB_DELAY 0.011f - -#define AL_REVERB_MIN_AIR_ABSORPTION_GAINHF 0.892f -#define AL_REVERB_MAX_AIR_ABSORPTION_GAINHF 1.0f -#define AL_REVERB_DEFAULT_AIR_ABSORPTION_GAINHF 0.994f - -#define AL_REVERB_MIN_ROOM_ROLLOFF_FACTOR 0.0f -#define AL_REVERB_MAX_ROOM_ROLLOFF_FACTOR 10.0f -#define AL_REVERB_DEFAULT_ROOM_ROLLOFF_FACTOR 0.0f - -#define AL_REVERB_MIN_DECAY_HFLIMIT AL_FALSE -#define AL_REVERB_MAX_DECAY_HFLIMIT AL_TRUE -#define AL_REVERB_DEFAULT_DECAY_HFLIMIT AL_TRUE - -/** - * AL chorus effect parameter ranges and defaults - */ -#define AL_CHORUS_MIN_WAVEFORM 0 -#define AL_CHORUS_MAX_WAVEFORM 1 -#define AL_CHORUS_DEFAULT_WAVEFORM 1 - -#define AL_CHORUS_WAVEFORM_SINUSOID 0 -#define AL_CHORUS_WAVEFORM_TRIANGLE 1 - -#define AL_CHORUS_MIN_PHASE (-180) -#define AL_CHORUS_MAX_PHASE 180 -#define AL_CHORUS_DEFAULT_PHASE 90 - -#define AL_CHORUS_MIN_RATE 0.0f -#define AL_CHORUS_MAX_RATE 10.0f -#define AL_CHORUS_DEFAULT_RATE 1.1f - -#define AL_CHORUS_MIN_DEPTH 0.0f -#define AL_CHORUS_MAX_DEPTH 1.0f -#define AL_CHORUS_DEFAULT_DEPTH 0.1f - -#define AL_CHORUS_MIN_FEEDBACK (-1.0f) -#define AL_CHORUS_MAX_FEEDBACK 1.0f -#define AL_CHORUS_DEFAULT_FEEDBACK 0.25f - -#define AL_CHORUS_MIN_DELAY 0.0f -#define AL_CHORUS_MAX_DELAY 0.016f -#define AL_CHORUS_DEFAULT_DELAY 0.016f - -/** - * AL distortion effect parameter ranges and defaults - */ -#define AL_DISTORTION_MIN_EDGE 0.0f -#define AL_DISTORTION_MAX_EDGE 1.0f -#define AL_DISTORTION_DEFAULT_EDGE 0.2f - -#define AL_DISTORTION_MIN_GAIN 0.01f -#define AL_DISTORTION_MAX_GAIN 1.0f -#define AL_DISTORTION_DEFAULT_GAIN 0.05f - -#define AL_DISTORTION_MIN_LOWPASS_CUTOFF 80.0f -#define AL_DISTORTION_MAX_LOWPASS_CUTOFF 24000.0f -#define AL_DISTORTION_DEFAULT_LOWPASS_CUTOFF 8000.0f - -#define AL_DISTORTION_MIN_EQCENTER 80.0f -#define AL_DISTORTION_MAX_EQCENTER 24000.0f -#define AL_DISTORTION_DEFAULT_EQCENTER 3600.0f - -#define AL_DISTORTION_MIN_EQBANDWIDTH 80.0f -#define AL_DISTORTION_MAX_EQBANDWIDTH 24000.0f -#define AL_DISTORTION_DEFAULT_EQBANDWIDTH 3600.0f - -/** - * AL echo effect parameter ranges and defaults - */ -#define AL_ECHO_MIN_DELAY 0.0f -#define AL_ECHO_MAX_DELAY 0.207f -#define AL_ECHO_DEFAULT_DELAY 0.1f - -#define AL_ECHO_MIN_LRDELAY 0.0f -#define AL_ECHO_MAX_LRDELAY 0.404f -#define AL_ECHO_DEFAULT_LRDELAY 0.1f - -#define AL_ECHO_MIN_DAMPING 0.0f -#define AL_ECHO_MAX_DAMPING 0.99f -#define AL_ECHO_DEFAULT_DAMPING 0.5f - -#define AL_ECHO_MIN_FEEDBACK 0.0f -#define AL_ECHO_MAX_FEEDBACK 1.0f -#define AL_ECHO_DEFAULT_FEEDBACK 0.5f - -#define AL_ECHO_MIN_SPREAD (-1.0f) -#define AL_ECHO_MAX_SPREAD 1.0f -#define AL_ECHO_DEFAULT_SPREAD (-1.0f) - -/** - * AL flanger effect parameter ranges and defaults - */ -#define AL_FLANGER_MIN_WAVEFORM 0 -#define AL_FLANGER_MAX_WAVEFORM 1 -#define AL_FLANGER_DEFAULT_WAVEFORM 1 - -#define AL_FLANGER_WAVEFORM_SINUSOID 0 -#define AL_FLANGER_WAVEFORM_TRIANGLE 1 - -#define AL_FLANGER_MIN_PHASE (-180) -#define AL_FLANGER_MAX_PHASE 180 -#define AL_FLANGER_DEFAULT_PHASE 0 - -#define AL_FLANGER_MIN_RATE 0.0f -#define AL_FLANGER_MAX_RATE 10.0f -#define AL_FLANGER_DEFAULT_RATE 0.27f - -#define AL_FLANGER_MIN_DEPTH 0.0f -#define AL_FLANGER_MAX_DEPTH 1.0f -#define AL_FLANGER_DEFAULT_DEPTH 1.0f - -#define AL_FLANGER_MIN_FEEDBACK (-1.0f) -#define AL_FLANGER_MAX_FEEDBACK 1.0f -#define AL_FLANGER_DEFAULT_FEEDBACK (-0.5f) - -#define AL_FLANGER_MIN_DELAY 0.0f -#define AL_FLANGER_MAX_DELAY 0.004f -#define AL_FLANGER_DEFAULT_DELAY 0.002f - -/** - * AL frequency shifter effect parameter ranges and defaults - */ -#define AL_FREQUENCY_SHIFTER_MIN_FREQUENCY 0.0f -#define AL_FREQUENCY_SHIFTER_MAX_FREQUENCY 24000.0f -#define AL_FREQUENCY_SHIFTER_DEFAULT_FREQUENCY 0.0f - -#define AL_FREQUENCY_SHIFTER_MIN_LEFT_DIRECTION 0 -#define AL_FREQUENCY_SHIFTER_MAX_LEFT_DIRECTION 2 -#define AL_FREQUENCY_SHIFTER_DEFAULT_LEFT_DIRECTION 0 - -#define AL_FREQUENCY_SHIFTER_MIN_RIGHT_DIRECTION 0 -#define AL_FREQUENCY_SHIFTER_MAX_RIGHT_DIRECTION 2 -#define AL_FREQUENCY_SHIFTER_DEFAULT_RIGHT_DIRECTION 0 - -#define AL_FREQUENCY_SHIFTER_DIRECTION_DOWN 0 -#define AL_FREQUENCY_SHIFTER_DIRECTION_UP 1 -#define AL_FREQUENCY_SHIFTER_DIRECTION_OFF 2 - -/** - * AL vocal morpher effect parameter ranges and defaults - */ -#define AL_VOCAL_MORPHER_MIN_PHONEMEA 0 -#define AL_VOCAL_MORPHER_MAX_PHONEMEA 29 -#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEA 0 - -#define AL_VOCAL_MORPHER_MIN_PHONEMEA_COARSE_TUNING (-24) -#define AL_VOCAL_MORPHER_MAX_PHONEMEA_COARSE_TUNING 24 -#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEA_COARSE_TUNING 0 - -#define AL_VOCAL_MORPHER_MIN_PHONEMEB 0 -#define AL_VOCAL_MORPHER_MAX_PHONEMEB 29 -#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEB 10 - -#define AL_VOCAL_MORPHER_PHONEME_A 0 -#define AL_VOCAL_MORPHER_PHONEME_E 1 -#define AL_VOCAL_MORPHER_PHONEME_I 2 -#define AL_VOCAL_MORPHER_PHONEME_O 3 -#define AL_VOCAL_MORPHER_PHONEME_U 4 -#define AL_VOCAL_MORPHER_PHONEME_AA 5 -#define AL_VOCAL_MORPHER_PHONEME_AE 6 -#define AL_VOCAL_MORPHER_PHONEME_AH 7 -#define AL_VOCAL_MORPHER_PHONEME_AO 8 -#define AL_VOCAL_MORPHER_PHONEME_EH 9 -#define AL_VOCAL_MORPHER_PHONEME_ER 10 -#define AL_VOCAL_MORPHER_PHONEME_IH 11 -#define AL_VOCAL_MORPHER_PHONEME_IY 12 -#define AL_VOCAL_MORPHER_PHONEME_UH 13 -#define AL_VOCAL_MORPHER_PHONEME_UW 14 -#define AL_VOCAL_MORPHER_PHONEME_B 15 -#define AL_VOCAL_MORPHER_PHONEME_D 16 -#define AL_VOCAL_MORPHER_PHONEME_F 17 -#define AL_VOCAL_MORPHER_PHONEME_G 18 -#define AL_VOCAL_MORPHER_PHONEME_J 19 -#define AL_VOCAL_MORPHER_PHONEME_K 20 -#define AL_VOCAL_MORPHER_PHONEME_L 21 -#define AL_VOCAL_MORPHER_PHONEME_M 22 -#define AL_VOCAL_MORPHER_PHONEME_N 23 -#define AL_VOCAL_MORPHER_PHONEME_P 24 -#define AL_VOCAL_MORPHER_PHONEME_R 25 -#define AL_VOCAL_MORPHER_PHONEME_S 26 -#define AL_VOCAL_MORPHER_PHONEME_T 27 -#define AL_VOCAL_MORPHER_PHONEME_V 28 -#define AL_VOCAL_MORPHER_PHONEME_Z 29 - -#define AL_VOCAL_MORPHER_MIN_PHONEMEB_COARSE_TUNING (-24) -#define AL_VOCAL_MORPHER_MAX_PHONEMEB_COARSE_TUNING 24 -#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEB_COARSE_TUNING 0 - -#define AL_VOCAL_MORPHER_MIN_WAVEFORM 0 -#define AL_VOCAL_MORPHER_MAX_WAVEFORM 2 -#define AL_VOCAL_MORPHER_DEFAULT_WAVEFORM 0 - -#define AL_VOCAL_MORPHER_WAVEFORM_SINUSOID 0 -#define AL_VOCAL_MORPHER_WAVEFORM_TRIANGLE 1 -#define AL_VOCAL_MORPHER_WAVEFORM_SAWTOOTH 2 - -#define AL_VOCAL_MORPHER_MIN_RATE 0.0f -#define AL_VOCAL_MORPHER_MAX_RATE 10.0f -#define AL_VOCAL_MORPHER_DEFAULT_RATE 1.41f - -/** - * AL pitch shifter effect parameter ranges and defaults - */ -#define AL_PITCH_SHIFTER_MIN_COARSE_TUNE (-12) -#define AL_PITCH_SHIFTER_MAX_COARSE_TUNE 12 -#define AL_PITCH_SHIFTER_DEFAULT_COARSE_TUNE 12 - -#define AL_PITCH_SHIFTER_MIN_FINE_TUNE (-50) -#define AL_PITCH_SHIFTER_MAX_FINE_TUNE 50 -#define AL_PITCH_SHIFTER_DEFAULT_FINE_TUNE 0 - -/** - * AL ring modulator effect parameter ranges and defaults - */ -#define AL_RING_MODULATOR_MIN_FREQUENCY 0.0f -#define AL_RING_MODULATOR_MAX_FREQUENCY 8000.0f -#define AL_RING_MODULATOR_DEFAULT_FREQUENCY 440.0f - -#define AL_RING_MODULATOR_MIN_HIGHPASS_CUTOFF 0.0f -#define AL_RING_MODULATOR_MAX_HIGHPASS_CUTOFF 24000.0f -#define AL_RING_MODULATOR_DEFAULT_HIGHPASS_CUTOFF 800.0f - -#define AL_RING_MODULATOR_MIN_WAVEFORM 0 -#define AL_RING_MODULATOR_MAX_WAVEFORM 2 -#define AL_RING_MODULATOR_DEFAULT_WAVEFORM 0 - -#define AL_RING_MODULATOR_SINUSOID 0 -#define AL_RING_MODULATOR_SAWTOOTH 1 -#define AL_RING_MODULATOR_SQUARE 2 - -/** - * AL autowah effect parameter ranges and defaults - */ -#define AL_AUTOWAH_MIN_ATTACK_TIME 0.0001f -#define AL_AUTOWAH_MAX_ATTACK_TIME 1.0f -#define AL_AUTOWAH_DEFAULT_ATTACK_TIME 0.06f - -#define AL_AUTOWAH_MIN_RELEASE_TIME 0.0001f -#define AL_AUTOWAH_MAX_RELEASE_TIME 1.0f -#define AL_AUTOWAH_DEFAULT_RELEASE_TIME 0.06f - -#define AL_AUTOWAH_MIN_RESONANCE 2.0f -#define AL_AUTOWAH_MAX_RESONANCE 1000.0f -#define AL_AUTOWAH_DEFAULT_RESONANCE 1000.0f - -#define AL_AUTOWAH_MIN_PEAK_GAIN 0.00003f -#define AL_AUTOWAH_MAX_PEAK_GAIN 31621.0f -#define AL_AUTOWAH_DEFAULT_PEAK_GAIN 11.22f - -/** - * AL compressor effect parameter ranges and defaults - */ -#define AL_COMPRESSOR_MIN_ONOFF 0 -#define AL_COMPRESSOR_MAX_ONOFF 1 -#define AL_COMPRESSOR_DEFAULT_ONOFF 1 - -/** - * AL equalizer effect parameter ranges and defaults - */ -#define AL_EQUALIZER_MIN_LOW_GAIN 0.126f -#define AL_EQUALIZER_MAX_LOW_GAIN 7.943f -#define AL_EQUALIZER_DEFAULT_LOW_GAIN 1.0f - -#define AL_EQUALIZER_MIN_LOW_CUTOFF 50.0f -#define AL_EQUALIZER_MAX_LOW_CUTOFF 800.0f -#define AL_EQUALIZER_DEFAULT_LOW_CUTOFF 200.0f - -#define AL_EQUALIZER_MIN_MID1_GAIN 0.126f -#define AL_EQUALIZER_MAX_MID1_GAIN 7.943f -#define AL_EQUALIZER_DEFAULT_MID1_GAIN 1.0f - -#define AL_EQUALIZER_MIN_MID1_CENTER 200.0f -#define AL_EQUALIZER_MAX_MID1_CENTER 3000.0f -#define AL_EQUALIZER_DEFAULT_MID1_CENTER 500.0f - -#define AL_EQUALIZER_MIN_MID1_WIDTH 0.01f -#define AL_EQUALIZER_MAX_MID1_WIDTH 1.0f -#define AL_EQUALIZER_DEFAULT_MID1_WIDTH 1.0f - -#define AL_EQUALIZER_MIN_MID2_GAIN 0.126f -#define AL_EQUALIZER_MAX_MID2_GAIN 7.943f -#define AL_EQUALIZER_DEFAULT_MID2_GAIN 1.0f - -#define AL_EQUALIZER_MIN_MID2_CENTER 1000.0f -#define AL_EQUALIZER_MAX_MID2_CENTER 8000.0f -#define AL_EQUALIZER_DEFAULT_MID2_CENTER 3000.0f - -#define AL_EQUALIZER_MIN_MID2_WIDTH 0.01f -#define AL_EQUALIZER_MAX_MID2_WIDTH 1.0f -#define AL_EQUALIZER_DEFAULT_MID2_WIDTH 1.0f - -#define AL_EQUALIZER_MIN_HIGH_GAIN 0.126f -#define AL_EQUALIZER_MAX_HIGH_GAIN 7.943f -#define AL_EQUALIZER_DEFAULT_HIGH_GAIN 1.0f - -#define AL_EQUALIZER_MIN_HIGH_CUTOFF 4000.0f -#define AL_EQUALIZER_MAX_HIGH_CUTOFF 16000.0f -#define AL_EQUALIZER_DEFAULT_HIGH_CUTOFF 6000.0f - - - - -/********************************************************** - * Source parameter value definitions, ranges and defaults. - */ -#define AL_MIN_AIR_ABSORPTION_FACTOR 0.0f -#define AL_MAX_AIR_ABSORPTION_FACTOR 10.0f -#define AL_DEFAULT_AIR_ABSORPTION_FACTOR 0.0f - -#define AL_MIN_ROOM_ROLLOFF_FACTOR 0.0f -#define AL_MAX_ROOM_ROLLOFF_FACTOR 10.0f -#define AL_DEFAULT_ROOM_ROLLOFF_FACTOR 0.0f - -#define AL_MIN_CONE_OUTER_GAINHF 0.0f -#define AL_MAX_CONE_OUTER_GAINHF 1.0f -#define AL_DEFAULT_CONE_OUTER_GAINHF 1.0f - -#define AL_MIN_DIRECT_FILTER_GAINHF_AUTO AL_FALSE -#define AL_MAX_DIRECT_FILTER_GAINHF_AUTO AL_TRUE -#define AL_DEFAULT_DIRECT_FILTER_GAINHF_AUTO AL_TRUE - -#define AL_MIN_AUXILIARY_SEND_FILTER_GAIN_AUTO AL_FALSE -#define AL_MAX_AUXILIARY_SEND_FILTER_GAIN_AUTO AL_TRUE -#define AL_DEFAULT_AUXILIARY_SEND_FILTER_GAIN_AUTO AL_TRUE - -#define AL_MIN_AUXILIARY_SEND_FILTER_GAINHF_AUTO AL_FALSE -#define AL_MAX_AUXILIARY_SEND_FILTER_GAINHF_AUTO AL_TRUE -#define AL_DEFAULT_AUXILIARY_SEND_FILTER_GAINHF_AUTO AL_TRUE - - - - -/********************************************************** - * Listener parameter value definitions, ranges and defaults. - */ -#define AL_MIN_METERS_PER_UNIT FLT_MIN -#define AL_MAX_METERS_PER_UNIT FLT_MAX -#define AL_DEFAULT_METERS_PER_UNIT 1.0f +/* Listener parameter value ranges and defaults. */ +#define AL_MIN_METERS_PER_UNIT FLT_MIN +#define AL_MAX_METERS_PER_UNIT FLT_MAX +#define AL_DEFAULT_METERS_PER_UNIT (1.0f) #ifdef __cplusplus } /* extern "C" */ #endif -#endif /* __efx_h_ */ +#endif /* AL_EFX_H */ diff --git a/Source/Core/AudioCommon/AudioCommon.vcxproj b/Source/Core/AudioCommon/AudioCommon.vcxproj index 2e13aedb46..a983005318 100644 --- a/Source/Core/AudioCommon/AudioCommon.vcxproj +++ b/Source/Core/AudioCommon/AudioCommon.vcxproj @@ -109,7 +109,7 @@ - ..\Common\Src;%(AdditionalIncludeDirectories) + ..\Core\Src;..\Common\Src;..\..\..\Externals;%(AdditionalIncludeDirectories) true @@ -121,7 +121,7 @@ - ..\Common\Src;%(AdditionalIncludeDirectories) + ..\Core\Src;..\Common\Src;..\..\..\Externals;%(AdditionalIncludeDirectories) true @@ -147,7 +147,7 @@ - ..\Common\Src;%(AdditionalIncludeDirectories) + ..\Core\Src;..\Common\Src;..\..\..\Externals;%(AdditionalIncludeDirectories) true @@ -175,7 +175,7 @@ - ..\Common\Src;%(AdditionalIncludeDirectories) + ..\Core\Src;..\Common\Src;..\..\..\Externals;%(AdditionalIncludeDirectories) true @@ -192,6 +192,7 @@ + @@ -204,6 +205,7 @@ + diff --git a/Source/Core/AudioCommon/AudioCommon.vcxproj.filters b/Source/Core/AudioCommon/AudioCommon.vcxproj.filters index 7e098ecb85..af5fe12220 100644 --- a/Source/Core/AudioCommon/AudioCommon.vcxproj.filters +++ b/Source/Core/AudioCommon/AudioCommon.vcxproj.filters @@ -21,6 +21,7 @@ SoundStreams + @@ -44,6 +45,7 @@ SoundStreams + diff --git a/Source/Core/AudioCommon/CMakeLists.txt b/Source/Core/AudioCommon/CMakeLists.txt index 93547681b0..0e610bd847 100644 --- a/Source/Core/AudioCommon/CMakeLists.txt +++ b/Source/Core/AudioCommon/CMakeLists.txt @@ -1,5 +1,6 @@ set(SRCS Src/AudioCommon.cpp Src/AudioCommonConfig.cpp + Src/DPL2Decoder.cpp Src/Mixer.cpp Src/WaveFile.cpp Src/NullSoundStream.cpp) diff --git a/Source/Core/AudioCommon/Src/DPL2Decoder.cpp b/Source/Core/AudioCommon/Src/DPL2Decoder.cpp new file mode 100644 index 0000000000..4efedc4b44 --- /dev/null +++ b/Source/Core/AudioCommon/Src/DPL2Decoder.cpp @@ -0,0 +1,397 @@ +// Copyright (C) 2003 Dolphin Project. + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 2.0. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License 2.0 for more details. + +// A copy of the GPL 2.0 should have been included with the program. +// If not, see http://www.gnu.org/licenses/ + +// Official SVN repository and contact information can be found at +// http://code.google.com/p/dolphin-emu/ + +// Dolby Pro Logic 2 decoder from ffdshow-tryout +// * Copyright 2001 Anders Johansson ajh@atri.curtin.edu.au +// * Copyright (c) 2004-2006 Milan Cutka +// * based on mplayer HRTF plugin by ylai + +#include +#include +#include "DPL2Decoder.h" + +#define M_PI 3.14159265358979323846 +#define M_SQRT1_2 0.70710678118654752440 + +int olddelay = -1; +unsigned int oldfreq = 0; +unsigned int dlbuflen; +int cyc_pos; +float l_fwr, r_fwr, lpr_fwr, lmr_fwr; +std::vector fwrbuf_l, fwrbuf_r; +float adapt_l_gain, adapt_r_gain, adapt_lpr_gain, adapt_lmr_gain; +std::vector lf, rf, lr, rr, cf, cr; +float LFE_buf[256]; +unsigned int lfe_pos; +float *filter_coefs_lfe; +unsigned int len125; + +template static _ftype_t dotproduct(int count,const T *buf,const _ftype_t *coefficients) +{ + float sum0=0,sum1=0,sum2=0,sum3=0; + for (;count>=4;buf+=4,coefficients+=4,count-=4) + { + sum0+=buf[0]*coefficients[0]; + sum1+=buf[1]*coefficients[1]; + sum2+=buf[2]*coefficients[2]; + sum3+=buf[3]*coefficients[3]; + } + while (count--) sum0+= *buf++ * *coefficients++; + return sum0+sum1+sum2+sum3; +} + +template static T firfilter(const T *buf, int pos, int len, int count, const float *coefficients) +{ + int count1, count2; + + if (pos >= count) + { + pos -= count; + count1 = count; count2 = 0; + } + else + { + count2 = pos; + count1 = count - pos; + pos = len - count1; + } + + // high part of window + const T *ptr = &buf[pos]; + + float r1=dotproduct(count1,ptr,coefficients);coefficients+=count1; + float r2=dotproduct(count2,buf,coefficients); + return T(r1+r2); +} + +template inline const T& limit(const T& val, const T& min, const T& max) +{ + if (val < min) { + return min; + } else if (val > max) { + return max; + } else { + return val; + } +} + +/* +// Hamming +// 2*pi*k +// w(k) = 0.54 - 0.46*cos(------), where 0 <= k < N +// N-1 +// +// n window length +// w buffer for the window parameters +*/ +void hamming(int n, float* w) +{ + int i; + float k = float(2*M_PI/((float)(n-1))); // 2*pi/(N-1) + + // Calculate window coefficients + for (i=0; i Fs/2 +flags window and filter type as defined in filter.h +variables are ored together: i.e. LP|HAMMING will give a +low pass filter designed using a hamming window +opt beta constant used only when designing using kaiser windows + +returns 0 if OK, -1 if fail +*/ +float* design_fir(unsigned int *n, float* fc, float opt) +{ + unsigned int o = *n & 1; // Indicator for odd filter length + unsigned int end = ((*n + 1) >> 1) - o; // Loop end + unsigned int i; // Loop index + + float k1 = 2 * float(M_PI); // 2*pi*fc1 + float k2 = 0.5f * (float)(1 - o);// Constant used if the filter has even length + float g = 0.0f; // Gain + float t1; // Temporary variables + float fc1; // Cutoff frequencies + + // Sanity check + if(*n==0) return NULL; + fc[0]=limit(fc[0],float(0.001),float(1)); + + float *w=(float*)calloc(sizeof(float),*n); + + // Get window coefficients + hamming(*n,w); + + fc1=*fc; + // Cutoff frequency must be < 0.5 where 0.5 <=> Fs/2 + fc1 = ((fc1 <= 1.0) && (fc1 > 0.0)) ? fc1/2 : 0.25f; + k1 *= fc1; + + // Low pass filter + + // If the filter length is odd, there is one point which is exactly + // in the middle. The value at this point is 2*fCutoff*sin(x)/x, + // where x is zero. To make sure nothing strange happens, we set this + // value separately. + if (o) + { + w[end] = fc1 * w[end] * 2.0f; + g=w[end]; + } + + // Create filter + for (i=0 ; i M9_03DB * lpr_fwr ? lmr_fwr : M9_03DB * lpr_fwr; + float lpr_gain = (lpr_fwr + lmr_lim_fwr) / (1 + lpr_fwr + lpr_fwr); + float lmr_gain = (lpr_fwr + lmr_lim_fwr) / (1 + lmr_lim_fwr + lmr_lim_fwr); + float lmr_unlim_gain = (lpr_fwr + lmr_fwr) / (1 + lmr_fwr + lmr_fwr); + float lpr, lmr; + float l_agc, r_agc, lpr_agc, lmr_agc; + float f, d_gain, c_gain, c_agc_cfk; + + /*** AXIS NO. 1: (Lt, Rt) -> (C, Ls, Rs) ***/ + /* AGC adaption */ + d_gain = (fabs(l_gain - *adapt_l_gain) + fabs(r_gain - *adapt_r_gain)) * 0.5f; + f = d_gain * (1.0f / MATAGCTRIG); + f = MATAGCDECAY - MATAGCDECAY / (1 + f * f); + *adapt_l_gain = (1 - f) * *adapt_l_gain + f * l_gain; + *adapt_r_gain = (1 - f) * *adapt_r_gain + f * r_gain; + /* Matrix */ + l_agc = in[il] * passive_lock(*adapt_l_gain); + r_agc = in[ir] * passive_lock(*adapt_r_gain); + cf[k] = (l_agc + r_agc) * (float)M_SQRT1_2; + if (decode_rear) + { + lr[kr] = rr[kr] = (l_agc - r_agc) * (float)M_SQRT1_2; + /* Stereo rear channel is steered with the same AGC steering as + the decoding matrix. Note this requires a fast updating AGC + at the order of 20 ms (which is the case here). */ + lr[kr] *= (l_fwr + l_fwr) / (1 + l_fwr + r_fwr); + rr[kr] *= (r_fwr + r_fwr) / (1 + l_fwr + r_fwr); + } + + /*** AXIS NO. 2: (Lt + Rt, Lt - Rt) -> (L, R) ***/ + lpr = (in[il] + in[ir]) * (float)M_SQRT1_2; + lmr = (in[il] - in[ir]) * (float)M_SQRT1_2; + /* AGC adaption */ + d_gain = fabs(lmr_unlim_gain - *adapt_lmr_gain); + f = d_gain * (1.0f / MATAGCTRIG); + f = MATAGCDECAY - MATAGCDECAY / (1 + f * f); + *adapt_lpr_gain = (1 - f) * *adapt_lpr_gain + f * lpr_gain; + *adapt_lmr_gain = (1 - f) * *adapt_lmr_gain + f * lmr_gain; + /* Matrix */ + lpr_agc = lpr * passive_lock(*adapt_lpr_gain); + lmr_agc = lmr * passive_lock(*adapt_lmr_gain); + lf[k] = (lpr_agc + lmr_agc) * (float)M_SQRT1_2; + rf[k] = (lpr_agc - lmr_agc) * (float)M_SQRT1_2; + + /*** CENTER FRONT CANCELLATION ***/ + /* A heuristic approach exploits that Lt + Rt gain contains the + information about Lt, Rt correlation. This effectively reshapes + the front and rear "cones" to concentrate Lt + Rt to C and + introduce Lt - Rt in L, R. */ + /* 0.67677 is the empirical lower bound for lpr_gain. */ + c_gain = 8 * (*adapt_lpr_gain - 0.67677f); + c_gain = c_gain > 0 ? c_gain : 0; + /* c_gain should not be too high, not even reaching full + cancellation (~ 0.50 - 0.55 at current AGC implementation), or + the center will sound too narrow. */ + c_gain = MATCOMPGAIN / (1 + c_gain * c_gain); + c_agc_cfk = c_gain * cf[k]; + lf[k] -= c_agc_cfk; + rf[k] -= c_agc_cfk; + cf[k] += c_agc_cfk + c_agc_cfk; +} + +void dpl2decode(float *samples, int numsamples, float *out) +{ + static const unsigned int FWRDURATION = 240; /* FWR average duration (samples) */ + static const unsigned int cfg_delay = 0; + static const unsigned int fmt_freq = 48000; + static const unsigned int fmt_nchannels = 2; // input channels + + int cur = 0; + + if (olddelay != cfg_delay || oldfreq != fmt_freq) + { + done(); + olddelay = cfg_delay; + oldfreq = fmt_freq; + dlbuflen = std::max(FWRDURATION, (fmt_freq * cfg_delay / 1000)); //+(len7000-1); + cyc_pos = dlbuflen - 1; + fwrbuf_l.resize(dlbuflen); + fwrbuf_r.resize(dlbuflen); + lf.resize(dlbuflen); + rf.resize(dlbuflen); + lr.resize(dlbuflen); + rr.resize(dlbuflen); + cf.resize(dlbuflen); + cr.resize(dlbuflen); + filter_coefs_lfe = calc_coefficients_125Hz_lowpass(fmt_freq); + lfe_pos = 0; + memset(LFE_buf, 0, sizeof(LFE_buf)); + } + + float *in = samples; // Input audio data + float *end = in + numsamples * fmt_nchannels; // Loop end + + while (in < end) + { + const int k = cyc_pos; + + const int fwr_pos = (k + FWRDURATION) % dlbuflen; + /* Update the full wave rectified total amplitude */ + /* Input matrix decoder */ + l_fwr += fabs(in[0]) - fabs(fwrbuf_l[fwr_pos]); + r_fwr += fabs(in[1]) - fabs(fwrbuf_r[fwr_pos]); + lpr_fwr += fabs(in[0] + in[1]) - fabs(fwrbuf_l[fwr_pos] + fwrbuf_r[fwr_pos]); + lmr_fwr += fabs(in[0] - in[1]) - fabs(fwrbuf_l[fwr_pos] - fwrbuf_r[fwr_pos]); + + /* Matrix encoded 2 channel sources */ + fwrbuf_l[k] = in[0]; + fwrbuf_r[k] = in[1]; + matrix_decode(in, k, 0, 1, true, dlbuflen, + l_fwr, r_fwr, + lpr_fwr, lmr_fwr, + &adapt_l_gain, &adapt_r_gain, + &adapt_lpr_gain, &adapt_lmr_gain, + &lf[0], &rf[0], &lr[0], &rr[0], &cf[0]); + + out[cur + 0] = lf[k]; + out[cur + 1] = rf[k]; + out[cur + 2] = cf[k]; + LFE_buf[lfe_pos] = (out[0] + out[1]) / 2; + out[cur + 3] = firfilter(LFE_buf, lfe_pos, len125, len125, filter_coefs_lfe); + lfe_pos++; + if (lfe_pos == len125) + { + lfe_pos = 0; + } + out[cur + 4] = lr[k]; + out[cur + 5] = rr[k]; + // Next sample... + in += 2; + cur += 6; + cyc_pos--; + if (cyc_pos < 0) + { + cyc_pos += dlbuflen; + } + } +} + +void dpl2reset() +{ + olddelay = -1; + oldfreq = 0; + filter_coefs_lfe = NULL; +} diff --git a/Source/Core/AudioCommon/Src/DPL2Decoder.h b/Source/Core/AudioCommon/Src/DPL2Decoder.h new file mode 100644 index 0000000000..eee8fbf15e --- /dev/null +++ b/Source/Core/AudioCommon/Src/DPL2Decoder.h @@ -0,0 +1,24 @@ +// Copyright (C) 2003 Dolphin Project. + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 2.0. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License 2.0 for more details. + +// A copy of the GPL 2.0 should have been included with the program. +// If not, see http://www.gnu.org/licenses/ + +// Official SVN repository and contact information can be found at +// http://code.google.com/p/dolphin-emu/ + +#ifndef _DPL2DECODER_H_ +#define _DPL2DECODER_H_ + +void dpl2decode(float *samples, int numsamples, float *out); +void dpl2reset(); + +#endif // _DPL2DECODER_H_ diff --git a/Source/Core/AudioCommon/Src/OpenALStream.cpp b/Source/Core/AudioCommon/Src/OpenALStream.cpp index b0c856dcad..8fb1f1b2c5 100644 --- a/Source/Core/AudioCommon/Src/OpenALStream.cpp +++ b/Source/Core/AudioCommon/Src/OpenALStream.cpp @@ -15,10 +15,9 @@ // Official SVN repository and contact information can be found at // http://code.google.com/p/dolphin-emu/ -#include - #include "aldlist.h" #include "OpenALStream.h" +#include "DPL2Decoder.h" #if defined HAVE_OPENAL && HAVE_OPENAL @@ -37,8 +36,10 @@ bool OpenALStream::Start() pDeviceList = new ALDeviceList(); if ((pDeviceList) && (pDeviceList->GetNumDevices())) { - char *defDevName = pDeviceList-> \ - GetDeviceName(pDeviceList->GetDefaultDevice()); + char *defDevName = pDeviceList->GetDeviceName(pDeviceList->GetDefaultDevice()); + + WARN_LOG(AUDIO, "Found OpenAL device %s", defDevName); + pDevice = alcOpenDevice(defDevName); if (pDevice) { @@ -52,8 +53,7 @@ bool OpenALStream::Start() else { alcCloseDevice(pDevice); - PanicAlertT("OpenAL: can't create context " - "for device %s", defDevName); + PanicAlertT("OpenAL: can't create context for device %s", defDevName); } } else @@ -67,6 +67,9 @@ bool OpenALStream::Start() PanicAlertT("OpenAL: can't find sound devices"); } + // Initialise DPL2 parameters + dpl2reset(); + soundTouch.clear(); return bReturn; } @@ -76,6 +79,7 @@ void OpenALStream::Stop() threadData = 1; // kick the thread if it's waiting soundSyncEvent.Set(); + mainSyncEvent.Set(); soundTouch.clear(); @@ -141,10 +145,15 @@ void OpenALStream::SoundLoop() alGenSources(1, &uiSource); // Short Silence - memset(sampleBuffer, 0, OAL_MAX_SAMPLES * 4 * OAL_NUM_BUFFERS); + memset(sampleBuffer, 0, OAL_MAX_SAMPLES * SIZE_FLOAT * SURROUND_CHANNELS * OAL_NUM_BUFFERS); memset(realtimeBuffer, 0, OAL_MAX_SAMPLES * 4); for (int i = 0; i < OAL_NUM_BUFFERS; i++) - alBufferData(uiBuffers[i], AL_FORMAT_STEREO16, realtimeBuffer, OAL_MAX_SAMPLES * 4, ulFrequency); + { + if (Core::g_CoreStartupParameter.bDPL2Decoder) + alBufferData(uiBuffers[i], AL_FORMAT_51CHN32, sampleBuffer, OAL_MAX_SAMPLES * SIZE_FLOAT * SURROUND_CHANNELS * OAL_NUM_BUFFERS, ulFrequency); + else + alBufferData(uiBuffers[i], AL_FORMAT_STEREO16, realtimeBuffer, OAL_MAX_SAMPLES * 4, ulFrequency); + } alSourceQueueBuffers(uiSource, OAL_NUM_BUFFERS, uiBuffers); alSourcePlay(uiSource); @@ -166,6 +175,8 @@ void OpenALStream::SoundLoop() soundTouch.setSetting(SETTING_SEEKWINDOW_MS, 28); soundTouch.setSetting(SETTING_OVERLAP_MS, 12); + bool surround_capable = Core::g_CoreStartupParameter.bDPL2Decoder; + while (!threadData) { // num_samples_to_render in this update - depends on SystemTimers::AUDIO_DMA_PERIOD. @@ -201,18 +212,72 @@ void OpenALStream::SoundLoop() soundTouch.setSetting(SETTING_SEQUENCE_MS, (int)(1 / (rate * rate))); soundTouch.setTempo(rate); } - unsigned int nSamples = soundTouch.receiveSamples(sampleBuffer, OAL_MAX_SAMPLES * 2 * OAL_NUM_BUFFERS); + unsigned int nSamples = soundTouch.receiveSamples(sampleBuffer, OAL_MAX_SAMPLES * SIZE_FLOAT * SURROUND_CHANNELS * OAL_NUM_BUFFERS); if (nSamples > 0) { // Remove the Buffer from the Queue. (uiBuffer contains the Buffer ID for the unqueued Buffer) if (iBuffersFilled == 0) + { alSourceUnqueueBuffers(uiSource, iBuffersProcessed, uiBufferTemp); - alBufferData(uiBufferTemp[iBuffersFilled], AL_FORMAT_STEREO16, sampleBuffer, nSamples * 4, ulFrequency); + ALenum err = alGetError(); + if (err != 0) + { + ERROR_LOG(AUDIO, "Error unqueuing buffers: %08x", err); + } + } +#if defined(__APPLE__) + // OSX does not have the alext AL_FORMAT_51CHN32 yet. + surround_capable = false; +#else + if (surround_capable) + { + // Convert the samples from short to float for the dpl2 decoder + float dest[OAL_MAX_SAMPLES * 2 * OAL_NUM_BUFFERS]; + for (u32 i = 0; i < nSamples; ++i) + { + dest[i * 2 + 0] = (float)sampleBuffer[i * 2 + 0] / (1<<16); + dest[i * 2 + 1] = (float)sampleBuffer[i * 2 + 1] / (1<<16); + } + + float dpl2[OAL_MAX_SAMPLES * SIZE_FLOAT * SURROUND_CHANNELS * OAL_NUM_BUFFERS]; + dpl2decode(dest, nSamples, dpl2); + + alBufferData(uiBufferTemp[iBuffersFilled], AL_FORMAT_51CHN32, dpl2, nSamples * SIZE_FLOAT * SURROUND_CHANNELS, ulFrequency); + ALenum err = alGetError(); + if (err == AL_INVALID_ENUM) + { + // 5.1 is not supported by the host, fallback to stereo + WARN_LOG(AUDIO, "Unable set 5.1 surround mode. Updating OpenAL Soft might fix this issue."); + surround_capable = false; + } + else if (err != 0) + { + ERROR_LOG(AUDIO, "Error occurred while buffering data: %08x", err); + } + } +#endif + if (!surround_capable) + { + alBufferData(uiBufferTemp[iBuffersFilled], AL_FORMAT_STEREO16, sampleBuffer, nSamples * 2 * 2, ulFrequency); + } + alSourceQueueBuffers(uiSource, 1, &uiBufferTemp[iBuffersFilled]); + ALenum err = alGetError(); + if (err != 0) + { + ERROR_LOG(AUDIO, "Error queuing buffers: %08x", err); + } iBuffersFilled++; if (iBuffersFilled == OAL_NUM_BUFFERS) + { alSourcePlay(uiSource); + ALenum err = alGetError(); + if (err != 0) + { + ERROR_LOG(AUDIO, "Error occurred during playback: %08x", err); + } + } } } else diff --git a/Source/Core/AudioCommon/Src/OpenALStream.h b/Source/Core/AudioCommon/Src/OpenALStream.h index c775d31cf2..b342e0a49e 100644 --- a/Source/Core/AudioCommon/Src/OpenALStream.h +++ b/Source/Core/AudioCommon/Src/OpenALStream.h @@ -26,12 +26,14 @@ #ifdef _WIN32 #include #include +#include #elif defined __APPLE__ #include #include #else #include #include +#include #endif #include "Core.h" @@ -44,6 +46,8 @@ #define SFX_MAX_SOURCE 1 #define OAL_NUM_BUFFERS 16 #define OAL_MAX_SAMPLES 512 +#define SURROUND_CHANNELS 6 // number of channels in surround mode +#define SIZE_FLOAT 4 // size of a float in bytes #endif class OpenALStream: public SoundStream @@ -72,7 +76,7 @@ private: Common::Event mainSyncEvent; short realtimeBuffer[OAL_MAX_SAMPLES * 2]; - soundtouch::SAMPLETYPE sampleBuffer[OAL_MAX_SAMPLES * 2 * OAL_NUM_BUFFERS]; + soundtouch::SAMPLETYPE sampleBuffer[OAL_MAX_SAMPLES * SIZE_FLOAT * SURROUND_CHANNELS * OAL_NUM_BUFFERS]; ALuint uiBuffers[OAL_NUM_BUFFERS]; ALuint uiSource; ALfloat fVolume; diff --git a/Source/Core/Core/Src/ConfigManager.cpp b/Source/Core/Core/Src/ConfigManager.cpp index 180e6c981d..d4b79774ef 100644 --- a/Source/Core/Core/Src/ConfigManager.cpp +++ b/Source/Core/Core/Src/ConfigManager.cpp @@ -227,6 +227,7 @@ void SConfig::SaveSettings() ini.Set("Core", "Apploader", m_LocalCoreStartupParameter.m_strApploader); ini.Set("Core", "EnableCheats", m_LocalCoreStartupParameter.bEnableCheats); ini.Set("Core", "SelectedLanguage", m_LocalCoreStartupParameter.SelectedLanguage); + ini.Set("Core", "DPL2Decoder", m_LocalCoreStartupParameter.bDPL2Decoder); ini.Set("Core", "MemcardA", m_strMemoryCardA); ini.Set("Core", "MemcardB", m_strMemoryCardB); ini.Set("Core", "SlotA", m_EXIDevice[0]); @@ -367,6 +368,7 @@ void SConfig::LoadSettings() ini.Get("Core", "Apploader", &m_LocalCoreStartupParameter.m_strApploader); ini.Get("Core", "EnableCheats", &m_LocalCoreStartupParameter.bEnableCheats, false); ini.Get("Core", "SelectedLanguage", &m_LocalCoreStartupParameter.SelectedLanguage, 0); + ini.Get("Core", "DPL2Decoder", &m_LocalCoreStartupParameter.bDPL2Decoder, true); ini.Get("Core", "MemcardA", &m_strMemoryCardA); ini.Get("Core", "MemcardB", &m_strMemoryCardB); ini.Get("Core", "SlotA", (int*)&m_EXIDevice[0], EXIDEVICE_MEMORYCARD); diff --git a/Source/Core/Core/Src/CoreParameter.cpp b/Source/Core/Core/Src/CoreParameter.cpp index dee2452cb3..64a3fc54d8 100644 --- a/Source/Core/Core/Src/CoreParameter.cpp +++ b/Source/Core/Core/Src/CoreParameter.cpp @@ -49,6 +49,7 @@ SCoreStartupParameter::SCoreStartupParameter() bEnableCheats(false), bMergeBlocks(false), bRunCompareServer(false), bRunCompareClient(false), + bDPL2Decoder(true), bMMU(false), bMMUBAT(false), iTLBHack(0), bVBeam(false), bFastDiscSpeed(false), SelectedLanguage(0), bWii(false), bDisableWiimoteSpeaker(false), @@ -84,6 +85,7 @@ void SCoreStartupParameter::LoadDefaults() bMergeBlocks = false; SelectedLanguage = 0; bWii = false; + bDPL2Decoder = true; iPosX = 100; iPosY = 100; diff --git a/Source/Core/Core/Src/CoreParameter.h b/Source/Core/Core/Src/CoreParameter.h index e67935906b..b67bf24b20 100644 --- a/Source/Core/Core/Src/CoreParameter.h +++ b/Source/Core/Core/Src/CoreParameter.h @@ -107,6 +107,8 @@ struct SCoreStartupParameter bool bEnableCheats; bool bMergeBlocks; + bool bDPL2Decoder; + bool bRunCompareServer; bool bRunCompareClient; diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp index ce4cd9cb22..9f38c5db69 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.cpp +++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp @@ -120,6 +120,7 @@ EVT_RADIOBOX(ID_DSPENGINE, CConfigMain::AudioSettingsChanged) EVT_CHECKBOX(ID_DSPTHREAD, CConfigMain::AudioSettingsChanged) EVT_CHECKBOX(ID_ENABLE_THROTTLE, CConfigMain::AudioSettingsChanged) EVT_CHECKBOX(ID_DUMP_AUDIO, CConfigMain::AudioSettingsChanged) +EVT_CHECKBOX(ID_DPL2DECODER, CConfigMain::AudioSettingsChanged) EVT_CHOICE(ID_FREQUENCY, CConfigMain::AudioSettingsChanged) EVT_CHOICE(ID_BACKEND, CConfigMain::AudioSettingsChanged) EVT_SLIDER(ID_VOLUME, CConfigMain::AudioSettingsChanged) @@ -363,6 +364,7 @@ void CConfigMain::InitializeGUIValues() VolumeText->SetLabel(wxString::Format(wxT("%d %%"), ac_Config.m_Volume)); DSPThread->SetValue(startup_params.bDSPThread); DumpAudio->SetValue(ac_Config.m_DumpAudio ? true : false); + DPL2Decoder->SetValue(startup_params.bDPL2Decoder); FrequencySelection->SetSelection( FrequencySelection->FindString(wxString::Format(_("%d Hz"), ac_Config.iFrequency))); // add backends to the list @@ -517,6 +519,14 @@ void CConfigMain::InitializeGUITooltips() // Wii - Devices WiiKeyboard->SetToolTip(_("This could cause slow down in Wii Menu and some games.")); + +#if defined(__APPLE__) + DPL2Decoder->SetToolTip(_("Enables Dolby Pro Logic II emulation using 5.1 surround. Not available on OSX.")); +#elif defined(__linux__) + DPL2Decoder->SetToolTip(_("Enables Dolby Pro Logic II emulation using 5.1 surround. OpenAL backend only.")); +#elif defined(_WIN32) + DPL2Decoder->SetToolTip(_("Enables Dolby Pro Logic II emulation using 5.1 surround. OpenAL backend only. May need to rename soft_oal.dll to OpenAL32.dll to make it work.")); +#endif } void CConfigMain::CreateGUIControls() @@ -613,6 +623,7 @@ void CConfigMain::CreateGUIControls() DSPThread = new wxCheckBox(AudioPage, ID_DSPTHREAD, _("DSP LLE on Thread")); DumpAudio = new wxCheckBox(AudioPage, ID_DUMP_AUDIO, _("Dump Audio"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); + DPL2Decoder = new wxCheckBox(AudioPage, ID_DPL2DECODER, _("Dolby Pro Logic II decoder")); VolumeSlider = new wxSlider(AudioPage, ID_VOLUME, 0, 1, 100, wxDefaultPosition, wxDefaultSize, wxSL_VERTICAL|wxSL_INVERSE); VolumeText = new wxStaticText(AudioPage, wxID_ANY, wxT(""), @@ -634,6 +645,7 @@ void CConfigMain::CreateGUIControls() sbAudioSettings->Add(DSPEngine, 0, wxALL | wxEXPAND, 5); sbAudioSettings->Add(DSPThread, 0, wxALL, 5); sbAudioSettings->Add(DumpAudio, 0, wxALL, 5); + sbAudioSettings->Add(DPL2Decoder, 0, wxALL, 5); wxStaticBoxSizer *sbVolume = new wxStaticBoxSizer(wxVERTICAL, AudioPage, _("Volume")); sbVolume->Add(VolumeSlider, 1, wxLEFT|wxRIGHT, 13); @@ -927,6 +939,10 @@ void CConfigMain::AudioSettingsChanged(wxCommandEvent& event) SConfig::GetInstance().m_LocalCoreStartupParameter.bDSPThread = DSPThread->IsChecked(); break; + case ID_DPL2DECODER: + SConfig::GetInstance().m_LocalCoreStartupParameter.bDPL2Decoder = DPL2Decoder->IsChecked(); + break; + case ID_BACKEND: VolumeSlider->Enable(SupportsVolumeChanges(std::string(BackendSelection->GetStringSelection().mb_str()))); ac_Config.sBackend = BackendSelection->GetStringSelection().mb_str(); diff --git a/Source/Core/DolphinWX/Src/ConfigMain.h b/Source/Core/DolphinWX/Src/ConfigMain.h index 9b5dbf4243..01a85fabeb 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.h +++ b/Source/Core/DolphinWX/Src/ConfigMain.h @@ -79,6 +79,7 @@ private: ID_ENABLE_HLE_AUDIO, ID_ENABLE_THROTTLE, ID_DUMP_AUDIO, + ID_DPL2DECODER, ID_FREQUENCY, ID_BACKEND, ID_VOLUME, @@ -157,6 +158,7 @@ private: wxSlider* VolumeSlider; wxStaticText* VolumeText; wxCheckBox* DumpAudio; + wxCheckBox* DPL2Decoder; wxArrayString wxArrayBackends; wxChoice* BackendSelection; wxChoice* FrequencySelection;