aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkbr <[email protected]>2006-06-24 08:15:45 +0000
committerkbr <[email protected]>2006-06-24 08:15:45 +0000
commita6146b041390658ec61cb8406bbb6f21fca0912f (patch)
treeaf835d81ab3f853b878325635b7dd0f11e93161c
parent5e8d2c318371c6473cc43025fd2d65e237ed4834 (diff)
Fixed Issue 11: Add EFX entry points
Added EFX entry points on request from user Ultraq on JOAL forum. git-svn-id: file:///home/mbien/NetBeansProjects/JOGAMP/joal-sync/git-svn/../svn-server-sync/joal/trunk@201 03bf7f67-59de-4072-a415-9a990d468a3f
-rwxr-xr-xmake/build.xml4
-rwxr-xr-xmake/joal.cfg1
-rwxr-xr-xmake/stub_includes/openal/al.c3
-rwxr-xr-xmake/stub_includes/openal/efx.h748
4 files changed, 754 insertions, 2 deletions
diff --git a/make/build.xml b/make/build.xml
index 8ff50ce..0899eb4 100755
--- a/make/build.xml
+++ b/make/build.xml
@@ -355,7 +355,7 @@
<!-- Use the GlueGen task to generate the Java files -->
<!-- Generate the AL interface class and implementation -->
- <gluegen src="${stub.includes.openal}/al.h"
+ <gluegen src="${stub.includes.openal}/al.c"
config="${joal.cfg}"
includeRefid="stub.includes.fileset.all"
emitter="com.sun.gluegen.procaddress.ProcAddressEmitter">
@@ -363,7 +363,7 @@
</gluegen>
<!-- Generate the ALConstants interface class -->
- <gluegen src="${stub.includes.openal}/al.h"
+ <gluegen src="${stub.includes.openal}/al.c"
config="${joal.constants.cfg}"
includeRefid="stub.includes.fileset.all"
emitter="com.sun.gluegen.JavaEmitter">
diff --git a/make/joal.cfg b/make/joal.cfg
index c6894d9..7d35307 100755
--- a/make/joal.cfg
+++ b/make/joal.cfg
@@ -55,6 +55,7 @@ ArgumentIsString alGetProcAddress 0
# Provide #includes to native code
CustomCCode #include "al.h"
+CustomCCode #include "efx.h"
CustomJavaCode ALImpl /** Provides dlsym() capabilities because alGetProcAddress is
CustomJavaCode ALImpl broken for core OpenAL routines at least up through OpenAL 1.1. */
diff --git a/make/stub_includes/openal/al.c b/make/stub_includes/openal/al.c
new file mode 100755
index 0000000..6af80a6
--- /dev/null
+++ b/make/stub_includes/openal/al.c
@@ -0,0 +1,3 @@
+#include "al.h"
+#define __cdecl
+#include "efx.h"
diff --git a/make/stub_includes/openal/efx.h b/make/stub_includes/openal/efx.h
new file mode 100755
index 0000000..ab6cc07
--- /dev/null
+++ b/make/stub_includes/openal/efx.h
@@ -0,0 +1,748 @@
+#ifndef __efx_h_
+#define __efx_h_
+
+/**
+ * OpenAL cross platform effects extension audio library
+ * Copyright (C) 2005-2006 by authors.
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ * Or go to http://www.gnu.org/copyleft/lgpl.html
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ALC_EXT_EFX_NAME "ALC_EXT_EFX"
+
+/**
+ * Context definitions to be used with alcCreateContext.
+ * These values must be unique and not conflict with other
+ * al context values.
+ */
+#define ALC_EFX_MAJOR_VERSION 0x20001
+#define ALC_EFX_MINOR_VERSION 0x20002
+#define ALC_MAX_AUXILIARY_SENDS 0x20003
+
+
+
+
+/**
+ * Listener definitions to be used with alListener functions.
+ * These values must be unique and not conflict with other
+ * al listener values.
+ */
+#define AL_METERS_PER_UNIT 0x20004
+
+
+
+
+/**
+ * Source definitions to be used with alSource functions.
+ * These values must be unique and not conflict with other
+ * al source values.
+ */
+#define AL_DIRECT_FILTER 0x20005
+#define AL_AUXILIARY_SEND_FILTER 0x20006
+#define AL_AIR_ABSORPTION_FACTOR 0x20007
+#define AL_ROOM_ROLLOFF_FACTOR 0x20008
+#define AL_CONE_OUTER_GAINHF 0x20009
+#define AL_DIRECT_FILTER_GAINHF_AUTO 0x2000A
+#define AL_AUXILIARY_SEND_FILTER_GAIN_AUTO 0x2000B
+#define AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO 0x2000C
+
+
+
+
+/**
+ * Effect object definitions to be used with alEffect functions.
+ *
+ * Effect parameter value definitions, ranges, and defaults
+ * appear farther down in this file.
+ */
+
+/* Reverb Parameters */
+#define AL_REVERB_DENSITY 0x0001
+#define AL_REVERB_DIFFUSION 0x0002
+#define AL_REVERB_GAIN 0x0003
+#define AL_REVERB_GAINHF 0x0004
+#define AL_REVERB_DECAY_TIME 0x0005
+#define AL_REVERB_DECAY_HFRATIO 0x0006
+#define AL_REVERB_REFLECTIONS_GAIN 0x0007
+#define AL_REVERB_REFLECTIONS_DELAY 0x0008
+#define AL_REVERB_LATE_REVERB_GAIN 0x0009
+#define AL_REVERB_LATE_REVERB_DELAY 0x000A
+#define AL_REVERB_AIR_ABSORPTION_GAINHF 0x000B
+#define AL_REVERB_ROOM_ROLLOFF_FACTOR 0x000C
+#define AL_REVERB_DECAY_HFLIMIT 0x000D
+
+/* Chorus Parameters */
+#define AL_CHORUS_WAVEFORM 0x0001
+#define AL_CHORUS_PHASE 0x0002
+#define AL_CHORUS_RATE 0x0003
+#define AL_CHORUS_DEPTH 0x0004
+#define AL_CHORUS_FEEDBACK 0x0005
+#define AL_CHORUS_DELAY 0x0006
+
+/* Distortion Parameters */
+#define AL_DISTORTION_EDGE 0x0001
+#define AL_DISTORTION_GAIN 0x0002
+#define AL_DISTORTION_LOWPASS_CUTOFF 0x0003
+#define AL_DISTORTION_EQCENTER 0x0004
+#define AL_DISTORTION_EQBANDWIDTH 0x0005
+
+/* Echo Parameters */
+#define AL_ECHO_DELAY 0x0001
+#define AL_ECHO_LRDELAY 0x0002
+#define AL_ECHO_DAMPING 0x0003
+#define AL_ECHO_FEEDBACK 0x0004
+#define AL_ECHO_SPREAD 0x0005
+
+/* Flanger Parameters */
+#define AL_FLANGER_WAVEFORM 0x0001
+#define AL_FLANGER_PHASE 0x0002
+#define AL_FLANGER_RATE 0x0003
+#define AL_FLANGER_DEPTH 0x0004
+#define AL_FLANGER_FEEDBACK 0x0005
+#define AL_FLANGER_DELAY 0x0006
+
+/* Frequencyshifter Parameters */
+#define AL_FREQUENCY_SHIFTER_FREQUENCY 0x0001
+#define AL_FREQUENCY_SHIFTER_LEFT_DIRECTION 0x0002
+#define AL_FREQUENCY_SHIFTER_RIGHT_DIRECTION 0x0003
+
+/* Vocalmorpher Parameters */
+#define AL_VOCAL_MORPHER_PHONEMEA 0x0001
+#define AL_VOCAL_MORPHER_PHONEMEA_COARSE_TUNING 0x0002
+#define AL_VOCAL_MORPHER_PHONEMEB 0x0003
+#define AL_VOCAL_MORPHER_PHONEMEB_COARSE_TUNING 0x0004
+#define AL_VOCAL_MORPHER_WAVEFORM 0x0005
+#define AL_VOCAL_MORPHER_RATE 0x0006
+
+/* Pitchshifter Parameters */
+#define AL_PITCH_SHIFTER_COARSE_TUNE 0x0001
+#define AL_PITCH_SHIFTER_FINE_TUNE 0x0002
+
+/* Ringmodulator Parameters */
+#define AL_RING_MODULATOR_FREQUENCY 0x0001
+#define AL_RING_MODULATOR_HIGHPASS_CUTOFF 0x0002
+#define AL_RING_MODULATOR_WAVEFORM 0x0003
+
+/* Autowah Parameters */
+#define AL_AUTOWAH_ATTACK_TIME 0x0001
+#define AL_AUTOWAH_RELEASE_TIME 0x0002
+#define AL_AUTOWAH_RESONANCE 0x0003
+#define AL_AUTOWAH_PEAK_GAIN 0x0004
+
+/* Compressor Parameters */
+#define AL_COMPRESSOR_ONOFF 0x0001
+
+/* Equalizer Parameters */
+#define AL_EQUALIZER_LOW_GAIN 0x0001
+#define AL_EQUALIZER_LOW_CUTOFF 0x0002
+#define AL_EQUALIZER_MID1_GAIN 0x0003
+#define AL_EQUALIZER_MID1_CENTER 0x0004
+#define AL_EQUALIZER_MID1_WIDTH 0x0005
+#define AL_EQUALIZER_MID2_GAIN 0x0006
+#define AL_EQUALIZER_MID2_CENTER 0x0007
+#define AL_EQUALIZER_MID2_WIDTH 0x0008
+#define AL_EQUALIZER_HIGH_GAIN 0x0009
+#define AL_EQUALIZER_HIGH_CUTOFF 0x000A
+
+/* Effect type */
+#define AL_EFFECT_FIRST_PARAMETER 0x0000
+#define AL_EFFECT_LAST_PARAMETER 0x8000
+#define AL_EFFECT_TYPE 0x8001
+
+/* Effect type definitions to be used with AL_EFFECT_TYPE. */
+#define AL_EFFECT_NULL 0x0000 /* Can also be used as an Effect Object ID */
+#define AL_EFFECT_REVERB 0x0001
+#define AL_EFFECT_CHORUS 0x0002
+#define AL_EFFECT_DISTORTION 0x0003
+#define AL_EFFECT_ECHO 0x0004
+#define AL_EFFECT_FLANGER 0x0005
+#define AL_EFFECT_FREQUENCY_SHIFTER 0x0006
+#define AL_EFFECT_VOCAL_MORPHER 0x0007
+#define AL_EFFECT_PITCH_SHIFTER 0x0008
+#define AL_EFFECT_RING_MODULATOR 0x0009
+#define AL_EFFECT_AUTOWAH 0x000A
+#define AL_EFFECT_COMPRESSOR 0x000B
+#define AL_EFFECT_EQUALIZER 0x000C
+
+/**
+ * Auxiliary Slot object definitions to be used with alAuxiliaryEffectSlot functions.
+ */
+#define AL_EFFECTSLOT_EFFECT 0x0001
+#define AL_EFFECTSLOT_GAIN 0x0002
+#define AL_EFFECTSLOT_AUXILIARY_SEND_AUTO 0x0003
+
+/**
+ * Value to be used as an Auxiliary Slot ID to disable a source send..
+ */
+#define AL_EFFECTSLOT_NULL 0x0000
+
+
+
+/**
+ * Filter object definitions to be used with alFilter functions.
+ */
+
+/* Lowpass parameters. */
+#define AL_LOWPASS_GAIN 0x0001
+#define AL_LOWPASS_GAINHF 0x0002
+
+/* Highpass Parameters */
+#define AL_HIGHPASS_GAIN 0x0001
+#define AL_HIGHPASS_GAINLF 0x0002
+
+/* Bandpass Parameters */
+#define AL_BANDPASS_GAIN 0x0001
+#define AL_BANDPASS_GAINLF 0x0002
+#define AL_BANDPASS_GAINHF 0x0003
+
+/* Filter type */
+#define AL_FILTER_FIRST_PARAMETER 0x0000
+#define AL_FILTER_LAST_PARAMETER 0x8000
+#define AL_FILTER_TYPE 0x8001
+
+/* Filter type definitions to be used with AL_FILTER_TYPE. */
+#define AL_FILTER_NULL 0x0000 /* Can also be used as a Filter Object ID */
+#define AL_FILTER_LOWPASS 0x0001
+#define AL_FILTER_HIGHPASS 0x0002
+#define AL_FILTER_BANDPASS 0x0003
+
+
+/**
+ * Effect object functions.
+ */
+
+/* Create Effect objects. */
+typedef void (__cdecl *LPALGENEFFECTS)( ALsizei n, ALuint* effects );
+void alGenEffects( ALsizei n, ALuint* effects );
+
+/* Delete Effect objects. */
+typedef void (__cdecl *LPALDELETEEFFECTS)( ALsizei n, ALuint* effects );
+void alDeleteEffects( ALsizei n, ALuint* effects );
+
+/* Verify a handle is a valid Effect. */
+typedef ALboolean (__cdecl *LPALISEFFECT)( ALuint eid );
+ALboolean alIsEffect( ALuint eid );
+
+/* Set an integer parameter for an Effect object. */
+typedef void (__cdecl *LPALEFFECTI)( ALuint eid, ALenum param, ALint value);
+void alEffecti( ALuint eid, ALenum param, ALint value);
+typedef void (__cdecl *LPALEFFECTIV)( ALuint eid, ALenum param, ALint* values );
+void alEffectiv( ALuint eid, ALenum param, ALint* values );
+
+/* Set a floating point parameter for an Effect object. */
+typedef void (__cdecl *LPALEFFECTF)( ALuint eid, ALenum param, ALfloat value);
+void alEffectf( ALuint eid, ALenum param, ALfloat value);
+typedef void (__cdecl *LPALEFFECTFV)( ALuint eid, ALenum param, ALfloat* values );
+void alEffectfv( ALuint eid, ALenum param, ALfloat* values );
+
+/* Get an integer parameter for an Effect object. */
+typedef void (__cdecl *LPALGETEFFECTI)( ALuint eid, ALenum pname, ALint* value );
+void alGetEffecti( ALuint eid, ALenum pname, ALint* value );
+typedef void (__cdecl *LPALGETEFFECTIV)( ALuint eid, ALenum pname, ALint* values );
+void alGetEffectiv( ALuint eid, ALenum pname, ALint* values );
+
+/* Get a floating point parameter for an Effect object. */
+typedef void (__cdecl *LPALGETEFFECTF)( ALuint eid, ALenum pname, ALfloat* value );
+void alGetEffectf( ALuint eid, ALenum pname, ALfloat* value );
+typedef void (__cdecl *LPALGETEFFECTFV)( ALuint eid, ALenum pname, ALfloat* values );
+void alGetEffectfv( ALuint eid, ALenum pname, ALfloat* values );
+
+
+/**
+ * Filter object functions
+ */
+
+/* Create Filter objects. */
+typedef void (__cdecl *LPALGENFILTERS)( ALsizei n, ALuint* filters );
+void alGenFilters( ALsizei n, ALuint* filters );
+
+/* Delete Filter objects. */
+typedef void (__cdecl *LPALDELETEFILTERS)( ALsizei n, ALuint* filters );
+void alDeleteFilters( ALsizei n, ALuint* filters );
+
+/* Verify a handle is a valid Filter. */
+typedef ALboolean (__cdecl *LPALISFILTER)( ALuint fid );
+ALboolean alIsFilter( ALuint fid );
+
+/* Set an integer parameter for a Filter object. */
+typedef void (__cdecl *LPALFILTERI)( ALuint fid, ALenum param, ALint value );
+void alFilteri( ALuint fid, ALenum param, ALint value );
+typedef void (__cdecl *LPALFILTERIV)( ALuint fid, ALenum param, ALint* values );
+void alFilteriv( ALuint fid, ALenum param, ALint* values );
+
+/* Set a floating point parameter for an Filter object. */
+typedef void (__cdecl *LPALFILTERF)( ALuint fid, ALenum param, ALfloat value);
+void alFilterf( ALuint fid, ALenum param, ALfloat value);
+typedef void (__cdecl *LPALFILTERFV)( ALuint fid, ALenum param, ALfloat* values );
+void alFilterfv( ALuint fid, ALenum param, ALfloat* values );
+
+/* Get an integer parameter for a Filter object. */
+typedef void (__cdecl *LPALGETFILTERI)( ALuint fid, ALenum pname, ALint* value );
+void alGetFilteri( ALuint fid, ALenum pname, ALint* value );
+typedef void (__cdecl *LPALGETFILTERIV)( ALuint fid, ALenum pname, ALint* values );
+void alGetFilteriv( ALuint fid, ALenum pname, ALint* values );
+
+/* Get a floating point parameter for a Filter object. */
+typedef void (__cdecl *LPALGETFILTERF)( ALuint fid, ALenum pname, ALfloat* value );
+void alGetFilterf( ALuint fid, ALenum pname, ALfloat* value );
+typedef void (__cdecl *LPALGETFILTERFV)( ALuint fid, ALenum pname, ALfloat* values );
+void alGetFilterfv( ALuint fid, ALenum pname, ALfloat* values );
+
+
+/**
+ * Auxiliary Slot object functions
+ */
+
+/* Create Auxiliary Slot objects. */
+typedef void (__cdecl *LPALGENAUXILIARYEFFECTSLOTS)( ALsizei n, ALuint* slots );
+void alGenAuxiliaryEffectSlots( ALsizei n, ALuint* slots );
+
+/* Delete Auxiliary Slot objects. */
+typedef void (__cdecl *LPALDELETEAUXILIARYEFFECTSLOTS)( ALsizei n, ALuint* slots );
+void alDeleteAuxiliaryEffectSlots( ALsizei n, ALuint* slots );
+
+/* Verify a handle is a valid Auxiliary Slot. */
+typedef ALboolean (__cdecl *LPALISAUXILIARYEFFECTSLOT)( ALuint slot );
+ALboolean alIsAuxiliaryEffectSlot( ALuint slot );
+
+/* Set an integer parameter for a Auxiliary Slot object. */
+typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTI)( ALuint asid, ALenum param, ALint value );
+void alAuxiliaryEffectSloti( ALuint asid, ALenum param, ALint value );
+typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTIV)( ALuint asid, ALenum param, ALint* values );
+void alAuxiliaryEffectSlotiv( ALuint asid, ALenum param, ALint* values );
+
+/* Set a floating point parameter for an Auxiliary Slot object. */
+typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTF)( ALuint asid, ALenum param, ALfloat value );
+void alAuxiliaryEffectSlotf( ALuint asid, ALenum param, ALfloat value );
+typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTFV)( ALuint asid, ALenum param, ALfloat* values );
+void alAuxiliaryEffectSlotfv( ALuint asid, ALenum param, ALfloat* values );
+
+/* Get an integer parameter for a Auxiliary Slot object. */
+typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTI)( ALuint asid, ALenum pname, ALint* value );
+void alGetAuxiliaryEffectSloti( ALuint asid, ALenum pname, ALint* value );
+typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTIV)( ALuint asid, ALenum pname, ALint* values );
+void alGetAuxiliaryEffectSlotiv( ALuint asid, ALenum pname, ALint* values );
+
+/* Get a floating point parameter for a Auxiliary Slot object. */
+typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTF)( ALuint asid, ALenum pname, ALfloat* value );
+void alGetAuxiliaryEffectSlotf( ALuint asid, ALenum pname, ALfloat* value );
+typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTFV)( ALuint asid, ALenum pname, ALfloat* values );
+void alGetAuxiliaryEffectSlotfv( ALuint asid, ALenum pname, ALfloat* values );
+
+
+
+
+/**********************************************************
+ * Filter ranges and defaults.
+ */
+
+/**
+ * Lowpass filter
+ */
+
+#define LOWPASS_MIN_GAIN 0.0f
+#define LOWPASS_MAX_GAIN 1.0f
+#define LOWPASS_DEFAULT_GAIN 1.0f
+
+#define LOWPASS_MIN_GAINHF 0.0f
+#define LOWPASS_MAX_GAINHF 1.0f
+#define LOWPASS_DEFAULT_GAINHF 1.0f
+
+/**
+ * Highpass filter
+ */
+
+#define HIGHPASS_MIN_GAIN 0.0f
+#define HIGHPASS_MAX_GAIN 1.0f
+#define HIGHPASS_DEFAULT_GAIN 1.0f
+
+#define HIGHPASS_MIN_GAINLF 0.0f
+#define HIGHPASS_MAX_GAINLF 1.0f
+#define HIGHPASS_DEFAULT_GAINLF 1.0f
+
+/**
+ * Bandpass filter
+ */
+
+#define BANDPASS_MIN_GAIN 0.0f
+#define BANDPASS_MAX_GAIN 1.0f
+#define BANDPASS_DEFAULT_GAIN 1.0f
+
+#define BANDPASS_MIN_GAINHF 0.0f
+#define BANDPASS_MAX_GAINHF 1.0f
+#define BANDPASS_DEFAULT_GAINHF 1.0f
+
+#define BANDPASS_MIN_GAINLF 0.0f
+#define BANDPASS_MAX_GAINLF 1.0f
+#define BANDPASS_DEFAULT_GAINLF 1.0f
+
+
+
+
+ /**********************************************************
+ * Effect parameter structures, value definitions, ranges and defaults.
+ */
+
+/**
+ * AL reverb effect parameter ranges and defaults
+ */
+#define AL_REVERB_MIN_DENSITY 0.0f
+#define AL_REVERB_MAX_DENSITY 1.0f
+#define AL_REVERB_DEFAULT_DENSITY 1.0f
+
+#define AL_REVERB_MIN_DIFFUSION 0.0f
+#define AL_REVERB_MAX_DIFFUSION 1.0f
+#define AL_REVERB_DEFAULT_DIFFUSION 1.0f
+
+#define AL_REVERB_MIN_GAIN 0.0f
+#define AL_REVERB_MAX_GAIN 1.0f
+#define AL_REVERB_DEFAULT_GAIN 0.32f
+
+#define AL_REVERB_MIN_GAINHF 0.0f
+#define AL_REVERB_MAX_GAINHF 1.0f
+#define AL_REVERB_DEFAULT_GAINHF 0.89f
+
+#define AL_REVERB_MIN_DECAY_TIME 0.1f
+#define AL_REVERB_MAX_DECAY_TIME 20.0f
+#define AL_REVERB_DEFAULT_DECAY_TIME 1.49f
+
+#define AL_REVERB_MIN_DECAY_HFRATIO 0.1f
+#define AL_REVERB_MAX_DECAY_HFRATIO 2.0f
+#define AL_REVERB_DEFAULT_DECAY_HFRATIO 0.83f
+
+#define AL_REVERB_MIN_REFLECTIONS_GAIN 0.0f
+#define AL_REVERB_MAX_REFLECTIONS_GAIN 3.16f
+#define AL_REVERB_DEFAULT_REFLECTIONS_GAIN 0.05f
+
+#define AL_REVERB_MIN_REFLECTIONS_DELAY 0.0f
+#define AL_REVERB_MAX_REFLECTIONS_DELAY 0.3f
+#define AL_REVERB_DEFAULT_REFLECTIONS_DELAY 0.007f
+
+#define AL_REVERB_MIN_LATE_REVERB_GAIN 0.0f
+#define AL_REVERB_MAX_LATE_REVERB_GAIN 10.0f
+#define AL_REVERB_DEFAULT_LATE_REVERB_GAIN 1.26f
+
+#define AL_REVERB_MIN_LATE_REVERB_DELAY 0.0f
+#define AL_REVERB_MAX_LATE_REVERB_DELAY 0.1f
+#define AL_REVERB_DEFAULT_LATE_REVERB_DELAY 0.011f
+
+#define AL_REVERB_MIN_AIR_ABSORPTION_GAINHF 0.892f
+#define AL_REVERB_MAX_AIR_ABSORPTION_GAINHF 1.0f
+#define AL_REVERB_DEFAULT_AIR_ABSORPTION_GAINHF 0.994f
+
+#define AL_REVERB_MIN_ROOM_ROLLOFF_FACTOR 0.0f
+#define AL_REVERB_MAX_ROOM_ROLLOFF_FACTOR 10.0f
+#define AL_REVERB_DEFAULT_ROOM_ROLLOFF_FACTOR 0.0f
+
+#define AL_REVERB_MIN_DECAY_HFLIMIT AL_FALSE
+#define AL_REVERB_MAX_DECAY_HFLIMIT AL_TRUE
+#define AL_REVERB_DEFAULT_DECAY_HFLIMIT AL_TRUE
+
+/**
+ * AL chorus effect parameter ranges and defaults
+ */
+#define AL_CHORUS_MIN_WAVEFORM 0
+#define AL_CHORUS_MAX_WAVEFORM 1
+#define AL_CHORUS_DEFAULT_WAVEFORM 1
+
+#define AL_CHORUS_WAVEFORM_SINUSOID 0
+#define AL_CHORUS_WAVEFORM_TRIANGLE 1
+
+#define AL_CHORUS_MIN_PHASE (-180)
+#define AL_CHORUS_MAX_PHASE 180
+#define AL_CHORUS_DEFAULT_PHASE 90
+
+#define AL_CHORUS_MIN_RATE 0.0f
+#define AL_CHORUS_MAX_RATE 10.0f
+#define AL_CHORUS_DEFAULT_RATE 1.1f
+
+#define AL_CHORUS_MIN_DEPTH 0.0f
+#define AL_CHORUS_MAX_DEPTH 1.0f
+#define AL_CHORUS_DEFAULT_DEPTH 0.1f
+
+#define AL_CHORUS_MIN_FEEDBACK (-1.0f)
+#define AL_CHORUS_MAX_FEEDBACK 1.0f
+#define AL_CHORUS_DEFAULT_FEEDBACK 0.25f
+
+#define AL_CHORUS_MIN_DELAY 0.0f
+#define AL_CHORUS_MAX_DELAY 0.016f
+#define AL_CHORUS_DEFAULT_DELAY 0.016f
+
+/**
+ * AL distortion effect parameter ranges and defaults
+ */
+#define AL_DISTORTION_MIN_EDGE 0.0f
+#define AL_DISTORTION_MAX_EDGE 1.0f
+#define AL_DISTORTION_DEFAULT_EDGE 0.2f
+
+#define AL_DISTORTION_MIN_GAIN 0.01f
+#define AL_DISTORTION_MAX_GAIN 1.0f
+#define AL_DISTORTION_DEFAULT_GAIN 0.05f
+
+#define AL_DISTORTION_MIN_LOWPASS_CUTOFF 80.0f
+#define AL_DISTORTION_MAX_LOWPASS_CUTOFF 24000.0f
+#define AL_DISTORTION_DEFAULT_LOWPASS_CUTOFF 8000.0f
+
+#define AL_DISTORTION_MIN_EQCENTER 80.0f
+#define AL_DISTORTION_MAX_EQCENTER 24000.0f
+#define AL_DISTORTION_DEFAULT_EQCENTER 3600.0f
+
+#define AL_DISTORTION_MIN_EQBANDWIDTH 80.0f
+#define AL_DISTORTION_MAX_EQBANDWIDTH 24000.0f
+#define AL_DISTORTION_DEFAULT_EQBANDWIDTH 3600.0f
+
+/**
+ * AL echo effect parameter ranges and defaults
+ */
+#define AL_ECHO_MIN_DELAY 0.0f
+#define AL_ECHO_MAX_DELAY 0.207f
+#define AL_ECHO_DEFAULT_DELAY 0.1f
+
+#define AL_ECHO_MIN_LRDELAY 0.0f
+#define AL_ECHO_MAX_LRDELAY 0.404f
+#define AL_ECHO_DEFAULT_LRDELAY 0.1f
+
+#define AL_ECHO_MIN_DAMPING 0.0f
+#define AL_ECHO_MAX_DAMPING 0.99f
+#define AL_ECHO_DEFAULT_DAMPING 0.5f
+
+#define AL_ECHO_MIN_FEEDBACK 0.0f
+#define AL_ECHO_MAX_FEEDBACK 1.0f
+#define AL_ECHO_DEFAULT_FEEDBACK 0.5f
+
+#define AL_ECHO_MIN_SPREAD (-1.0f)
+#define AL_ECHO_MAX_SPREAD 1.0f
+#define AL_ECHO_DEFAULT_SPREAD (-1.0f)
+
+/**
+ * AL flanger effect parameter ranges and defaults
+ */
+#define AL_FLANGER_MIN_WAVEFORM 0
+#define AL_FLANGER_MAX_WAVEFORM 1
+#define AL_FLANGER_DEFAULT_WAVEFORM 1
+
+#define AL_FLANGER_WAVEFORM_SINUSOID 0
+#define AL_FLANGER_WAVEFORM_TRIANGLE 1
+
+#define AL_FLANGER_MIN_PHASE (-180)
+#define AL_FLANGER_MAX_PHASE 180
+#define AL_FLANGER_DEFAULT_PHASE 90
+
+#define AL_FLANGER_MIN_RATE 0.0f
+#define AL_FLANGER_MAX_RATE 10.0f
+#define AL_FLANGER_DEFAULT_RATE 0.27f
+
+#define AL_FLANGER_MIN_DEPTH 0.0f
+#define AL_FLANGER_MAX_DEPTH 1.0f
+#define AL_FLANGER_DEFAULT_DEPTH 1.0f
+
+#define AL_FLANGER_MIN_FEEDBACK (-1.0f)
+#define AL_FLANGER_MAX_FEEDBACK 1.0f
+#define AL_FLANGER_DEFAULT_FEEDBACK (-0.5f)
+
+#define AL_FLANGER_MIN_DELAY 0.0f
+#define AL_FLANGER_MAX_DELAY 0.004f
+#define AL_FLANGER_DEFAULT_DELAY 0.002f
+
+/**
+ * AL frequency shifter effect parameter ranges and defaults
+ */
+#define AL_FREQUENCY_SHIFTER_MIN_FREQUENCY 0.0f
+#define AL_FREQUENCY_SHIFTER_MAX_FREQUENCY 24000.0f
+#define AL_FREQUENCY_SHIFTER_DEFAULT_FREQUENCY 0.0f
+
+#define AL_FREQUENCY_SHIFTER_MIN_LEFT_DIRECTION 0
+#define AL_FREQUENCY_SHIFTER_MAX_LEFT_DIRECTION 2
+#define AL_FREQUENCY_SHIFTER_DEFAULT_LEFT_DIRECTION 0
+
+#define AL_FREQUENCY_SHIFTER_MIN_RIGHT_DIRECTION 0
+#define AL_FREQUENCY_SHIFTER_MAX_RIGHT_DIRECTION 2
+#define AL_FREQUENCY_SHIFTER_DEFAULT_RIGHT_DIRECTION 0
+
+#define AL_FREQUENCY_SHIFTER_DIRECTION_DOWN 0
+#define AL_FREQUENCY_SHIFTER_DIRECTION_UP 1
+#define AL_FREQUENCY_SHIFTER_DIRECTION_OFF 2
+
+/**
+ * AL vocal morpher effect parameter ranges and defaults
+ */
+#define AL_VOCAL_MORPHER_MIN_PHONEMEA 0
+#define AL_VOCAL_MORPHER_MAX_PHONEMEA 29
+#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEA 0
+
+#define AL_VOCAL_MORPHER_MIN_PHONEMEA_COARSE_TUNING (-24)
+#define AL_VOCAL_MORPHER_MAX_PHONEMEA_COARSE_TUNING 24
+#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEA_COARSE_TUNING 0
+
+#define AL_VOCAL_MORPHER_MIN_PHONEMEB 0
+#define AL_VOCAL_MORPHER_MAX_PHONEMEB 29
+#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEB 10
+
+#define AL_VOCAL_MORPHER_PHONEME_A 0
+#define AL_VOCAL_MORPHER_PHONEME_E 1
+#define AL_VOCAL_MORPHER_PHONEME_I 2
+#define AL_VOCAL_MORPHER_PHONEME_O 3
+#define AL_VOCAL_MORPHER_PHONEME_U 4
+#define AL_VOCAL_MORPHER_PHONEME_AA 5
+#define AL_VOCAL_MORPHER_PHONEME_AE 6
+#define AL_VOCAL_MORPHER_PHONEME_AH 7
+#define AL_VOCAL_MORPHER_PHONEME_AO 8
+#define AL_VOCAL_MORPHER_PHONEME_EH 9
+#define AL_VOCAL_MORPHER_PHONEME_ER 10
+#define AL_VOCAL_MORPHER_PHONEME_IH 11
+#define AL_VOCAL_MORPHER_PHONEME_IY 12
+#define AL_VOCAL_MORPHER_PHONEME_UH 13
+#define AL_VOCAL_MORPHER_PHONEME_UW 14
+#define AL_VOCAL_MORPHER_PHONEME_B 15
+#define AL_VOCAL_MORPHER_PHONEME_D 16
+#define AL_VOCAL_MORPHER_PHONEME_F 17
+#define AL_VOCAL_MORPHER_PHONEME_G 18
+#define AL_VOCAL_MORPHER_PHONEME_J 19
+#define AL_VOCAL_MORPHER_PHONEME_K 20
+#define AL_VOCAL_MORPHER_PHONEME_L 21
+#define AL_VOCAL_MORPHER_PHONEME_M 22
+#define AL_VOCAL_MORPHER_PHONEME_N 23
+#define AL_VOCAL_MORPHER_PHONEME_P 24
+#define AL_VOCAL_MORPHER_PHONEME_R 25
+#define AL_VOCAL_MORPHER_PHONEME_S 26
+#define AL_VOCAL_MORPHER_PHONEME_T 27
+#define AL_VOCAL_MORPHER_PHONEME_V 28
+#define AL_VOCAL_MORPHER_PHONEME_Z 29
+
+#define AL_VOCAL_MORPHER_MIN_PHONEMEB_COARSE_TUNING (-24)
+#define AL_VOCAL_MORPHER_MAX_PHONEMEB_COARSE_TUNING 24
+#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEB_COARSE_TUNING 0
+
+#define AL_VOCAL_MORPHER_MIN_WAVEFORM 0
+#define AL_VOCAL_MORPHER_MAX_WAVEFORM 2
+#define AL_VOCAL_MORPHER_DEFAULT_WAVEFORM 0
+
+#define AL_VOCAL_MORPHER_WAVEFORM_SINUSOID 0
+#define AL_VOCAL_MORPHER_WAVEFORM_TRIANGLE 1
+#define AL_VOCAL_MORPHER_WAVEFORM_SAWTOOTH 2
+
+#define AL_VOCAL_MORPHER_MIN_RATE 0.0f
+#define AL_VOCAL_MORPHER_MAX_RATE 10.0f
+#define AL_VOCAL_MORPHER_DEFAULT_RATE 1.41f
+
+/**
+ * AL pitch shifter effect parameter ranges and defaults
+ */
+#define AL_PITCH_SHIFTER_MIN_COARSE_TUNE (-12)
+#define AL_PITCH_SHIFTER_MAX_COARSE_TUNE 12
+#define AL_PITCH_SHIFTER_DEFAULT_COARSE_TUNE 12
+
+#define AL_PITCH_SHIFTER_MIN_FINE_TUNE (-50)
+#define AL_PITCH_SHIFTER_MAX_FINE_TUNE 50
+#define AL_PITCH_SHIFTER_DEFAULT_FINE_TUNE 0
+
+/**
+ * AL ring modulator effect parameter ranges and defaults
+ */
+#define AL_RING_MODULATOR_MIN_FREQUENCY 0.0f
+#define AL_RING_MODULATOR_MAX_FREQUENCY 8000.0f
+#define AL_RING_MODULATOR_DEFAULT_FREQUENCY 440.0f
+
+#define AL_RING_MODULATOR_MIN_HIGHPASS_CUTOFF 0.0f
+#define AL_RING_MODULATOR_MAX_HIGHPASS_CUTOFF 24000.0f
+#define AL_RING_MODULATOR_DEFAULT_HIGHPASS_CUTOFF 800.0f
+
+#define AL_RING_MODULATOR_MIN_WAVEFORM 0
+#define AL_RING_MODULATOR_MAX_WAVEFORM 2
+#define AL_RING_MODULATOR_DEFAULT_WAVEFORM 0
+
+#define AL_RING_MODULATOR_SINUSOID 0
+#define AL_RING_MODULATOR_SAWTOOTH 1
+#define AL_RING_MODULATOR_SQUARE 2
+
+/**
+ * AL autowah effect parameter ranges and defaults
+ */
+#define AL_AUTOWAH_MIN_ATTACK_TIME 0.0001f
+#define AL_AUTOWAH_MAX_ATTACK_TIME 1.0f
+#define AL_AUTOWAH_DEFAULT_ATTACK_TIME 0.06f
+
+#define AL_AUTOWAH_MIN_RELEASE_TIME 0.0001f
+#define AL_AUTOWAH_MAX_RELEASE_TIME 1.0f
+#define AL_AUTOWAH_DEFAULT_RELEASE_TIME 0.06f
+
+#define AL_AUTOWAH_MIN_RESONANCE 2.0f
+#define AL_AUTOWAH_MAX_RESONANCE 1000.0f
+#define AL_AUTOWAH_DEFAULT_RESONANCE 1000.0f
+
+#define AL_AUTOWAH_MIN_PEAK_GAIN 0.00003f
+#define AL_AUTOWAH_MAX_PEAK_GAIN 31621.0f
+#define AL_AUTOWAH_DEFAULT_PEAK_GAIN 11.22f
+
+/**
+ * AL compressor effect parameter ranges and defaults
+ */
+#define AL_COMPRESSOR_MIN_ONOFF 0
+#define AL_COMPRESSOR_MAX_ONOFF 1
+#define AL_COMPRESSOR_DEFAULT_ONOFF 1
+
+/**
+ * AL equalizer effect parameter ranges and defaults
+ */
+#define AL_EQUALIZER_MIN_LOW_GAIN 0.126f
+#define AL_EQUALIZER_MAX_LOW_GAIN 7.943f
+#define AL_EQUALIZER_DEFAULT_LOW_GAIN 1.0f
+
+#define AL_EQUALIZER_MIN_LOW_CUTOFF 50.0f
+#define AL_EQUALIZER_MAX_LOW_CUTOFF 800.0f
+#define AL_EQUALIZER_DEFAULT_LOW_CUTOFF 200.0f
+
+#define AL_EQUALIZER_MIN_MID1_GAIN 0.126f
+#define AL_EQUALIZER_MAX_MID1_GAIN 7.943f
+#define AL_EQUALIZER_DEFAULT_MID1_GAIN 1.0f
+
+#define AL_EQUALIZER_MIN_MID1_CENTER 200.0f
+#define AL_EQUALIZER_MAX_MID1_CENTER 3000.0f
+#define AL_EQUALIZER_DEFAULT_MID1_CENTER 500.0f
+
+#define AL_EQUALIZER_MIN_MID1_WIDTH 0.01f
+#define AL_EQUALIZER_MAX_MID1_WIDTH 1.0f
+#define AL_EQUALIZER_DEFAULT_MID1_WIDTH 1.0f
+
+#define AL_EQUALIZER_MIN_MID2_GAIN 0.126f
+#define AL_EQUALIZER_MAX_MID2_GAIN 7.943f
+#define AL_EQUALIZER_DEFAULT_MID2_GAIN 1.0f
+
+#define AL_EQUALIZER_MIN_MID2_CENTER 1000.0f
+#define AL_EQUALIZER_MAX_MID2_CENTER 8000.0f
+#define AL_EQUALIZER_DEFAULT_MID2_CENTER 3000.0f
+
+#define AL_EQUALIZER_MIN_MID2_WIDTH 0.01f
+#define AL_EQUALIZER_MAX_MID2_WIDTH 1.0f
+#define AL_EQUALIZER_DEFAULT_MID2_WIDTH 1.0f
+
+#define AL_EQUALIZER_MIN_HIGH_GAIN 0.126f
+#define AL_EQUALIZER_MAX_HIGH_GAIN 7.943f
+#define AL_EQUALIZER_DEFAULT_HIGH_GAIN 1.0f
+
+#define AL_EQUALIZER_MIN_HIGH_CUTOFF 4000.0f
+#define AL_EQUALIZER_MAX_HIGH_CUTOFF 16000.0f
+#define AL_EQUALIZER_DEFAULT_HIGH_CUTOFF 6000.0f
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __efx_h_ */