|
@@ -55,9 +55,20 @@ ALDeviceList::ALDeviceList( const OPENALFNTABLE &oalft )
|
|
|
defaultDeviceIndex = 0;
|
|
|
|
|
|
// grab function pointers for 1.0-API functions, and if successful proceed to enumerate all devices
|
|
|
- if (ALFunction.alcIsExtensionPresent(NULL, "ALC_ENUMERATE_ALL_EXT")) {
|
|
|
- devices = (char *)ALFunction.alcGetString(NULL, ALC_ALL_DEVICES_SPECIFIER);
|
|
|
- defaultDeviceName = (char *)ALFunction.alcGetString(NULL, ALC_DEFAULT_ALL_DEVICES_SPECIFIER);
|
|
|
+ const bool enumerationExtensionPresent = ALFunction.alcIsExtensionPresent(NULL, "ALC_ENUMERATION_EXT");
|
|
|
+ const bool enumerateAllExtensionPresent = ALFunction.alcIsExtensionPresent(NULL, "ALC_ENUMERATE_ALL_EXT");
|
|
|
+ if (enumerateAllExtensionPresent || enumerationExtensionPresent) {
|
|
|
+ if (enumerateAllExtensionPresent)
|
|
|
+ {
|
|
|
+ devices = (char *)ALFunction.alcGetString(NULL, ALC_ALL_DEVICES_SPECIFIER);
|
|
|
+ defaultDeviceName = (char *)ALFunction.alcGetString(NULL, ALC_DEFAULT_ALL_DEVICES_SPECIFIER);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ devices = (char *)ALFunction.alcGetString(NULL, ALC_DEVICE_SPECIFIER);
|
|
|
+ defaultDeviceName = (char *)ALFunction.alcGetString(NULL, ALC_DEFAULT_DEVICE_SPECIFIER);
|
|
|
+ }
|
|
|
+
|
|
|
index = 0;
|
|
|
// go through device list (each device terminated with a single NULL, list terminated with double NULL)
|
|
|
while (*devices != 0) {
|