From 3c32ca73d3524e7037b8704bff230c96a0a47670 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Thu, 26 Mar 2009 17:16:46 +0000 Subject: fixed alsa buffer underrun git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@879 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/Output/alsa/outputalsa.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/plugins/Output/alsa/outputalsa.cpp') 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 -- cgit v1.2.3-13-gbd6f