Avoid enumerating when opening the default ALSA device
This commit is contained in:
+18
-18
@@ -579,18 +579,13 @@ static ALCenum alsa_open_playback(ALCdevice *device, const ALCchar *deviceName)
|
||||
alsa_data *data;
|
||||
int err;
|
||||
|
||||
if(!allDevNameMap)
|
||||
allDevNameMap = probe_devices(SND_PCM_STREAM_PLAYBACK, &numDevNames);
|
||||
|
||||
if(!deviceName && numDevNames > 0)
|
||||
{
|
||||
deviceName = allDevNameMap[0].name;
|
||||
driver = allDevNameMap[0].device;
|
||||
}
|
||||
else
|
||||
if(deviceName)
|
||||
{
|
||||
size_t idx;
|
||||
|
||||
if(!allDevNameMap)
|
||||
allDevNameMap = probe_devices(SND_PCM_STREAM_PLAYBACK, &numDevNames);
|
||||
|
||||
for(idx = 0;idx < numDevNames;idx++)
|
||||
{
|
||||
if(strcmp(deviceName, allDevNameMap[idx].name) == 0)
|
||||
@@ -602,6 +597,11 @@ static ALCenum alsa_open_playback(ALCdevice *device, const ALCchar *deviceName)
|
||||
if(idx == numDevNames)
|
||||
return ALC_INVALID_VALUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
deviceName = alsaDevice;
|
||||
driver = GetConfigValue("alsa", "device", "default");
|
||||
}
|
||||
|
||||
data = (alsa_data*)calloc(1, sizeof(alsa_data));
|
||||
|
||||
@@ -846,18 +846,13 @@ static ALCenum alsa_open_capture(ALCdevice *pDevice, const ALCchar *deviceName)
|
||||
alsa_data *data;
|
||||
int err;
|
||||
|
||||
if(!allCaptureDevNameMap)
|
||||
allCaptureDevNameMap = probe_devices(SND_PCM_STREAM_CAPTURE, &numCaptureDevNames);
|
||||
|
||||
if(!deviceName && numCaptureDevNames > 0)
|
||||
{
|
||||
deviceName = allCaptureDevNameMap[0].name;
|
||||
driver = allCaptureDevNameMap[0].device;
|
||||
}
|
||||
else
|
||||
if(deviceName)
|
||||
{
|
||||
size_t idx;
|
||||
|
||||
if(!allCaptureDevNameMap)
|
||||
allCaptureDevNameMap = probe_devices(SND_PCM_STREAM_CAPTURE, &numCaptureDevNames);
|
||||
|
||||
for(idx = 0;idx < numCaptureDevNames;idx++)
|
||||
{
|
||||
if(strcmp(deviceName, allCaptureDevNameMap[idx].name) == 0)
|
||||
@@ -869,6 +864,11 @@ static ALCenum alsa_open_capture(ALCdevice *pDevice, const ALCchar *deviceName)
|
||||
if(idx == numCaptureDevNames)
|
||||
return ALC_INVALID_VALUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
deviceName = alsaDevice;
|
||||
driver = GetConfigValue("alsa", "capture", "default");
|
||||
}
|
||||
|
||||
data = (alsa_data*)calloc(1, sizeof(alsa_data));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user