From 182b3448181e6ab7964f6a9f1f4c06e413781230 Mon Sep 17 00:00:00 2001 From: Thilo Schulz Date: Mon, 14 Mar 2011 15:57:39 +0000 Subject: [PATCH] - Remove alext.h dependency and manually add the required macros - Use ALC_DEFAULT_ALL_DEVICES_SPECIFIER instead of ALC_DEFAULT_DEVICE_SPECIFIER if extension exists --- code/client/qal.h | 8 +++++++- code/client/snd_openal.c | 6 ++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/code/client/qal.h b/code/client/qal.h index 964fff14..8234497a 100644 --- a/code/client/qal.h +++ b/code/client/qal.h @@ -44,10 +44,16 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #else #include #include - #include #endif #endif +/* Hack to enable compiling both on OpenAL SDK and OpenAL-soft. */ +#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 + #ifdef USE_OPENAL_DLOPEN extern LPALENABLE qalEnable; extern LPALDISABLE qalDisable; diff --git a/code/client/snd_openal.c b/code/client/snd_openal.c index 86dbadb0..5a03b230 100644 --- a/code/client/snd_openal.c +++ b/code/client/snd_openal.c @@ -2397,16 +2397,18 @@ qboolean S_AL_Init( soundInterface_t *si ) // get all available devices + the default device name. if(enumeration_ext) + { devicelist = qalcGetString(NULL, ALC_ALL_DEVICES_SPECIFIER); + defaultdevice = qalcGetString(NULL, ALC_DEFAULT_ALL_DEVICES_SPECIFIER); + } else { // We don't have ALC_ENUMERATE_ALL_EXT but normal enumeration. devicelist = qalcGetString(NULL, ALC_DEVICE_SPECIFIER); + defaultdevice = qalcGetString(NULL, ALC_DEFAULT_DEVICE_SPECIFIER); enumeration_ext = qtrue; } - defaultdevice = qalcGetString(NULL, ALC_DEFAULT_DEVICE_SPECIFIER); - #ifdef _WIN32 // check whether the default device is generic hardware. If it is, change to // Generic Software as that one works more reliably with various sound systems.