summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames McDonnell <jmcdonnell@blackberry.com>2017-02-22 08:52:32 -0500
committerYoann Lopes <yoann.lopes@qt.io>2017-03-09 16:49:49 +0000
commitf09d36708fdab70ad51af374a65ddded64525f67 (patch)
tree40e1a9d294cb63ae155e205b204e19b904180f17
parenteb5a508497dbb7acc3a056d02fc629f70dd0033b (diff)
Let the QNX ALSA library know about suspend/resume
Allows ALSA to pause the audio device during a suspend. Prevents fast forward effect on resume. It also aligns the QNX ALSA plugin with what other platform plugins do. Change-Id: I3fa6626e566744f4f33cc89f73973094dd4ba25e Reviewed-by: Dan Cape <dcape@qnx.com> Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
-rw-r--r--src/plugins/qnx-audio/audio/qnxaudioinput.cpp4
-rw-r--r--src/plugins/qnx-audio/audio/qnxaudiooutput.cpp2
2 files changed, 6 insertions, 0 deletions
diff --git a/src/plugins/qnx-audio/audio/qnxaudioinput.cpp b/src/plugins/qnx-audio/audio/qnxaudioinput.cpp
index 35d11597c..b16328892 100644
--- a/src/plugins/qnx-audio/audio/qnxaudioinput.cpp
+++ b/src/plugins/qnx-audio/audio/qnxaudioinput.cpp
@@ -134,6 +134,8 @@ void QnxAudioInput::reset()
void QnxAudioInput::suspend()
{
+ snd_pcm_capture_pause(m_pcmHandle);
+
if (m_pcmNotifier)
m_pcmNotifier->setEnabled(false);
@@ -142,6 +144,8 @@ void QnxAudioInput::suspend()
void QnxAudioInput::resume()
{
+ snd_pcm_capture_resume(m_pcmHandle);
+
if (m_pcmNotifier)
m_pcmNotifier->setEnabled(true);
diff --git a/src/plugins/qnx-audio/audio/qnxaudiooutput.cpp b/src/plugins/qnx-audio/audio/qnxaudiooutput.cpp
index 5cfffe990..d08d01e6d 100644
--- a/src/plugins/qnx-audio/audio/qnxaudiooutput.cpp
+++ b/src/plugins/qnx-audio/audio/qnxaudiooutput.cpp
@@ -125,11 +125,13 @@ void QnxAudioOutput::reset()
void QnxAudioOutput::suspend()
{
m_timer.stop();
+ snd_pcm_playback_pause(m_pcmHandle);
setState(QAudio::SuspendedState);
}
void QnxAudioOutput::resume()
{
+ snd_pcm_playback_resume(m_pcmHandle);
if (m_pushSource)
setState(QAudio::IdleState);
else {