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.