summaryrefslogtreecommitdiffstats
path: root/src/multimedia/audio/qaudiooutput_alsa_p.cpp
diff options
context:
space:
mode:
authorKurt Korbatits <kurt.korbatits@nokia.com>2009-10-21 04:29:34 (GMT)
committerKurt Korbatits <kurt.korbatits@nokia.com>2009-10-21 04:29:34 (GMT)
commit0cb251e67ae45d8ab5ad715a4bc6dcf89209d2ab (patch)
tree2a51c970bf8c82a25a0be4490eac58447b853ab7 /src/multimedia/audio/qaudiooutput_alsa_p.cpp
parentdfd6221d960ec8c563a687684000c3a9c4f58079 (diff)
downloadQt-0cb251e67ae45d8ab5ad715a4bc6dcf89209d2ab.zip
Qt-0cb251e67ae45d8ab5ad715a4bc6dcf89209d2ab.tar.gz
Qt-0cb251e67ae45d8ab5ad715a4bc6dcf89209d2ab.tar.bz2
Fixed compile issue with alsa < 1.0.14
Support pre 1.0.14 alsa version. Reviewed-by:Justin McPherson
Diffstat (limited to 'src/multimedia/audio/qaudiooutput_alsa_p.cpp')
-rw-r--r--src/multimedia/audio/qaudiooutput_alsa_p.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/multimedia/audio/qaudiooutput_alsa_p.cpp b/src/multimedia/audio/qaudiooutput_alsa_p.cpp
index d814d97..efa7b27 100644
--- a/src/multimedia/audio/qaudiooutput_alsa_p.cpp
+++ b/src/multimedia/audio/qaudiooutput_alsa_p.cpp
@@ -282,7 +282,19 @@ bool QAudioOutputPrivate::open()
QString dev = QLatin1String(m_device.constData());
if(!dev.contains(QLatin1String("default"))) {
+#if(SND_LIB_MAJOR == 1 && SND_LIB_MINOR == 0 && SND_LIB_SUBMINOR >= 14)
dev = QString(QLatin1String("default:CARD=%1")).arg(QLatin1String(m_device.constData()));
+#else
+ int idx = 0;
+ char *name;
+
+ while(snd_card_get_name(idx,&name) == 0) {
+ if(m_device.contains(name))
+ break;
+ idx++;
+ }
+ dev = QString(QLatin1String("hw:%1,0")).arg(idx);
+#endif
}
// Step 1: try and open the device
while((count < 5) && (err < 0)) {
@@ -407,6 +419,7 @@ bool QAudioOutputPrivate::open()
// Step 6: Start audio processing
timer->start(period_time/1000);
+ clockStamp.restart();
timeStamp.restart();
elapsedTimeOffset = 0;
errorState = QAudio::NoError;
@@ -653,6 +666,7 @@ qint64 QAudioOutputPrivate::clock() const
if (deviceState == QAudio::StopState)
return 0;
+#if(SND_LIB_MAJOR == 1 && SND_LIB_MINOR == 0 && SND_LIB_SUBMINOR >= 14)
snd_pcm_status_t* status;
snd_pcm_status_alloca(&status);
@@ -671,6 +685,9 @@ qint64 QAudioOutputPrivate::clock() const
return ((t1.tv_sec * 1000)+l/1000);
} else
return 0;
+#else
+ return clockStamp.elapsed()*1000;
+#endif
return 0;
}