summaryrefslogtreecommitdiffstats
path: root/src/multimedia/audio/qaudioinput_alsa_p.cpp
diff options
context:
space:
mode:
authorKurt Korbatits <kurt.korbatits@nokia.com>2009-09-30 04:53:37 (GMT)
committerKurt Korbatits <kurt.korbatits@nokia.com>2009-09-30 04:53:37 (GMT)
commitf4bcf5c9fd51ed1923239ea1ad0d78bcd3d56f62 (patch)
treee149c3d355882cec80031b7bc0927ee1a9375809 /src/multimedia/audio/qaudioinput_alsa_p.cpp
parent8c3bf71e6fcbcfb21b9574e25cfdb00614a0c68d (diff)
downloadQt-f4bcf5c9fd51ed1923239ea1ad0d78bcd3d56f62.zip
Qt-f4bcf5c9fd51ed1923239ea1ad0d78bcd3d56f62.tar.gz
Qt-f4bcf5c9fd51ed1923239ea1ad0d78bcd3d56f62.tar.bz2
Fixed error in notify() signal and totalTime() in QAudioInput and
QAudioOutput. -The notify() signal was not firing the correct number of times. -The totalTime() on wince was incorrect (unit test). Reviewed-by:Justin McPherson
Diffstat (limited to 'src/multimedia/audio/qaudioinput_alsa_p.cpp')
-rw-r--r--src/multimedia/audio/qaudioinput_alsa_p.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/multimedia/audio/qaudioinput_alsa_p.cpp b/src/multimedia/audio/qaudioinput_alsa_p.cpp
index 0192468..46c4392 100644
--- a/src/multimedia/audio/qaudioinput_alsa_p.cpp
+++ b/src/multimedia/audio/qaudioinput_alsa_p.cpp
@@ -57,6 +57,8 @@ QT_BEGIN_NAMESPACE
//#define DEBUG_AUDIO 1
+static const int minimumIntervalTime = 50;
+
QAudioInputPrivate::QAudioInputPrivate(const QByteArray &device, const QAudioFormat& audioFormat):
settings(audioFormat)
{
@@ -248,6 +250,7 @@ bool QAudioInputPrivate::open()
qDebug()<<now.second()<<"s "<<now.msec()<<"ms :open()";
#endif
timeStamp.restart();
+ elapsedTimeOffset = 0;
int dir;
int err=-1;
@@ -531,7 +534,10 @@ int QAudioInputPrivate::periodSize() const
void QAudioInputPrivate::setNotifyInterval(int ms)
{
- intervalTime = ms;
+ if(ms >= minimumIntervalTime)
+ intervalTime = ms;
+ else
+ intervalTime = minimumIntervalTime;
}
int QAudioInputPrivate::notifyInterval() const
@@ -579,8 +585,9 @@ bool QAudioInputPrivate::deviceReady()
if(deviceState != QAudio::ActiveState)
return true;
- if(timeStamp.elapsed() > intervalTime && intervalTime > 50) {
+ if((timeStamp.elapsed() + elapsedTimeOffset) > intervalTime) {
emit notify();
+ elapsedTimeOffset = timeStamp.elapsed() + elapsedTimeOffset - intervalTime;
timeStamp.restart();
}
return true;