diff options
author | Mikko Hallamaa <mikko.hallamaa@qt.io> | 2024-03-18 18:28:19 +0100 |
---|---|---|
committer | Mikko Hallamaa <mikko.hallamaa@qt.io> | 2024-03-20 17:22:04 +0100 |
commit | f1720f9bc4b30416eda384b88adfa304ef2ae180 (patch) | |
tree | 3114c14b72ccc5f7acf1601b682804baef755884 /src/multimedia | |
parent | 6289bb03401224f3139d43add0cda166ba23e3eb (diff) |
Use QBasicTimer in QPulseAudioSource
Replace QTimer with the more light-weight QBasicTimer in
QPulseAudioSource.
Pick-to: 6.7 6.6 6.5
Change-Id: I47a10c5cbed1a5fcd8c771b190faf3112ca0ad93
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
Diffstat (limited to 'src/multimedia')
-rw-r--r-- | src/multimedia/pulseaudio/qpulseaudiosource.cpp | 19 | ||||
-rw-r--r-- | src/multimedia/pulseaudio/qpulseaudiosource_p.h | 5 |
2 files changed, 16 insertions, 8 deletions
diff --git a/src/multimedia/pulseaudio/qpulseaudiosource.cpp b/src/multimedia/pulseaudio/qpulseaudiosource.cpp index 62fb5c17f..3c0640c06 100644 --- a/src/multimedia/pulseaudio/qpulseaudiosource.cpp +++ b/src/multimedia/pulseaudio/qpulseaudiosource.cpp @@ -106,14 +106,11 @@ QPulseAudioSource::QPulseAudioSource(const QByteArray &device, QObject *parent) , m_stream(nullptr) , m_device(device) { - m_timer = new QTimer(this); - connect(m_timer, SIGNAL(timeout()), SLOT(userFeed())); } QPulseAudioSource::~QPulseAudioSource() { close(); - delete m_timer; } void QPulseAudioSource::setError(QAudio::Error error) @@ -307,7 +304,7 @@ bool QPulseAudioSource::open() connect(pulseEngine, &QPulseAudioEngine::contextFailed, this, &QPulseAudioSource::onPulseContextFailed); m_opened = true; - m_timer->start(m_periodTime); + m_timer.start(m_periodTime, this); m_elapsedTimeOffset = 0; m_totalTimeValue = 0; @@ -320,7 +317,7 @@ void QPulseAudioSource::close() if (!m_opened) return; - m_timer->stop(); + m_timer.stop(); QPulseAudioEngine *pulseEngine = QPulseAudioEngine::instance(); @@ -482,7 +479,7 @@ void QPulseAudioSource::resume() pulseEngine->wait(operation.get()); } - m_timer->start(m_periodTime); + m_timer.start(m_periodTime, this); setState(QAudio::ActiveState); setError(QAudio::NoError); @@ -531,7 +528,7 @@ void QPulseAudioSource::suspend() setError(QAudio::NoError); setState(QAudio::SuspendedState); - m_timer->stop(); + m_timer.stop(); QPulseAudioEngine *pulseEngine = QPulseAudioEngine::instance(); @@ -542,6 +539,14 @@ void QPulseAudioSource::suspend() } } +void QPulseAudioSource::timerEvent(QTimerEvent *event) +{ + if (event->timerId() == m_timer.timerId()) + userFeed(); + + QPlatformAudioSource::timerEvent(event); +} + void QPulseAudioSource::userFeed() { if (m_deviceState == QAudio::StoppedState || m_deviceState == QAudio::SuspendedState) diff --git a/src/multimedia/pulseaudio/qpulseaudiosource_p.h b/src/multimedia/pulseaudio/qpulseaudiosource_p.h index 81f3936ae..5326e3889 100644 --- a/src/multimedia/pulseaudio/qpulseaudiosource_p.h +++ b/src/multimedia/pulseaudio/qpulseaudiosource_p.h @@ -67,6 +67,9 @@ public: QAudio::State m_deviceState; qreal m_volume; +protected: + void timerEvent(QTimerEvent *event) override; + private slots: void userFeed(); bool deviceReady(); @@ -88,7 +91,7 @@ private: int m_bufferSize; int m_periodSize; unsigned int m_periodTime; - QTimer *m_timer; + QBasicTimer m_timer; qint64 m_elapsedTimeOffset; pa_stream *m_stream; QByteArray m_streamName; |