[Openal-devel] ALC_ENUMERATE_ALL_EXT and pluggable sound devices

Guilherme Balena Versiani guibv at comunip.com.br
Wed Sep 16 11:43:54 PDT 2009


Hello,

Day by day, pluggable devices become even more popular. They are cheap 
and very attractive for mobile users. Some of pluggable USB sound 
devices have good quality. For this reason, it is not suitable anymore 
to be obliged to restart an application (or a game) after connecting a 
device to be able to use it... And I think that  ALC_ENUMERATE_ALL_EXT 
extension should reflect devices changes of the system.

Regarding the support of pluggable devices, I tried to prefix the 
following strings with the name of an USB sound device, respectively, 
"X-Fi on", "Audigy on", "Generic Hardware on", "Generic Software on", 
"DirectSound3D on", "DirectSound on", and "MMSYSTEM on", then calling 
alcOpenDevice a second time after the application has been started to 
change the current OpenAL context to the USB sound device, but I had no 
success doing that. I don't know if there is another way to overcome 
this limitation.

A second problem was that I could't list the current connected USB 
device by using ALC_ALL_DEVICES_SPECIFIER. Inspecting some OpenAL code 
in SVN (specifically the Windows Router code), I discovered that the 
variables g_pDeviceList, g_pCaptureDeviceList and g_pAllDevicesList are 
initialized only once, in the occurrence of calling opening functions 
like alcOpenDevice (see the function BuildDeviceList). I personally 
tried to change the code to force a reinitialization of the structures 
every time the function BuildDeviceList was called, but I had no success 
when trying to select them afterwards (the device was listed, but I 
couldn't use it; the alcOpenDevice issued error opening the device).

Do you see any solution for this in the OpenAL roadmap? Or this 
"feature" should be implemented elsewhere?

Best regards,

-- Guilherme Balena Versiani.


More information about the Openal-devel mailing list