summaryrefslogtreecommitdiff
path: root/src/client/snd_openal.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/snd_openal.c')
-rw-r--r--src/client/snd_openal.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/client/snd_openal.c b/src/client/snd_openal.c
index 488e073e..b594732e 100644
--- a/src/client/snd_openal.c
+++ b/src/client/snd_openal.c
@@ -2429,7 +2429,7 @@ qboolean S_AL_Init( soundInterface_t *si )
int curlen;
// get all available devices + the default device name.
- if(enumeration_ext)
+ if(enumeration_all_ext)
{
devicelist = qalcGetString(NULL, ALC_ALL_DEVICES_SPECIFIER);
defaultdevice = qalcGetString(NULL, ALC_DEFAULT_ALL_DEVICES_SPECIFIER);
@@ -2447,18 +2447,24 @@ qboolean S_AL_Init( soundInterface_t *si )
// Generic Software as that one works more reliably with various sound systems.
// If it's not, use OpenAL's default selection as we don't want to ignore
// native hardware acceleration.
- if(!device && !strcmp(defaultdevice, "Generic Hardware"))
+ if(!device && defaultdevice && !strcmp(defaultdevice, "Generic Hardware"))
device = "Generic Software";
#endif
// dump a list of available devices to a cvar for the user to see.
- while((curlen = strlen(devicelist)))
+
+ if(devicelist)
{
- Q_strcat(devicenames, sizeof(devicenames), devicelist);
- Q_strcat(devicenames, sizeof(devicenames), "\n");
+ while((curlen = strlen(devicelist)))
+ {
+ Q_strcat(devicenames, sizeof(devicenames), devicelist);
+ Q_strcat(devicenames, sizeof(devicenames), "\n");
- devicelist += curlen + 1;
+ devicelist += curlen + 1;
+ }
}
+ else
+ devicelist = "";
s_alAvailableDevices = Cvar_Get("s_alAvailableDevices", devicenames, CVAR_ROM | CVAR_NORESTART);
}