aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Output/alsa/outputalsa.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Output/alsa/outputalsa.cpp')
-rw-r--r--src/plugins/Output/alsa/outputalsa.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/plugins/Output/alsa/outputalsa.cpp b/src/plugins/Output/alsa/outputalsa.cpp
index 63922ead1..5e9c02938 100644
--- a/src/plugins/Output/alsa/outputalsa.cpp
+++ b/src/plugins/Output/alsa/outputalsa.cpp
@@ -48,6 +48,7 @@ OutputALSA::OutputALSA(QObject * parent)
m_prebuf = 0;
m_prebuf_size = 0;
m_prebuf_fill = 0;
+ m_pause = FALSE;
}
OutputALSA::~OutputALSA()
@@ -225,6 +226,17 @@ qint64 OutputALSA::latency()
return m_prebuf_fill * 8000 / sampleRate() / numChannels() / sampleSize();
}
+void OutputALSA::pause()
+{
+ m_pause = !m_pause;
+ if (m_pause && pcm_handle)
+ {
+ snd_pcm_drop(pcm_handle);
+ snd_pcm_prepare(pcm_handle);
+ }
+ Output::pause();
+}
+
qint64 OutputALSA::writeAudio(unsigned char *data, qint64 maxSize)
{
//increase buffer size if needed