love.audio is now smarter about finding a microphone for input; this should hopefully unbreak ALSA.

This commit is contained in:
Bill Meltsner
2010-04-12 16:20:11 -04:00
parent 0e6e7c6c03
commit e96e6e0574
+12 -2
View File
@@ -47,8 +47,18 @@ namespace openal
if(alcGetError(device) != ALC_NO_ERROR)
throw love::Exception("Could not make context current.");
capture = alcCaptureOpenDevice(alcGetString(NULL, ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER),
love::sound::Decoder::DEFAULT_SAMPLE_RATE, AL_FORMAT_MONO16, 1048576); // about 23 seconds
std::string captureName(alcGetString(NULL, ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER));
const ALCchar * devices = alcGetString(NULL, ALC_CAPTURE_DEVICE_SPECIFIER);
while (*devices) {
std::string device(devices);
devices += device.size() + 1;
if (device.find("Mic") != std::string::npos || device.find("mic") != std::string::npos) {
captureName = device;
}
}
capture = alcCaptureOpenDevice(captureName.c_str(), love::sound::Decoder::DEFAULT_SAMPLE_RATE,
AL_FORMAT_MONO16, 1048576); // about 23 seconds
if (!capture) {
// We're not going to prevent LOVE from running without a microphone, but we should warn, at least