aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Output
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-04-01 18:02:28 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-04-01 18:02:28 +0000
commit6429b8e08efe1b23e0a766ca15ec4f65424c2ff4 (patch)
tree4f2bd8c8c44eebb40c5c545ccbca6e703b59fafd /src/plugins/Output
parent9c09ee9d873542bb5bed8a8c334f68ba9d84351f (diff)
downloadqmmp-6429b8e08efe1b23e0a766ca15ec4f65424c2ff4.tar.gz
qmmp-6429b8e08efe1b23e0a766ca15ec4f65424c2ff4.tar.bz2
qmmp-6429b8e08efe1b23e0a766ca15ec4f65424c2ff4.zip
some core fixes and improvements
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@886 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Output')
-rw-r--r--src/plugins/Output/alsa/outputalsa.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/plugins/Output/alsa/outputalsa.cpp b/src/plugins/Output/alsa/outputalsa.cpp
index 5e9c02938..6ed462e16 100644
--- a/src/plugins/Output/alsa/outputalsa.cpp
+++ b/src/plugins/Output/alsa/outputalsa.cpp
@@ -271,6 +271,7 @@ void OutputALSA::flush()
{
snd_pcm_uframes_t l = snd_pcm_bytes_to_frames(pcm_handle, m_prebuf_fill);
long m;
+ l = snd_pcm_bytes_to_frames(pcm_handle, l);
while (l > 0)
{
if ((m = alsa_write(m_prebuf, l)) >= 0)
@@ -283,6 +284,9 @@ void OutputALSA::flush()
else
break;
}
+ snd_pcm_nonblock(pcm_handle, 0);
+ snd_pcm_drain(pcm_handle);
+ snd_pcm_nonblock(pcm_handle, 1);
}
long OutputALSA::alsa_write(unsigned char *data, long size)
@@ -340,6 +344,7 @@ long OutputALSA::alsa_write(unsigned char *data, long size)
}
return 0;
}
+ qDebug ("OutputALSA: error: %s", snd_strerror(m));
return -1;
}