[Openal] Could not find capture device

Garin Hiebert garinh at cheesetoast.net
Mon May 22 10:25:13 PDT 2006


> Huh? If I read the spec correctly, it is not required to open a playback 
> device first (the design of alcCaptureOpenDevice API entry would make no 
> sense then), so this looks like a bug in the router and/or Creative's OpenAL 
> implementation on Windows. Or did I miss something? Just to be sure...
>   

The main problem exposed by this thread is with the 
alcIsExtensionPresent(NULL, "ALC_EXT_CAPTURE") call -- if the router 
library is queried with this call, it will always return ALC_FALSE, 
because the router library itself doesn't capture audio.

We (Dan and I here at Creative) agree that this is in error and should 
be fixed, and we plan to fix this in the next SDK and installer release 
(a few months out).  In the future, the router will return ALC_TRUE to 
the above call and and respond appropriately to other capture calls 
(NULL will be a functional capture device ID, and will select the 
default capture device).

Where an application is dependent on a 1.1-compliant API or specific 
extensions, I recommend using enumeration following this general 
procedure (it will work properly on existing libraries):

- enumerate all playback devices
- step through all devices:
   - open the device by name
   - query for API revision and/or desired extension(s), adding the 
device name to an "acceptable" list if supported
   - tag this device as the "default" device if it meets all 
requirements and the string matches the default playback device name
   - close the device
- present user with "acceptable" device list, or use "default" device if 
that's appropriate behavior for your app

Garin



More information about the Openal mailing list