parent
563705fb71
commit
e43b3aa324
@ -0,0 +1,656 @@ |
||||
#ifndef AL_AL_H |
||||
#define AL_AL_H |
||||
|
||||
#if defined(__cplusplus) |
||||
extern "C" { |
||||
#endif |
||||
|
||||
#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 |
||||
#endif |
||||
|
||||
#if defined(_WIN32) |
||||
#define AL_APIENTRY __cdecl |
||||
#else |
||||
#define AL_APIENTRY |
||||
#endif |
||||
|
||||
|
||||
/** Deprecated macro. */ |
||||
#define OPENAL |
||||
#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; |
||||
|
||||
/** character */ |
||||
typedef char ALchar; |
||||
|
||||
/** signed 8-bit 2's complement integer */ |
||||
typedef signed char ALbyte; |
||||
|
||||
/** unsigned 8-bit integer */ |
||||
typedef unsigned char ALubyte; |
||||
|
||||
/** signed 16-bit 2's complement integer */ |
||||
typedef short ALshort; |
||||
|
||||
/** unsigned 16-bit integer */ |
||||
typedef unsigned short ALushort; |
||||
|
||||
/** signed 32-bit 2's complement integer */ |
||||
typedef int ALint; |
||||
|
||||
/** unsigned 32-bit integer */ |
||||
typedef unsigned int ALuint; |
||||
|
||||
/** non-negative 32-bit binary integer size */ |
||||
typedef int ALsizei; |
||||
|
||||
/** enumerated 32-bit value */ |
||||
typedef int ALenum; |
||||
|
||||
/** 32-bit IEEE754 floating-point */ |
||||
typedef float ALfloat; |
||||
|
||||
/** 64-bit IEEE754 floating-point */ |
||||
typedef double ALdouble; |
||||
|
||||
/** void type (for opaque pointers only) */ |
||||
typedef void ALvoid; |
||||
|
||||
|
||||
/* Enumerant values begin at column 50. No tabs. */ |
||||
|
||||
/** "no distance model" or "no buffer" */ |
||||
#define AL_NONE 0 |
||||
|
||||
/** Boolean False. */ |
||||
#define AL_FALSE 0 |
||||
|
||||
/** Boolean True. */ |
||||
#define AL_TRUE 1 |
||||
|
||||
|
||||
/**
|
||||
* Relative source. |
||||
* Type: ALboolean |
||||
* Range: [AL_TRUE, AL_FALSE] |
||||
* Default: AL_FALSE |
||||
* |
||||
* Specifies if the Source has relative coordinates. |
||||
*/ |
||||
#define AL_SOURCE_RELATIVE 0x202 |
||||
|
||||
|
||||
/**
|
||||
* Inner cone angle, in degrees. |
||||
* Type: ALint, ALfloat |
||||
* Range: [0 - 360] |
||||
* Default: 360 |
||||
* |
||||
* The angle covered by the inner cone, where the source will not attenuate. |
||||
*/ |
||||
#define AL_CONE_INNER_ANGLE 0x1001 |
||||
|
||||
/**
|
||||
* Outer cone angle, in degrees. |
||||
* Range: [0 - 360] |
||||
* Default: 360 |
||||
* |
||||
* The angle covered by the outer cone, where the source will be fully |
||||
* attenuated. |
||||
*/ |
||||
#define AL_CONE_OUTER_ANGLE 0x1002 |
||||
|
||||
/**
|
||||
* Source pitch. |
||||
* Type: ALfloat |
||||
* Range: [0.5 - 2.0] |
||||
* Default: 1.0 |
||||
* |
||||
* A multiplier for the frequency (sample rate) of the source's buffer. |
||||
*/ |
||||
#define AL_PITCH 0x1003 |
||||
|
||||
/**
|
||||
* 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_POSITION 0x1004 |
||||
|
||||
/**
|
||||
* Source direction. |
||||
* Type: ALfloat[3], ALint[3] |
||||
* Default: {0, 0, 0} |
||||
* |
||||
* Specifies the current direction in local space. |
||||
* A zero-length vector specifies an omni-directional source (cone is ignored). |
||||
*/ |
||||
#define AL_DIRECTION 0x1005 |
||||
|
||||
/**
|
||||
* 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 |
||||
* |
||||
* 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 |
||||
|
||||
/** 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_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 for public use. |
||||
*/ |
||||
#define AL_UNUSED 0x2010 |
||||
#define AL_PENDING 0x2011 |
||||
#define AL_PROCESSED 0x2012 |
||||
|
||||
|
||||
/** No error. */ |
||||
#define AL_NO_ERROR 0 |
||||
|
||||
/** Invalid name paramater passed to AL call. */ |
||||
#define AL_INVALID_NAME 0xA001 |
||||
|
||||
/** Invalid enum parameter passed to AL call. */ |
||||
#define AL_INVALID_ENUM 0xA002 |
||||
|
||||
/** Invalid value parameter passed to AL call. */ |
||||
#define AL_INVALID_VALUE 0xA003 |
||||
|
||||
/** Illegal AL call. */ |
||||
#define AL_INVALID_OPERATION 0xA004 |
||||
|
||||
/** Not enough memory. */ |
||||
#define AL_OUT_OF_MEMORY 0xA005 |
||||
|
||||
|
||||
/** 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 |
||||
|
||||
|
||||
/**
|
||||
* Doppler scale. |
||||
* Type: ALfloat |
||||
* Range: [0.0 - ] |
||||
* Default: 1.0 |
||||
* |
||||
* Scale for source and listener velocities. |
||||
*/ |
||||
#define AL_DOPPLER_FACTOR 0xC000 |
||||
AL_API void AL_APIENTRY alDopplerFactor(ALfloat value); |
||||
|
||||
/**
|
||||
* Doppler velocity (deprecated). |
||||
* |
||||
* A multiplier applied to the Speed of Sound. |
||||
*/ |
||||
#define AL_DOPPLER_VELOCITY 0xC001 |
||||
AL_API void AL_APIENTRY alDopplerVelocity(ALfloat value); |
||||
|
||||
/**
|
||||
* 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. |
||||
*/ |
||||
#define AL_SPEED_OF_SOUND 0xC003 |
||||
AL_API void AL_APIENTRY alSpeedOfSound(ALfloat value); |
||||
|
||||
/**
|
||||
* 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. |
||||
*/ |
||||
#define AL_DISTANCE_MODEL 0xD000 |
||||
AL_API void AL_APIENTRY alDistanceModel(ALenum distanceModel); |
||||
|
||||
/** 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 |
||||
|
||||
/** 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); |
||||
|
||||
/** 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); |
||||
|
||||
/**
|
||||
* Error retrieval. |
||||
* |
||||
* Obtain the first error generated in the AL context since the last check. |
||||
*/ |
||||
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); |
||||
|
||||
|
||||
/** 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" */ |
||||
#endif |
||||
|
||||
#endif /* AL_AL_H */ |
@ -0,0 +1,237 @@ |
||||
#ifndef AL_ALC_H |
||||
#define AL_ALC_H |
||||
|
||||
#if defined(__cplusplus) |
||||
extern "C" { |
||||
#endif |
||||
|
||||
#ifndef ALC_API |
||||
#if defined(AL_LIBTYPE_STATIC) |
||||
#define ALC_API |
||||
#elif defined(_WIN32) |
||||
#define ALC_API __declspec(dllimport) |
||||
#else |
||||
#define ALC_API extern |
||||
#endif |
||||
#endif |
||||
|
||||
#if defined(_WIN32) |
||||
#define ALC_APIENTRY __cdecl |
||||
#else |
||||
#define ALC_APIENTRY |
||||
#endif |
||||
|
||||
|
||||
/** Deprecated macro. */ |
||||
#define ALCAPI ALC_API |
||||
#define ALCAPIENTRY ALC_APIENTRY |
||||
#define ALC_INVALID 0 |
||||
|
||||
/** Supported ALC version? */ |
||||
#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; |
||||
|
||||
/** character */ |
||||
typedef char ALCchar; |
||||
|
||||
/** signed 8-bit 2's complement integer */ |
||||
typedef signed char ALCbyte; |
||||
|
||||
/** unsigned 8-bit integer */ |
||||
typedef unsigned char ALCubyte; |
||||
|
||||
/** signed 16-bit 2's complement integer */ |
||||
typedef short ALCshort; |
||||
|
||||
/** unsigned 16-bit integer */ |
||||
typedef unsigned short ALCushort; |
||||
|
||||
/** signed 32-bit 2's complement integer */ |
||||
typedef int ALCint; |
||||
|
||||
/** unsigned 32-bit integer */ |
||||
typedef unsigned int ALCuint; |
||||
|
||||
/** non-negative 32-bit binary integer size */ |
||||
typedef int ALCsizei; |
||||
|
||||
/** enumerated 32-bit value */ |
||||
typedef int ALCenum; |
||||
|
||||
/** 32-bit IEEE754 floating-point */ |
||||
typedef float ALCfloat; |
||||
|
||||
/** 64-bit IEEE754 floating-point */ |
||||
typedef double ALCdouble; |
||||
|
||||
/** void type (for opaque pointers only) */ |
||||
typedef void ALCvoid; |
||||
|
||||
|
||||
/* Enumerant values begin at column 50. No tabs. */ |
||||
|
||||
/** Boolean False. */ |
||||
#define ALC_FALSE 0 |
||||
|
||||
/** Boolean True. */ |
||||
#define ALC_TRUE 1 |
||||
|
||||
/** Context attribute: <int> Hz. */ |
||||
#define ALC_FREQUENCY 0x1007 |
||||
|
||||
/** Context attribute: <int> Hz. */ |
||||
#define ALC_REFRESH 0x1008 |
||||
|
||||
/** Context attribute: AL_TRUE or AL_FALSE. */ |
||||
#define ALC_SYNC 0x1009 |
||||
|
||||
/** Context attribute: <int> requested Mono (3D) Sources. */ |
||||
#define ALC_MONO_SOURCES 0x1010 |
||||
|
||||
/** Context attribute: <int> requested Stereo Sources. */ |
||||
#define ALC_STEREO_SOURCES 0x1011 |
||||
|
||||
/** No error. */ |
||||
#define ALC_NO_ERROR 0 |
||||
|
||||
/** Invalid device handle. */ |
||||
#define ALC_INVALID_DEVICE 0xA001 |
||||
|
||||
/** Invalid context handle. */ |
||||
#define ALC_INVALID_CONTEXT 0xA002 |
||||
|
||||
/** Invalid enum parameter passed to an ALC call. */ |
||||
#define ALC_INVALID_ENUM 0xA003 |
||||
|
||||
/** Invalid value parameter passed to an ALC call. */ |
||||
#define ALC_INVALID_VALUE 0xA004 |
||||
|
||||
/** Out of memory. */ |
||||
#define ALC_OUT_OF_MEMORY 0xA005 |
||||
|
||||
|
||||
/** 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 |
||||
/**
|
||||
* 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_DEVICE_SPECIFIER 0x1005 |
||||
/** String for space-separated list of ALC extensions. */ |
||||
#define ALC_EXTENSIONS 0x1006 |
||||
|
||||
|
||||
/** Capture extension */ |
||||
#define ALC_EXT_CAPTURE 1 |
||||
/**
|
||||
* 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 |
||||
|
||||
|
||||
/** 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). |
||||
*/ |
||||
#define ALC_ALL_DEVICES_SPECIFIER 0x1013 |
||||
|
||||
|
||||
/** 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); |
||||
|
||||
/** 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 Device error. |
||||
*/ |
||||
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 void* ALC_APIENTRY alcGetProcAddress(ALCdevice *device, const ALCchar *funcname); |
||||
ALC_API ALCenum ALC_APIENTRY alcGetEnumValue(ALCdevice *device, const ALCchar *enumname); |
||||
|
||||
/** 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); |
||||
|
||||
/** 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); |
||||
|
||||
/** 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) |
||||
} |
||||
#endif |
||||
|
||||
#endif /* AL_ALC_H */ |
@ -0,0 +1,438 @@ |
||||
/**
|
||||
* 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., |
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
||||
* Or go to http://www.gnu.org/copyleft/lgpl.html
|
||||
*/ |
||||
|
||||
#ifndef AL_ALEXT_H |
||||
#define AL_ALEXT_H |
||||
|
||||
#include <stddef.h> |
||||
/* Define int64_t and uint64_t types */ |
||||
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L |
||||
#include <inttypes.h> |
||||
#elif defined(_WIN32) && defined(__GNUC__) |
||||
#include <stdint.h> |
||||
#elif defined(_WIN32) |
||||
typedef __int64 int64_t; |
||||
typedef unsigned __int64 uint64_t; |
||||
#else |
||||
/* Fallback if nothing above works */ |
||||
#include <inttypes.h> |
||||
#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 |
||||
|
||||
#ifndef ALC_EXT_DEFAULT_FILTER_ORDER |
||||
#define ALC_EXT_DEFAULT_FILTER_ORDER 1 |
||||
#define ALC_DEFAULT_FILTER_ORDER 0x1100 |
||||
#endif |
||||
|
||||
#ifndef AL_SOFT_deferred_updates |
||||
#define AL_SOFT_deferred_updates 1 |
||||
#define AL_DEFERRED_UPDATES_SOFT 0xC002 |
||||
typedef ALvoid (AL_APIENTRY*LPALDEFERUPDATESSOFT)(void); |
||||
typedef ALvoid (AL_APIENTRY*LPALPROCESSUPDATESSOFT)(void); |
||||
#ifdef AL_ALEXT_PROTOTYPES |
||||
AL_API ALvoid AL_APIENTRY alDeferUpdatesSOFT(void); |
||||
AL_API ALvoid AL_APIENTRY alProcessUpdatesSOFT(void); |
||||
#endif |
||||
#endif |
||||
|
||||
#ifndef AL_SOFT_block_alignment |
||||
#define AL_SOFT_block_alignment 1 |
||||
#define AL_UNPACK_BLOCK_ALIGNMENT_SOFT 0x200C |
||||
#define AL_PACK_BLOCK_ALIGNMENT_SOFT 0x200D |
||||
#endif |
||||
|
||||
#ifndef AL_SOFT_MSADPCM |
||||
#define AL_SOFT_MSADPCM 1 |
||||
#define AL_FORMAT_MONO_MSADPCM_SOFT 0x1302 |
||||
#define AL_FORMAT_STEREO_MSADPCM_SOFT 0x1303 |
||||
#endif |
||||
|
||||
#ifndef AL_SOFT_source_length |
||||
#define AL_SOFT_source_length 1 |
||||
/*#define AL_BYTE_LENGTH_SOFT 0x2009*/ |
||||
/*#define AL_SAMPLE_LENGTH_SOFT 0x200A*/ |
||||
/*#define AL_SEC_LENGTH_SOFT 0x200B*/ |
||||
#endif |
||||
|
||||
#ifndef ALC_SOFT_pause_device |
||||
#define ALC_SOFT_pause_device 1 |
||||
typedef void (ALC_APIENTRY*LPALCDEVICEPAUSESOFT)(ALCdevice *device); |
||||
typedef void (ALC_APIENTRY*LPALCDEVICERESUMESOFT)(ALCdevice *device); |
||||
#ifdef AL_ALEXT_PROTOTYPES |
||||
ALC_API void ALC_APIENTRY alcDevicePauseSOFT(ALCdevice *device); |
||||
ALC_API void ALC_APIENTRY alcDeviceResumeSOFT(ALCdevice *device); |
||||
#endif |
||||
#endif |
||||
|
||||
#ifndef AL_EXT_BFORMAT |
||||
#define AL_EXT_BFORMAT 1 |
||||
#define AL_FORMAT_BFORMAT2D_8 0x20021 |
||||
#define AL_FORMAT_BFORMAT2D_16 0x20022 |
||||
#define AL_FORMAT_BFORMAT2D_FLOAT32 0x20023 |
||||
#define AL_FORMAT_BFORMAT3D_8 0x20031 |
||||
#define AL_FORMAT_BFORMAT3D_16 0x20032 |
||||
#define AL_FORMAT_BFORMAT3D_FLOAT32 0x20033 |
||||
#endif |
||||
|
||||
#ifndef AL_EXT_MULAW_BFORMAT |
||||
#define AL_EXT_MULAW_BFORMAT 1 |
||||
#define AL_FORMAT_BFORMAT2D_MULAW 0x10031 |
||||
#define AL_FORMAT_BFORMAT3D_MULAW 0x10032 |
||||
#endif |
||||
|
||||
#ifndef ALC_SOFT_HRTF |
||||
#define ALC_SOFT_HRTF 1 |
||||
#define ALC_HRTF_SOFT 0x1992 |
||||
#define ALC_DONT_CARE_SOFT 0x0002 |
||||
#define ALC_HRTF_STATUS_SOFT 0x1993 |
||||
#define ALC_HRTF_DISABLED_SOFT 0x0000 |
||||
#define ALC_HRTF_ENABLED_SOFT 0x0001 |
||||
#define ALC_HRTF_DENIED_SOFT 0x0002 |
||||
#define ALC_HRTF_REQUIRED_SOFT 0x0003 |
||||
#define ALC_HRTF_HEADPHONES_DETECTED_SOFT 0x0004 |
||||
#define ALC_HRTF_UNSUPPORTED_FORMAT_SOFT 0x0005 |
||||
#define ALC_NUM_HRTF_SPECIFIERS_SOFT 0x1994 |
||||
#define ALC_HRTF_SPECIFIER_SOFT 0x1995 |
||||
#define ALC_HRTF_ID_SOFT 0x1996 |
||||
typedef const ALCchar* (ALC_APIENTRY*LPALCGETSTRINGISOFT)(ALCdevice *device, ALCenum paramName, ALCsizei index); |
||||
typedef ALCboolean (ALC_APIENTRY*LPALCRESETDEVICESOFT)(ALCdevice *device, const ALCint *attribs); |
||||
#ifdef AL_ALEXT_PROTOTYPES |
||||
ALC_API const ALCchar* ALC_APIENTRY alcGetStringiSOFT(ALCdevice *device, ALCenum paramName, ALCsizei index); |
||||
ALC_API ALCboolean ALC_APIENTRY alcResetDeviceSOFT(ALCdevice *device, const ALCint *attribs); |
||||
#endif |
||||
#endif |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
@ -0,0 +1,3 @@ |
||||
/* 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. */ |
@ -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, 0.3162f, 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 */ |
@ -0,0 +1,761 @@ |
||||
#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_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 |
||||
|
||||
|
||||
/* 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 |
||||
|
||||
/* 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 |
||||
|
||||
/* 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 |
||||
|
||||
/* Pitchshifter effect parameters */ |
||||
#define AL_PITCH_SHIFTER_COARSE_TUNE 0x0001 |
||||
#define AL_PITCH_SHIFTER_FINE_TUNE 0x0002 |
||||
|
||||
/* Ringmodulator effect parameters */ |
||||
#define AL_RING_MODULATOR_FREQUENCY 0x0001 |
||||
#define AL_RING_MODULATOR_HIGHPASS_CUTOFF 0x0002 |
||||
#define AL_RING_MODULATOR_WAVEFORM 0x0003 |
||||
|
||||
/* 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 |
||||
|
||||
/* Compressor effect parameters */ |
||||
#define AL_COMPRESSOR_ONOFF 0x0001 |
||||
|
||||
/* 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 |
||||
|
||||
/* 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 Effect Slot properties. */ |
||||
#define AL_EFFECTSLOT_EFFECT 0x0001 |
||||
#define AL_EFFECTSLOT_GAIN 0x0002 |
||||
#define AL_EFFECTSLOT_AUXILIARY_SEND_AUTO 0x0003 |
||||
|
||||
/* NULL Auxiliary Slot ID to disable a source send. */ |
||||
#define AL_EFFECTSLOT_NULL 0x0000 |
||||
|
||||
|
||||
/* Filter properties. */ |
||||
|
||||
/* Lowpass filter parameters */ |
||||
#define AL_LOWPASS_GAIN 0x0001 |
||||
#define AL_LOWPASS_GAINHF 0x0002 |
||||
|
||||
/* Highpass filter parameters */ |
||||
#define AL_HIGHPASS_GAIN 0x0001 |
||||
#define AL_HIGHPASS_GAINLF 0x0002 |
||||
|
||||
/* 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 |
||||
|
||||
/* 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) |
||||
|
||||
#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_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) |
||||
|
||||
#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_XYZ (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 |
||||
|
||||
/* Chorus effect */ |
||||
#define AL_CHORUS_WAVEFORM_SINUSOID (0) |
||||
#define AL_CHORUS_WAVEFORM_TRIANGLE (1) |
||||
|
||||
#define AL_CHORUS_MIN_WAVEFORM (0) |
||||
#define AL_CHORUS_MAX_WAVEFORM (1) |
||||
#define AL_CHORUS_DEFAULT_WAVEFORM (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) |
||||
|
||||
/* 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) |
||||
|
||||
|
||||
/* 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) |
||||
|
||||
#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 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 /* AL_EFX_H */ |
Binary file not shown.
Binary file not shown.
@ -0,0 +1,306 @@ |
||||
#include "sound.h" |
||||
#include "log.h" |
||||
#include "transform.h" |
||||
#include "entity.h" |
||||
#include "array.h" |
||||
#include "string_utils.h" |
||||
#include "file_io.h" |
||||
|
||||
#include <assert.h> |
||||
#include <stdio.h> |
||||
#include <AL/al.h> |
||||
#include <AL/alc.h> |
||||
#include <AL/alext.h> |
||||
#include <SDL2/SDL.h> |
||||
|
||||
struct Sound_State |
||||
{ |
||||
int listener_entity; |
||||
ALCdevice* device; |
||||
ALCcontext* context; |
||||
float volume; |
||||
}; |
||||
|
||||
static struct Sound_State sound_state; |
||||
static struct Sound_Source* sound_sources_list = NULL; |
||||
static int* empty_indices = NULL; |
||||
|
||||
int sound_init(void) |
||||
{ |
||||
int success = 0; |
||||
sound_sources_list = array_new(struct Sound_Source); |
||||
empty_indices = array_new(int); |
||||
|
||||
sound_state.device = alcOpenDevice(NULL); |
||||
if(!sound_state.device) |
||||
{ |
||||
log_error("sound:init", "Failed to open a sound sound_state.device"); |
||||
return success; |
||||
} |
||||
|
||||
sound_state.context = alcCreateContext(sound_state.device, NULL); |
||||
if(sound_state.context == NULL || alcMakeContextCurrent(sound_state.context) == ALC_FALSE) |
||||
{ |
||||
if(!sound_state.context) alcDestroyContext(sound_state.context); |
||||
alcCloseDevice(sound_state.device); |
||||
log_error("sound:init", "Could not set sound context"); |
||||
return success; |
||||
|
||||
} |
||||
log_message("Opened %s", alcGetString(sound_state.device, ALC_DEVICE_SPECIFIER)); |
||||
|
||||
/* Set default listener values */ |
||||
sound_state.listener_entity = -1; |
||||
sound_state.volume = 1.f; |
||||
float orientation[] = |
||||
{ |
||||
0.f, 0.f, -1.f, /* Direction, towards negative z axis */ |
||||
0.f, 1.f, 0.f /* Up vector */ |
||||
}; |
||||
al_check(alListenerf(AL_GAIN, sound_state.volume)) |
||||
al_check(alListener3f(AL_POSITION, 0.f, 0.f, 0.f)) |
||||
al_check(alListenerfv(AL_ORIENTATION, orientation)) |
||||
|
||||
success = 1; |
||||
return success; |
||||
} |
||||
|
||||
void sound_listener_set(int listener_entity) |
||||
{ |
||||
assert(listener_entity > -1); |
||||
if(sound_state.listener_entity != -1) |
||||
{ |
||||
struct Entity* current_listener = entity_get(sound_state.listener_entity); |
||||
current_listener->is_listener = 0; |
||||
} |
||||
|
||||
sound_state.listener_entity = listener_entity; |
||||
struct Entity* entity = entity_get(listener_entity); |
||||
entity->is_listener = 1; |
||||
sound_listener_update(); |
||||
} |
||||
|
||||
void sound_listener_update(void) |
||||
{ |
||||
if(sound_state.listener_entity == -1) return; |
||||
struct Entity* entity = entity_get(sound_state.listener_entity); |
||||
struct Transform* transform = entity_component_get(entity, C_TRANSFORM); |
||||
vec3 abs_pos = {0.f, 0.f, 0.f}; |
||||
vec3 abs_up = {0.f, 1.f, 0.f}; |
||||
vec3 abs_forward = {0.f, 0.f, -1.f}; |
||||
|
||||
transform_get_absolute_pos(transform, &abs_pos); |
||||
transform_get_absolute_up(transform, &abs_up); |
||||
transform_get_absolute_forward(transform, &abs_forward); |
||||
float orientation[] = |
||||
{ |
||||
abs_forward.x, abs_forward.y, abs_forward.z, |
||||
abs_up.x, abs_up.y, abs_up.z |
||||
}; |
||||
al_check(alListener3f(AL_POSITION, abs_pos.x, abs_pos.y, abs_pos.z)) |
||||
al_check(alListenerfv(AL_ORIENTATION, orientation)) |
||||
} |
||||
|
||||
int sound_listener_get(void) |
||||
{ |
||||
return sound_state.listener_entity; |
||||
} |
||||
|
||||
void sound_volume_set(float volume) |
||||
{ |
||||
if(volume < 0.f) volume = 0.f; |
||||
al_check(alListenerf(AL_GAIN, volume)) |
||||
} |
||||
|
||||
void sound_source_remove(int index) |
||||
{ |
||||
assert(index > -1 && index < array_len(sound_sources_list)); |
||||
struct Sound_Source* source = &sound_sources_list[index]; |
||||
if(!source->active) return; |
||||
if(alIsBuffer(source->al_buffer_handle) == AL_TRUE) |
||||
{ |
||||
sound_source_stop(source); |
||||
al_check(alSourcei(source->al_source_handle, AL_BUFFER, 0)) |
||||
al_check(alDeleteBuffers(1, &source->al_buffer_handle)) |
||||
} |
||||
if(alIsSource(source->al_source_handle) == AL_TRUE) al_check(alDeleteSources(1, &source->al_source_handle)) |
||||
source->entity = -1; |
||||
source->al_buffer_handle = 0; |
||||
source->al_source_handle = 0; |
||||
source->active = 0; |
||||
array_push(empty_indices, index, int); |
||||
} |
||||
|
||||
void sound_cleanup(void) |
||||
{ |
||||
for(int i = 0; i < array_len(sound_sources_list); i++) |
||||
sound_source_remove(i); |
||||
|
||||
array_free(sound_sources_list); |
||||
array_free(empty_indices); |
||||
|
||||
alcMakeContextCurrent(NULL); |
||||
alcDestroyContext(sound_state.context); |
||||
alcCloseDevice(sound_state.device); |
||||
} |
||||
|
||||
void sound_error_check(const char* file, unsigned int line, const char* expression) |
||||
{ |
||||
ALenum error_code = alGetError(); |
||||
const char* error_string = "No Error String"; |
||||
if(error_code != AL_NO_ERROR) |
||||
{ |
||||
switch(error_code) |
||||
{ |
||||
case AL_INVALID_NAME: error_string = "AL_INVALID_NAME, Invalid name(ID) specified"; break; |
||||
case AL_INVALID_ENUM: error_string = "AL_INVALID_ENUM, Invalid enum specified"; break; |
||||
case AL_INVALID_VALUE: error_string = "AL_INVALID_VALUE, A numeric argument is out of range"; break; |
||||
case AL_INVALID_OPERATION: error_string = "AL_INVALID_OPERATION, The specified operation is not allowed in current state"; break; |
||||
case AL_OUT_OF_MEMORY: error_string = "AL_OUT_OF_MEMORY, Not enough memory to execute command"; break; |
||||
} |
||||
log_error("OpenAL", "%s\n(%s::%d): %s", file, expression, line, error_string); |
||||
} |
||||
} |
||||
|
||||
int sound_source_create(int entity) |
||||
{ |
||||
int index = -1; |
||||
struct Sound_Source* new_source = NULL; |
||||
if(array_len(empty_indices) > 0) |
||||
{ |
||||
index = *array_get_last(empty_indices, int); |
||||
array_pop(empty_indices); |
||||
new_source = &sound_sources_list[index]; |
||||
} |
||||
else |
||||
{ |
||||
new_source = array_grow(sound_sources_list, struct Sound_Source); |
||||
index = array_len(sound_sources_list) - 1; |
||||
} |
||||
|
||||
new_source->entity = entity; |
||||
new_source->active = 1; |
||||
al_check(alGenSources(1, &new_source->al_source_handle)) |
||||
al_check(alGenBuffers(1, &new_source->al_buffer_handle)) |
||||
sound_source_volume_set(new_source, 1.f); |
||||
if(entity > -1) |
||||
sound_source_update(new_source); |
||||
else |
||||
sound_source_relative_set(new_source, 1); |
||||
return index; |
||||
} |
||||
|
||||
void sound_source_update(struct Sound_Source* source) |
||||
{ |
||||
if(source->entity < 0) return; |
||||
struct Entity* entity = entity_get(source->entity); |
||||
struct Transform* transform = entity_component_get(entity, C_TRANSFORM); |
||||
vec3 abs_pos = {0.f, 0.f, 0.f}; |
||||
vec3 abs_up = {0.f, 1.f, 0.f}; |
||||
vec3 abs_forward = {0.f, 0.f, -1.f}; |
||||
|
||||
transform_get_absolute_pos(transform, &abs_pos); |
||||
transform_get_absolute_up(transform, &abs_up); |
||||
transform_get_absolute_forward(transform, &abs_forward); |
||||
float orientation[] = |
||||
{ |
||||
abs_forward.x, abs_forward.y, abs_forward.z, |
||||
abs_up.x, abs_up.y, abs_up.z |
||||
}; |
||||
al_check(alSource3f(source->al_source_handle, AL_POSITION, abs_pos.x, abs_pos.y, abs_pos.z)) |
||||
al_check(alSourcefv(source->al_source_handle, AL_ORIENTATION, orientation)) |
||||
} |
||||
|
||||
void sound_source_volume_set(struct Sound_Source* source, float volume) |
||||
{ |
||||
if(volume < 0.f) volume = 0.f; |
||||
al_check(alSourcef(source->al_source_handle, AL_GAIN, volume)) |
||||
} |
||||
|
||||
void sound_source_pitch_set(struct Sound_Source* source, float pitch) |
||||
{ |
||||
if(pitch < 0.f) pitch = 0.f; |
||||
al_check(alSourcef(source->al_source_handle, AL_PITCH, pitch)) |
||||
} |
||||
|
||||
void sound_source_loop_set(struct Sound_Source* source, int loop) |
||||
{ |
||||
loop = loop ? AL_TRUE : AL_FALSE; |
||||
al_check(alSourcei(source->al_source_handle, AL_LOOPING, loop)) |
||||
} |
||||
|
||||
void sound_source_relative_set(struct Sound_Source* source, int relative) |
||||
{ |
||||
relative = relative ? AL_TRUE : AL_FALSE; |
||||
al_check(alSourcei(source->al_source_handle, AL_SOURCE_RELATIVE, relative)); |
||||
} |
||||
|
||||
void sound_source_load_wav(struct Sound_Source* source, const char* file_name) |
||||
{ |
||||
if(!file_name) |
||||
{ |
||||
log_error("sound_source:load_wav", "No file name given"); |
||||
return; |
||||
} |
||||
|
||||
char* full_path = str_new("sounds/%s", file_name); |
||||
FILE* wav_file = io_file_open(full_path, "rb"); |
||||
free(full_path); |
||||
if(!wav_file) |
||||
{ |
||||
log_error("sound_source:load_wav", "Failed to load %s", file_name); |
||||
return; |
||||
} |
||||
|
||||
SDL_RWops* sdl_rw = SDL_RWFromFP(wav_file, SDL_TRUE); |
||||
Uint8* wav_data = NULL; |
||||
Uint32 wav_data_len; |
||||
SDL_AudioSpec wav_spec; |
||||
if(!SDL_LoadWAV_RW(sdl_rw, 1, &wav_spec, &wav_data, &wav_data_len)) |
||||
{ |
||||
log_error("sound_source:load_wav", "Failed to load wav %s", SDL_GetError()); |
||||
//SDL_FreeRW(sdl_rw);
|
||||
return; |
||||
} |
||||
|
||||
int mono = wav_spec.channels == 1 ? 1 : 0; |
||||
int format = -1; |
||||
if(mono) |
||||
{ |
||||
if(wav_spec.format == AUDIO_U8 || wav_spec.format == AUDIO_S8) |
||||
format = AL_FORMAT_MONO8; |
||||
else if(wav_spec.format == AUDIO_S16 || wav_spec.format == AUDIO_S16LSB || wav_spec.format == AUDIO_S16MSB || wav_spec.format == AUDIO_S16SYS) |
||||
format = AL_FORMAT_MONO16; |
||||
else if(wav_spec.format == AUDIO_F32 || wav_spec.format == AUDIO_F32LSB || wav_spec.format == AUDIO_F32MSB || wav_spec.format == AUDIO_F32SYS || wav_spec.format == AUDIO_S32 || wav_spec.format == AUDIO_S32LSB) |
||||
format = AL_FORMAT_MONO_FLOAT32; |
||||
} |
||||
else |
||||
{ |
||||
if(wav_spec.format == AUDIO_U8) |
||||
format = AL_FORMAT_STEREO8; |
||||
else if(wav_spec.format == AUDIO_S16) |
||||
format = AL_FORMAT_STEREO16; |
||||
} |
||||
|
||||
if(format == -1) |
||||
{ |
||||
log_error("sound_source:load_wav", "Unsupported audio format"); |
||||
SDL_FreeWAV(wav_data); |
||||
return; |
||||
} |
||||
|
||||
al_check(alBufferData(source->al_buffer_handle, format, wav_data, wav_data_len, wav_spec.freq)) |
||||
al_check(alSourcei(source->al_source_handle, AL_BUFFER, source->al_buffer_handle)) |
||||
SDL_FreeWAV(wav_data); |
||||
} |
||||
|
||||
struct Sound_Source* sound_source_get(int index) |
||||
{ |
||||
assert(index > -1 && index < array_len(sound_sources_list)); |
||||
return &sound_sources_list[index]; |
||||
} |
||||
|
||||
void sound_source_play(struct Sound_Source* source) { al_check(alSourcePlay(source->al_source_handle)) } |
||||
void sound_source_pause(struct Sound_Source* source) { al_check(alSourcePause(source->al_source_handle)) } |
||||
void sound_source_rewind(struct Sound_Source* source) { al_check(alSourceRewind(source->al_source_handle)) } |
||||
void sound_source_stop(struct Sound_Source* source) { al_check(alSourceStop(source->al_source_handle)) } |
@ -0,0 +1,43 @@ |
||||
#ifndef SOUND_H |
||||
#define SOUND_H |
||||
|
||||
#include "num_types.h" |
||||
|
||||
#ifdef AL_DEBUG |
||||
#define al_check(expr) {expr; sound_error_check(__FILE__, __LINE__, #expr);} |
||||
#else |
||||
#define al_check(expr); |
||||
#endif |
||||
|
||||
struct Sound_Source |
||||
{ |
||||
int entity; |
||||
uint al_source_handle; |
||||
uint al_buffer_handle; |
||||
int active; |
||||
}; |
||||
|
||||
int sound_init(void); |
||||
void sound_cleanup(void); |
||||
void sound_volume_set(float volume); |
||||
void sound_error_check(const char* file, unsigned int line, const char* expression); |
||||
|
||||
void sound_listener_set(int entity); |
||||
int sound_listener_get(void); |
||||
void sound_listener_update(void); |
||||
|
||||
struct Sound_Source* sound_source_get(int index); |
||||
int sound_source_create(int entity); |
||||
void sound_source_remove(int index); |
||||
void sound_source_update(struct Sound_Source* source); |
||||
void sound_source_volume_set(struct Sound_Source* source, float volume); |
||||
void sound_source_pitch_set(struct Sound_Source* source, float pitch); |
||||
void sound_source_load_wav(struct Sound_Source* source, const char* file_name); |
||||
void sound_source_loop_set(struct Sound_Source* source, int loop); |
||||
void sound_source_relative_set(struct Sound_Source* source, int relative); |
||||
void sound_source_play(struct Sound_Source* source); |
||||
void sound_source_pause(struct Sound_Source* source); |
||||
void sound_source_rewind(struct Sound_Source* source); |
||||
void sound_source_stop(struct Sound_Source* source); |
||||
|
||||
#endif |
Loading…
Reference in new issue