I write the audio part of the game and I use OpenAL. I want to use some extensions, but tests always fail:
TRACE: AudioManager - Sound device: 'Generic Software' TRACE: AudioManager - Enabling OpenAL extensions... TRACE: AudioManager - Compressor support: NO TRACE: AudioManager - Reverb support: YES TRACE: AudioManager - Chorus support: NO TRACE: AudioManager - Distortion support: NO TRACE: AudioManager - Echo support: NO TRACE: AudioManager - Flanger support: NO TRACE: AudioManager - Frequency shifter support: NO TRACE: AudioManager - Vocal morpher support: NO TRACE: AudioManager - Pitch shifter support: NO TRACE: AudioManager - Ring modulator support: NO TRACE: AudioManager - AutoWAH support: NO TRACE: AudioManager - Equalizer support: NO TRACE: AudioManager - EAX Reverb support: YES
This is because I only get the Generic Software driver, which only supports reverb and EAX reverb. And not only in my car, but also in others.
Here's how I define drivers for OpenAL:
ALchar device[256]; ZeroMemory(device, 256); if (alcIsExtensionPresent(NULL, "ALC_ENUMERATE_ALL_EXT")) { strcpy_s(device, 256, alcGetString(NULL, ALC_ALL_DEVICES_SPECIFIER)); } else if (alcIsExtensionPresent(NULL, "ALC_ENUMERATION_EXT")) { strcpy_s(device, 256, alcGetString(NULL, ALC_DEVICE_SPECIFIER)); } TRACE_AUDIOMANAGER("Sound device: '%s'", device); g_System = alcOpenDevice(device);
According to the specification, the device specifier should return two drivers: "Generic Hardware" and "Generic Software", separated by a NULL terminator.
My sound card is an NVIDIA High Definition Audio device that uses the nvhda32v.sys driver (version 1.0.0.63, updated 11-11-2009).
Why doesn't OpenAL detect my hardware?
source share