[openal] Incorrect Device Names

Chris Robinson chris.kcat at gmail.com
Thu Sep 1 22:48:53 EDT 2016

On 09/01/2016 08:34 AM, Tommy Scott wrote:
> When I enumerate all the available devices they all come back with a
> strDeviceName equal to "OpenAL Soft" instead of the actual device name.

ALC_DEVICE_SPECIFIER effectively acts as a driver specifier. You'll get 
names like "Generic Software", "Generic Hardware", "OpenAL Soft", etc. 
You may see specific device names if you have a hardware OpenAL driver 
for your audio card, though.

Otherwise, you should use the ALC_ENUMERATE_ALL_EXT extension's 
ALC_ALL_DEVICES_SPECIFIER to get the specific output. Then you'll get 
names like "OpenAL Soft on Some Device".

> Strangely, if I
> change the call to ||alcGetString(device, ALC_ALL_DEVICES_SPECIFIER)
> then it returns thje correct name for the device, but then when using
> that name to open the device it doesn't allow the device to play sounds.

That's odd, you should be able to open the specific names you get from 
that. What name do you get? What happens when you try to open a device 
with the name? Does the device open and the context get created, or does 
one of them fail, or...?

It may help to get logging output, which you can do by setting the 
ALSOFT_LOGLEVEL environment variable to 3, then capturing stderr when 
running the app (or also set the ALSOFT_LOGFILE environment variable to 
a path with filename, where the log can be written to).

More information about the openal mailing list