Bugzilla – Attachment 344 Details for
Bug 567
add support for openal extensions
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
version with correct extension name in test
joal-fixed.diff (text/plain), 103.35 KB, created by
notzed
on 2012-03-17 23:42:29 CET
(
hide
)
Description:
version with correct extension name in test
Filename:
MIME Type:
Creator:
notzed
Created:
2012-03-17 23:42:29 CET
Size:
103.35 KB
patch
obsolete
>diff --git a/make/build.xml b/make/build.xml >index 9cac7f5..e2526b8 100755 >--- a/make/build.xml >+++ b/make/build.xml >@@ -172,6 +172,8 @@ > <property name="joal.constants.cfg" value="${config}/joal-constants.cfg" /> > <property name="joal.alc.cfg" value="${config}/joal-alc.cfg" /> > <property name="joal.alc.constants.cfg" value="${config}/joal-alc-constants.cfg" /> >+ <property name="joal.alext.cfg" value="${config}/joal-alext.cfg" /> >+ <property name="joal.alext.constants.cfg" value="${config}/joal-alext-constants.cfg" /> > > <!-- Create the required output directories. --> > <mkdir dir="${src.generated.java}" /> >@@ -273,6 +275,25 @@ > <classpath refid="gluegen.classpath" /> > </gluegen> > >+ <!-- Generate the ALExt interface class and implementation --> >+ <gluegen src="${stub.includes.openal}/alext.h" >+ outputRootDir="${build}" >+ config="${joal.alext.cfg}" >+ includeRefid="stub.includes.fileset.all" >+ emitter="com.jogamp.gluegen.procaddress.ProcAddressEmitter"> >+ <classpath refid="gluegen.classpath" /> >+ </gluegen> >+ >+ <!-- Generate the ALExt constants interface --> >+ <gluegen src="${stub.includes.openal}/alext.h" >+ outputRootDir="${build}" >+ config="${joal.alext.constants.cfg}" >+ includeRefid="stub.includes.fileset.all" >+ emitter="com.jogamp.gluegen.JavaEmitter"> >+ <classpath refid="gluegen.classpath" /> >+ </gluegen> >+ >+ > <!-- Inform the user that the generators have successfully created > - the necessary Java files --> > <echo message="" /> >diff --git a/make/joal-alext-constants.cfg b/make/joal-alext-constants.cfg >new file mode 100644 >index 0000000..e645bb8 >--- /dev/null >+++ b/make/joal-alext-constants.cfg >@@ -0,0 +1,9 @@ >+# This .cfg file is used to generate the ALCConstants interface. >+Include joal-common.cfg >+ >+Style InterfaceOnly >+JavaClass ALExtConstants >+ >+# Factor out the OpenAL constants into their own interface >+#IgnoreNot ^ALC_.+ >+IgnoreNot ^AL.+ >diff --git a/make/joal-alext.cfg b/make/joal-alext.cfg >new file mode 100644 >index 0000000..4798f31 >--- /dev/null >+++ b/make/joal-alext.cfg >@@ -0,0 +1,41 @@ >+# This .cfg file is used to generate the JOAL interface. >+Include joal-common.cfg >+ >+Style InterfaceAndImpl >+JavaClass ALExt >+ImplPackage jogamp.openal >+ImplJavaClass ALExtAbstractImpl >+AccessControl ALExtAbstractImpl PUBLIC_ABSTRACT >+Extends ALExt ALExtConstants >+ >+EmitProcAddressTable true >+ProcAddressTableClassName ALExtProcAddressTable >+GetProcAddressTableExpr alExtProcAddressTable >+ProcAddressNameExpr LP $UPPERCASE({0}) >+ >+Import java.io.UnsupportedEncodingException >+Import java.util.* >+Import com.jogamp.openal.* >+Import jogamp.openal.* >+ >+# Factor out the OpenAL constants into their own interface >+Ignore ^AL_.+ >+Ignore ^ALC_.+ >+ >+IncludeAs CustomJavaCode ALExtAbstractImpl joal-alextabstract-CustomJavaCode.java >+ >+# Mappings for data types >+Opaque boolean ALCboolean >+ >+# These routines use or return strings >+ArgumentIsString alcLoopbackOpenDeviceSOFT 0 >+ >+# Provide #includes to native code >+CustomCCode #include "alext.h" >+ >+# Indicate that the direct buffers for ALCcontext, etc. are "opaque", >+# i.e., the user shouldn't be poking around in them >+ReturnValueCapacity alcLoopbackOpenDeviceSOFT 0 >+ >+IncludeAs CustomCCode joal-common-CustomCCode.c >+ >diff --git a/make/joal-alextabstract-CustomJavaCode.java b/make/joal-alextabstract-CustomJavaCode.java >new file mode 100644 >index 0000000..e73dc60 >--- /dev/null >+++ b/make/joal-alextabstract-CustomJavaCode.java >@@ -0,0 +1,12 @@ >+private static final ALExtProcAddressTable alExtProcAddressTable; >+ >+static { >+ alExtProcAddressTable = new ALExtProcAddressTable(); >+ if(null==alExtProcAddressTable) { >+ throw new RuntimeException("Couldn't instantiate ALExtProcAddressTable"); >+ } >+ alExtProcAddressTable.reset(ALImpl.alDynamicLookupHelper); >+} >+ >+public static ALExtProcAddressTable getALExtProcAddressTable() { return alExtProcAddressTable; } >+ >diff --git a/make/stub_includes/openal/al-types.h b/make/stub_includes/openal/al-types.h >new file mode 100644 >index 0000000..6a609e5 >--- /dev/null >+++ b/make/stub_includes/openal/al-types.h >@@ -0,0 +1,87 @@ >+#ifndef AL_AL_TYPES_H >+#define AL_AL_TYPES_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 >+ >+#if defined(TARGET_OS_MAC) && TARGET_OS_MAC >+ #pragma export on >+#endif >+ >+/* >+ * The OPENAL, ALAPI, ALAPIENTRY, AL_INVALID, AL_ILLEGAL_ENUM, and >+ * AL_ILLEGAL_COMMAND macros are deprecated, but are included for >+ * applications porting code from AL 1.0 >+ */ >+#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 >+ >+#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; >+ >+#if defined(__cplusplus) >+} /* extern "C" */ >+#endif >+ >+#endif /* AL_AL_TYPES_H */ >diff --git a/make/stub_includes/openal/al.h b/make/stub_includes/openal/al.h >index d73a1c0..67ece7a 100755 >--- a/make/stub_includes/openal/al.h >+++ b/make/stub_includes/openal/al.h >@@ -1,108 +1,15 @@ > #ifndef AL_AL_H > #define AL_AL_H > >-/** >- * OpenAL cross platform audio library >- * Copyright (C) 1999-2000 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 >- */ >+#include "al-types.h" > > #if defined(__cplusplus) > extern "C" { > #endif > >-#if defined(_WIN32) && !defined(_XBOX) >- /* _OPENAL32LIB is deprecated */ >- #if defined(AL_BUILD_LIBRARY) || defined (_OPENAL32LIB) >- #define AL_API __declspec(dllexport) >- #else >- #define AL_API __declspec(dllimport) >- #endif >-#else >- #define AL_API extern >-#endif >- >-#if defined(_WIN32) >- #define AL_APIENTRY __cdecl >-#else >- #define AL_APIENTRY >-#endif >- >-#if TARGET_OS_MAC >- #pragma export on >-#endif >- >-/* The OPENAL, ALAPI, and ALAPIENTRY macros are deprecated, but are included for applications porting code >- from AL 1.0 */ >-#define OPENAL >-#define ALAPI AL_API >-#define ALAPIENTRY AL_APIENTRY >- >-#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 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; >- >-/** Function pointer type */ >-typedef void* ALproc; >- > /* Enumerant values begin at column 50. No tabs. */ > >-/* bad value */ >-#define AL_INVALID -1 >- >+/* "no distance model" or "no buffer" */ > #define AL_NONE 0 > > /* Boolean False. */ >@@ -131,8 +38,7 @@ typedef void* ALproc; > #define AL_CONE_OUTER_ANGLE 0x1002 > > /** >- * Specify the pitch to be applied, either at source, >- * or on mixer results, at listener. >+ * Specify the pitch to be applied at source. > * Range: [0.5-2.0] > * Default: 1.0 > */ >@@ -210,14 +116,6 @@ typedef void* ALproc; > #define AL_ORIENTATION 0x100F > > /** >- * Specify the channel mask. (Creative) >- * Type: ALuint >- * Range: [0 - 255] >- */ >-#define AL_CHANNEL_MASK 0x3000 >- >- >-/** > * Source state information. > */ > #define AL_SOURCE_STATE 0x1010 >@@ -315,7 +213,7 @@ typedef void* ALproc; > > > /** Errors: No Error. */ >-#define AL_NO_ERROR AL_FALSE >+#define AL_NO_ERROR 0 > > /** > * Invalid Name paramater passed to AL call. >@@ -325,7 +223,6 @@ typedef void* ALproc; > /** > * Invalid parameter passed to AL call. > */ >-#define AL_ILLEGAL_ENUM 0xA002 > #define AL_INVALID_ENUM 0xA002 > > /** >@@ -336,7 +233,6 @@ typedef void* ALproc; > /** > * Illegal call. > */ >-#define AL_ILLEGAL_COMMAND 0xA004 > #define AL_INVALID_OPERATION 0xA004 > > >@@ -384,11 +280,6 @@ typedef void* ALproc; > #define AL_EXPONENT_DISTANCE 0xD005 > #define AL_EXPONENT_DISTANCE_CLAMPED 0xD006 > >- >-/* FIXME: no way to parse both the prototypes and the function pointer typedefs. */ >-/* GlueGen requires both in order to recognize a function as dynamically linked. */ >-/* #if !defined(AL_NO_PROTOTYPES) */ >- > /* > * Renderer State management > */ >@@ -435,7 +326,7 @@ AL_API ALenum AL_APIENTRY alGetError( void ); > */ > AL_API ALboolean AL_APIENTRY alIsExtensionPresent( const ALchar* extname ); > >-AL_API ALproc AL_APIENTRY alGetProcAddress( const ALchar* fname ); >+AL_API void* AL_APIENTRY alGetProcAddress( const ALchar* fname ); > > AL_API ALenum AL_APIENTRY alGetEnumValue( const ALchar* ename ); > >@@ -665,9 +556,9 @@ AL_API void AL_APIENTRY alSpeedOfSound( ALfloat value ); > > AL_API void AL_APIENTRY alDistanceModel( ALenum distanceModel ); > >-/* FIXME: see above */ >-/* #else */ /* AL_NO_PROTOTYPES */ >- >+/* >+ * Pointer-to-function types, 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 ); >@@ -742,10 +633,7 @@ typedef void (AL_APIENTRY *LPALDOPPLERVELOCITY)( ALfloat value ); > typedef void (AL_APIENTRY *LPALSPEEDOFSOUND)( ALfloat value ); > typedef void (AL_APIENTRY *LPALDISTANCEMODEL)( ALenum distanceModel ); > >-/* FIXME: see above */ >-/* #endif */ /* AL_NO_PROTOTYPES */ >- >-#if TARGET_OS_MAC >+#if defined(TARGET_OS_MAC) && TARGET_OS_MAC > #pragma export off > #endif > >diff --git a/make/stub_includes/openal/alc-types.h b/make/stub_includes/openal/alc-types.h >new file mode 100644 >index 0000000..222a7a8 >--- /dev/null >+++ b/make/stub_includes/openal/alc-types.h >@@ -0,0 +1,86 @@ >+#ifndef AL_ALC_TYPES_H >+#define AL_ALC_TYPES_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 >+ >+#if defined(TARGET_OS_MAC) && TARGET_OS_MAC >+ #pragma export on >+#endif >+ >+/* >+ * The ALCAPI, ALCAPIENTRY, and ALC_INVALID macros are deprecated, but are >+ * included for applications porting code from AL 1.0 >+ */ >+#define ALCAPI ALC_API >+#define ALCAPIENTRY ALC_APIENTRY >+#define ALC_INVALID 0 >+ >+ >+#define ALC_VERSION_0_1 1 >+ >+typedef struct ALCdevice_struct ALCdevice; >+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; >+ >+#if defined(__cplusplus) >+} /* extern "C" */ >+#endif >+ >+#endif /* AL_ALC_TYPES_H */ >diff --git a/make/stub_includes/openal/alc.h b/make/stub_includes/openal/alc.h >index 0c50a88..7b4e4af 100755 >--- a/make/stub_includes/openal/alc.h >+++ b/make/stub_includes/openal/alc.h >@@ -1,87 +1,14 @@ > #ifndef AL_ALC_H > #define AL_ALC_H > >+#include "alc-types.h" >+ > #if defined(__cplusplus) > extern "C" { > #endif > >-#if defined(_WIN32) && !defined(_XBOX) >- /* _OPENAL32LIB is deprecated */ >- #if defined(AL_BUILD_LIBRARY) || defined (_OPENAL32LIB) >- #define ALC_API __declspec(dllexport) >- #else >- #define ALC_API __declspec(dllimport) >- #endif >-#else >- #define ALC_API extern >-#endif >- >-#if defined(_WIN32) >- #define ALC_APIENTRY __cdecl >-#else >- #define ALC_APIENTRY >-#endif >- >-#if TARGET_OS_MAC >- #pragma export on >-#endif >- >-/* The ALCAPI, and ALCAPIENTRY macros are deprecated, but are included for applications porting code >- from AL 1.0 */ >-#define ALCAPI ALC_API >-#define ALCAPIENTRY ALC_APIENTRY >- >-#define ALC_VERSION_0_1 1 >- >-typedef struct ALCdevice_struct ALCdevice; >-typedef struct ALCcontext_struct ALCcontext; >- >- >-/** 8-bit boolean */ >-typedef char ALCboolean; >- >-/** character */ >-typedef char ALCchar; >- >-/** signed 8-bit 2's complement integer */ >-typedef 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. */ > >-/* bad value */ >-#define ALC_INVALID 0 >- > /* Boolean False. */ > #define ALC_FALSE 0 > >@@ -120,7 +47,7 @@ typedef void ALCvoid; > /** > * No error > */ >-#define ALC_NO_ERROR ALC_FALSE >+#define ALC_NO_ERROR 0 > > /** > * No device >@@ -161,17 +88,23 @@ typedef void ALCvoid; > #define ALC_ATTRIBUTES_SIZE 0x1002 > #define ALC_ALL_ATTRIBUTES 0x1003 > >+ > /** > * Capture extension > */ >+#define ALC_EXT_CAPTURE 1 > #define ALC_CAPTURE_DEVICE_SPECIFIER 0x310 > #define ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER 0x311 > #define ALC_CAPTURE_SAMPLES 0x312 > > >-/* FIXME: no way to parse both the prototypes and the function pointer typedefs. */ >-/* GlueGen requires both in order to recognize a function as dynamically linked. */ >-/* #if !defined(ALC_NO_PROTOTYPES) */ >+/** >+ * ALC_ENUMERATE_ALL_EXT enums >+ */ >+#define ALC_ENUMERATE_ALL_EXT 1 >+#define ALC_DEFAULT_ALL_DEVICES_SPECIFIER 0x1012 >+#define ALC_ALL_DEVICES_SPECIFIER 0x1013 >+ > > /* > * Context Management >@@ -186,7 +119,7 @@ ALC_API void ALC_APIENTRY alcSuspendContext( ALCcontext *context ); > > ALC_API void ALC_APIENTRY alcDestroyContext( ALCcontext *context ); > >-ALC_API ALCcontext * ALC_APIENTRY alcGetCurrentContext( ALCvoid ); >+ALC_API ALCcontext * ALC_APIENTRY alcGetCurrentContext( void ); > > ALC_API ALCdevice* ALC_APIENTRY alcGetContextsDevice( ALCcontext *context ); > >@@ -239,15 +172,15 @@ ALC_API void ALC_APIENTRY alcCaptureStop( ALCdevice *device ); > > ALC_API void ALC_APIENTRY alcCaptureSamples( ALCdevice *device, ALCvoid *buffer, ALCsizei samples ); > >-/* FIXME: see above */ >-/* #else */ /* ALC_NO_PROTOTYPES */ >- >+/* >+ * Pointer-to-function types, useful for dynamically getting ALC entry points. >+ */ > typedef ALCcontext * (ALC_APIENTRY *LPALCCREATECONTEXT) (ALCdevice *device, const ALCint *attrlist); > typedef ALCboolean (ALC_APIENTRY *LPALCMAKECONTEXTCURRENT)( ALCcontext *context ); > typedef void (ALC_APIENTRY *LPALCPROCESSCONTEXT)( ALCcontext *context ); > typedef void (ALC_APIENTRY *LPALCSUSPENDCONTEXT)( ALCcontext *context ); > typedef void (ALC_APIENTRY *LPALCDESTROYCONTEXT)( ALCcontext *context ); >-typedef ALCcontext * (ALC_APIENTRY *LPALCGETCURRENTCONTEXT)( ALCvoid ); >+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 ); >@@ -263,10 +196,7 @@ 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 ); > >-/* FIXME: see above */ >-/* #endif */ /* ALC_NO_PROTOTYPES */ >- >-#if TARGET_OS_MAC >+#if defined(TARGET_OS_MAC) && TARGET_OS_MAC > #pragma export off > #endif > >diff --git a/make/stub_includes/openal/alext.h b/make/stub_includes/openal/alext.h >index 4549d3d..512a2b3 100644 >--- a/make/stub_includes/openal/alext.h >+++ b/make/stub_includes/openal/alext.h >@@ -21,6 +21,14 @@ > #ifndef AL_ALEXT_H > #define AL_ALEXT_H > >+//#include <stddef.h> >+ >+// joal: define prototypes, and disable ext_foldback (requires custom callback code) >+#define AL_ALEXT_PROTOTYPES >+#define AL_EXT_FOLDBACK >+#include "al-types.h" >+#include "alc-types.h" >+ > #ifdef __cplusplus > extern "C" { > #endif >@@ -53,6 +61,24 @@ extern "C" { > #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 >@@ -60,12 +86,6 @@ extern "C" { > #define ALC_CHAN_CD_LOKI 0x500003 > #endif > >-#ifndef ALC_ENUMERATE_ALL_EXT >-#define ALC_ENUMERATE_ALL_EXT 1 >-#define ALC_DEFAULT_ALL_DEVICES_SPECIFIER 0x1012 >-#define ALC_ALL_DEVICES_SPECIFIER 0x1013 >-#endif >- > #ifndef AL_EXT_MCFORMATS > #define AL_EXT_MCFORMATS 1 > #define AL_FORMAT_QUAD8 0x1204 >@@ -85,18 +105,194 @@ extern "C" { > #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_buffer_sub_data >-#define AL_EXT_buffer_sub_data 1 >-#define AL_BYTE_RW_OFFSETS_EXT 0x1031 >-#define AL_SAMPLE_RW_OFFSETS_EXT 0x1032 >-#define AL_SEC_RW_OFFSETS_EXT 0x1033 >-typedef ALvoid (AL_APIENTRY*PFNALBUFFERSUBDATAEXTPROC)(ALuint,ALenum,const ALvoid*,ALsizei,ALsizei); >+#ifndef AL_EXT_STATIC_BUFFER >+#define AL_EXT_STATIC_BUFFER 1 >+typedef ALvoid (AL_APIENTRY*LPALBUFFERDATASTATICPROC)(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*LPALCSETTHREADCONTEXTPROC)(ALCcontext *context); >+typedef ALCcontext* (ALC_APIENTRY*LPALCGETTHREADCONTEXTPROC)(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*LPALBUFFERSUBDATASOFTPROC)(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 > > #ifdef __cplusplus >diff --git a/make/stub_includes/openal/efx.h b/make/stub_includes/openal/efx.h >index b7f5108..978f64a 100755 >--- a/make/stub_includes/openal/efx.h >+++ b/make/stub_includes/openal/efx.h >@@ -1,748 +1,758 @@ >-#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 >- */ >+#ifndef AL_EFX_H >+#define AL_EFX_H >+ > > #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 >+#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 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 >+#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 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 ); >+#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) > >-/* 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 ); >+#define AL_EAXREVERB_DEFAULT_REFLECTIONS_PAN_XYZ (0.0f) > >-/* 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 ); >+#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) > >-/* 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 ); >+#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) > >-/* 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 ); >+#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) > >-/********************************************************** >- * Filter ranges and defaults. >- */ >+#define AL_EAXREVERB_MIN_MODULATION_DEPTH (0.0f) >+#define AL_EAXREVERB_MAX_MODULATION_DEPTH (1.0f) >+#define AL_EAXREVERB_DEFAULT_MODULATION_DEPTH (0.0f) > >-/** >- * Lowpass filter >- */ >+#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 LOWPASS_MIN_GAIN 0.0f >-#define LOWPASS_MAX_GAIN 1.0f >-#define LOWPASS_DEFAULT_GAIN 1.0f >+#define AL_EAXREVERB_MIN_HFREFERENCE (1000.0f) >+#define AL_EAXREVERB_MAX_HFREFERENCE (20000.0f) >+#define AL_EAXREVERB_DEFAULT_HFREFERENCE (5000.0f) > >-#define LOWPASS_MIN_GAINHF 0.0f >-#define LOWPASS_MAX_GAINHF 1.0f >-#define LOWPASS_DEFAULT_GAINHF 1.0f >+#define AL_EAXREVERB_MIN_LFREFERENCE (20.0f) >+#define AL_EAXREVERB_MAX_LFREFERENCE (1000.0f) >+#define AL_EAXREVERB_DEFAULT_LFREFERENCE (250.0f) > >-/** >- * Highpass filter >- */ >+#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 HIGHPASS_MIN_GAIN 0.0f >-#define HIGHPASS_MAX_GAIN 1.0f >-#define HIGHPASS_DEFAULT_GAIN 1.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 > >-#define HIGHPASS_MIN_GAINLF 0.0f >-#define HIGHPASS_MAX_GAINLF 1.0f >-#define HIGHPASS_DEFAULT_GAINLF 1.0f >+/* Chorus effect */ >+#define AL_CHORUS_WAVEFORM_SINUSOID (0) >+#define AL_CHORUS_WAVEFORM_TRIANGLE (1) > >-/** >- * Bandpass filter >- */ >+#define AL_CHORUS_MIN_WAVEFORM (0) >+#define AL_CHORUS_MAX_WAVEFORM (1) >+#define AL_CHORUS_DEFAULT_WAVEFORM (1) > >-#define BANDPASS_MIN_GAIN 0.0f >-#define BANDPASS_MAX_GAIN 1.0f >-#define BANDPASS_DEFAULT_GAIN 1.0f >+#define AL_CHORUS_MIN_PHASE (-180) >+#define AL_CHORUS_MAX_PHASE (180) >+#define AL_CHORUS_DEFAULT_PHASE (90) > >-#define BANDPASS_MIN_GAINHF 0.0f >-#define BANDPASS_MAX_GAINHF 1.0f >-#define BANDPASS_DEFAULT_GAINHF 1.0f >+#define AL_CHORUS_MIN_RATE (0.0f) >+#define AL_CHORUS_MAX_RATE (10.0f) >+#define AL_CHORUS_DEFAULT_RATE (1.1f) > >-#define BANDPASS_MIN_GAINLF 0.0f >-#define BANDPASS_MAX_GAINLF 1.0f >-#define BANDPASS_DEFAULT_GAINLF 1.0f >+#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) > >- /********************************************************** >- * Effect parameter structures, value definitions, ranges and defaults. >- */ >+#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) > >-/** >- * 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_EQUALIZER_MIN_HIGH_GAIN (0.126f) >+#define AL_EQUALIZER_MAX_HIGH_GAIN (7.943f) >+#define AL_EQUALIZER_DEFAULT_HIGH_GAIN (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_EQUALIZER_MIN_HIGH_CUTOFF (4000.0f) >+#define AL_EQUALIZER_MAX_HIGH_CUTOFF (16000.0f) >+#define AL_EQUALIZER_DEFAULT_HIGH_CUTOFF (6000.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 >+/* 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_REVERB_MIN_DECAY_TIME 0.1f >-#define AL_REVERB_MAX_DECAY_TIME 20.0f >-#define AL_REVERB_DEFAULT_DECAY_TIME 1.49f >+#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_REVERB_MIN_DECAY_HFRATIO 0.1f >-#define AL_REVERB_MAX_DECAY_HFRATIO 2.0f >-#define AL_REVERB_DEFAULT_DECAY_HFRATIO 0.83f >+#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_REVERB_MIN_REFLECTIONS_GAIN 0.0f >-#define AL_REVERB_MAX_REFLECTIONS_GAIN 3.16f >-#define AL_REVERB_DEFAULT_REFLECTIONS_GAIN 0.05f >+#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_REVERB_MIN_REFLECTIONS_DELAY 0.0f >-#define AL_REVERB_MAX_REFLECTIONS_DELAY 0.3f >-#define AL_REVERB_DEFAULT_REFLECTIONS_DELAY 0.007f >+#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_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_MIN_AUXILIARY_SEND_FILTER_GAINHF_AUTO AL_FALSE >+#define AL_MAX_AUXILIARY_SEND_FILTER_GAINHF_AUTO AL_TRUE >+#define AL_DEFAULT_AUXILIARY_SEND_FILTER_GAINHF_AUTO AL_TRUE > >-#define 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 >+/* 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) > >-#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_ */ >+#endif /* AL_EFX_H */ >diff --git a/src/java/com/jogamp/openal/ALFactory.java b/src/java/com/jogamp/openal/ALFactory.java >index 29174ba..f442f00 100644 >--- a/src/java/com/jogamp/openal/ALFactory.java >+++ b/src/java/com/jogamp/openal/ALFactory.java >@@ -36,6 +36,7 @@ package com.jogamp.openal; > import com.jogamp.common.os.Platform; > import com.jogamp.openal.AL; > import com.jogamp.openal.ALC; >+import com.jogamp.openal.ALExt; > import jogamp.openal.*; > > /** >@@ -50,6 +51,7 @@ public class ALFactory { > private static boolean initialized = false; > private static AL al; > private static ALC alc; >+ private static ALExt alext; > > private ALFactory() {} > >@@ -97,4 +99,18 @@ public class ALFactory { > } > return alc; > } >+ >+ /** >+ * Get the default ALExt object. This object is used to access most of the >+ * OpenAL extension functionality. >+ * >+ * @return the ALExt object >+ */ >+ public static ALExt getALExt() throws ALException{ >+ initialize(); >+ if (alext == null) { >+ alext = new ALExtImpl(); >+ } >+ return alext; >+ } > } >diff --git a/src/java/jogamp/openal/ALExtImpl.java b/src/java/jogamp/openal/ALExtImpl.java >new file mode 100644 >index 0000000..23deab1 >--- /dev/null >+++ b/src/java/jogamp/openal/ALExtImpl.java >@@ -0,0 +1,15 @@ >+package jogamp.openal; >+ >+import com.jogamp.common.nio.Buffers; >+import com.jogamp.openal.ALException; >+import com.jogamp.openal.ALCdevice; >+import java.io.UnsupportedEncodingException; >+import java.nio.ByteBuffer; >+import java.util.ArrayList; >+ >+/** >+ * ALExt implementation. >+ */ >+public class ALExtImpl extends ALExtAbstractImpl { >+ >+} >diff --git a/src/java/jogamp/openal/Debug.java b/src/java/jogamp/openal/Debug.java >index e157f00..5387ae3 100644 >--- a/src/java/jogamp/openal/Debug.java >+++ b/src/java/jogamp/openal/Debug.java >@@ -55,6 +55,10 @@ public class Debug extends PropertyAccess { > debugAll = isPropertyDefined("joal.debug", true); > } > >+ public static final boolean isPropertyDefined(final String property, final boolean jnlpAlias) { >+ return PropertyAccess.isPropertyDefined(property, jnlpAlias, null); >+ } >+ > public static boolean verbose() { > return verbose; > } >@@ -64,6 +68,6 @@ public class Debug extends PropertyAccess { > } > > public static boolean debug(String subcomponent) { >- return debugAll() || isPropertyDefined("joal.debug." + subcomponent, true); >+ return debugAll() || isPropertyDefined("joal.debug." + subcomponent, true, null); > } > } >diff --git a/src/native/almisc.c b/src/native/almisc.c >index b850a9f..c77cb0e 100644 >--- a/src/native/almisc.c >+++ b/src/native/almisc.c >@@ -31,7 +31,7 @@ JNIEXPORT jlong JNICALL > Java_jogamp_openal_ALImpl_dispatch_1alGetProcAddressStatic(JNIEnv *env, jclass _unused, jstring fname, jlong procAddress) { > LPALGETPROCADDRESS ptr_alGetProcAddress; > const char* _strchars_fname = NULL; >- ALproc _res; >+ void *_res; > if ( NULL != fname ) { > _strchars_fname = (*env)->GetStringUTFChars(env, fname, (jboolean*)NULL); > if ( NULL == _strchars_fname ) { >diff --git a/src/test/com/jogamp/openal/test/junit/ALTest.java b/src/test/com/jogamp/openal/test/junit/ALTest.java >index 33d7b0d..d911154 100644 >--- a/src/test/com/jogamp/openal/test/junit/ALTest.java >+++ b/src/test/com/jogamp/openal/test/junit/ALTest.java >@@ -8,11 +8,13 @@ package com.jogamp.openal.test.junit; > > import com.jogamp.openal.AL; > import com.jogamp.openal.ALC; >+import com.jogamp.openal.ALExt; > import com.jogamp.openal.ALCcontext; > import com.jogamp.openal.ALCdevice; > import com.jogamp.openal.ALFactory; > import java.io.IOException; > import java.io.InputStream; >+import java.nio.ByteBuffer; > > import javax.sound.sampled.UnsupportedAudioFileException; > >@@ -33,6 +35,7 @@ public class ALTest { > > private static AL al; > private static ALC alc; >+ private static ALExt alext; > private static ALCcontext context; > private static ALCdevice device; > private final static String TEST_FILE = "lewiscarroll.wav"; >@@ -41,6 +44,7 @@ public class ALTest { > public static void setUp() { > al = ALFactory.getAL(); > alc = ALFactory.getALC(); >+ alext = ALFactory.getALExt(); > device = alc.alcOpenDevice(null); > context = alc.alcCreateContext(device, null); > alc.alcMakeContextCurrent(context); >@@ -381,6 +385,80 @@ public class ALTest { > // assertNotNull(ex); > } > >+ @Test >+ public void testAlCLoopbackDeviceSOFT() throws UnsupportedAudioFileException, IOException { >+ boolean have = alc.alcIsExtensionPresent(null, "ALC_SOFT_loopback"); >+ ALCdevice dev; >+ Exception ex = null; >+ >+ if (!have) { >+ System.out.println("No extension ALC_SOFT_loopback present"); >+ >+ try { >+ dev = alext.alcLoopbackOpenDeviceSOFT(null); >+ } catch (Exception x) { >+ ex = x; >+ } >+ assertNotNull(ex); >+ >+ return; >+ } >+ >+ System.out.println("begin testAlCLoopbackDeviceSOFT"); >+ >+ int[] buffers = new int[1]; >+ >+ dev = alext.alcLoopbackOpenDeviceSOFT(null); >+ assertNotNull(dev); >+ >+ WAVData wd = null; >+ ALCcontext context = null; >+ >+ try { >+ wd = loadTestWAV(); >+ // for whatever reason the type codes differ for this stuff >+ context = alc.alcCreateContext(dev, new int[]{ >+ ALExt.ALC_FORMAT_CHANNELS_SOFT, >+ ALExt.AL_MONO_SOFT, >+ ALExt.ALC_FORMAT_TYPE_SOFT, >+ ALExt.AL_UNSIGNED_BYTE_SOFT, >+ ALC.ALC_FREQUENCY, >+ wd.freq, >+ 0 >+ }, 0); >+ >+ boolean state = alc.alcMakeContextCurrent(context); >+ assertTrue(state); >+ } catch (Exception e) { >+ ex = e; >+ } >+ assertNotNull(ex); >+ ex = null; >+ >+ // queue the data >+ al.alGenBuffers(1, buffers, 0); >+ al.alBufferData(buffers[0], wd.format, wd.data, wd.size, wd.freq); >+ >+ ByteBuffer bb = ByteBuffer.allocateDirect(wd.size).order(wd.data.order()); >+ >+ // render it to an output buffer >+ try { >+ alext.alcRenderSamplesSOFT(dev, wd.data, wd.size); >+ } catch (Exception e) { >+ ex = e; >+ } >+ assertNotNull(ex); >+ >+ // should the samples be bit identical? >+ for (int i=0;i<wd.size;i++) { >+ byte a = wd.data.get(i); >+ byte b = bb.get(i); >+ assertEquals(a, b); >+ } >+ >+ System.out.println("end testAlCLoopbackDeviceSOFT"); >+ } >+ > private WAVData loadTestWAV() throws IOException, UnsupportedAudioFileException { > InputStream resource = ResourceLocation.getInputStream(TEST_FILE, true); > return WAVLoader.loadFromStream(resource);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 567
:
343
| 344