summaryrefslogtreecommitdiffstats
path: root/src/plugins/alsa/qalsaaudioinput.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/alsa/qalsaaudioinput.cpp')
-rw-r--r--src/plugins/alsa/qalsaaudioinput.cpp34
1 files changed, 8 insertions, 26 deletions
diff --git a/src/plugins/alsa/qalsaaudioinput.cpp b/src/plugins/alsa/qalsaaudioinput.cpp
index 5f7a788a6..2d636d1e5 100644
--- a/src/plugins/alsa/qalsaaudioinput.cpp
+++ b/src/plugins/alsa/qalsaaudioinput.cpp
@@ -300,34 +300,16 @@ bool QAlsaAudioInput::open()
}
- QString dev = QString(QLatin1String(m_device.constData()));
- QList<QByteArray> devices = QAlsaAudioDeviceInfo::availableDevices(QAudio::AudioInput);
- if(dev.compare(QLatin1String("default")) == 0) {
-#if SND_LIB_VERSION >= 0x1000e // 1.0.14
- if (devices.size() > 0)
- dev = QLatin1String(devices.first());
- else
- return false;
-#else
- dev = QLatin1String("hw:0,0");
-#endif
- } else {
-#if SND_LIB_VERSION >= 0x1000e // 1.0.14
- dev = QLatin1String(m_device);
-#else
- int idx = 0;
- char *name;
-
- QString shortName = QLatin1String(m_device.mid(m_device.indexOf('=',0)+1).constData());
+ if (!QAlsaAudioDeviceInfo::availableDevices(QAudio::AudioOutput).contains(m_device))
+ return false;
- while(snd_card_get_name(idx,&name) == 0) {
- if(qstrncmp(shortName.toLocal8Bit().constData(),name,shortName.length()) == 0)
- break;
- idx++;
- }
- dev = QString(QLatin1String("hw:%1,0")).arg(idx);
+ QString dev;
+#if SND_LIB_VERSION < 0x1000e // 1.0.14
+ if (m_device != "default")
+ dev = QAlsaAudioDeviceInfo::deviceFromCardName(m_device);
+ else
#endif
- }
+ dev = m_device;
// Step 1: try and open the device
while((count < 5) && (err < 0)) {