[Openal-devel] ALC_ENUMERATE_ALL_EXT and pluggable sound devices
Chris Robinson
chris.kcat at gmail.com
Thu Sep 24 04:27:32 PDT 2009
On Wednesday 23 September 2009 11:22:22 am Guilherme Balena Versiani wrote:
> Do you know where can I find an implementation that supports
> ALC_EXT_disconnect? Is this extension multiplatform (I mean it is
> available)?
The GIT version of OpenAL Soft does:
http://kcat.strangesoft.net/openal.html
The Windows backends don't really make use of it, though. I'm not sure how
DSound reports an opened device being irrecoverably lost, so I wouldn't know
what to watch for except errors that won't go away.. but I think that will get
false positives from devices that can't be shared and are just temporarily
taken by another process.
> Can you explain me how the ALC_EXT_disconnect combines with OpenAL32.lib
> Router (Windows Router)? The problem I reported involves to change it, even
> if the OpenAL driver implementation supports ALC_EXT_disconnect...
At its most fundamental level, it should work with the router. You open a
device as normal, pass the handle to alcGetIntegerv with ALC_CONNECTED, and
the router should pass it to the device's implementation which reports on the
device's status. Calling alcIsExtensionPresent with the opened device will
report if the extension is supported on that device.
For having the device strings change, the router will need to be modified to
requery the DLLs on behalf of the app. Dan said that could happen in the near
future. The individual drivers (wrap_oal.dll, ct_oal.dll, soft_oal.dll, etc)
will also need to support updating the device list when queried. The upcoming
1.9 release of OpenAL Soft will. Hopefully wrap_oal.dll (and ct_oal.dll as
needed) can do that soon, too.
FWIW, the router itself can't directly support ALC_EXT_disconnect. The
ALC_CONNECTED token only works on non-NULL device handles and the rest of the
behavior is specific to the given device (nothing the router explicitly
handles). The router just needs to not assume a static device list from the
drivers.
More information about the Openal-devel
mailing list