From 52a06531fc3b224994bbd258a061dc1a298ce583 Mon Sep 17 00:00:00 2001 From: Warren Dukes Date: Fri, 8 Jun 2007 12:44:38 +0000 Subject: dmix fix, don't call snd_pcm_drain unless we're already in the RUNNING state (when users press stop, previous snd_pcm_drop(), then snd_pcm_drain() was called. this would lockup dmix) git-svn-id: https://svn.musicpd.org/mpd/trunk@6517 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- src/audioOutputs/audioOutput_alsa.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/audioOutputs') diff --git a/src/audioOutputs/audioOutput_alsa.c b/src/audioOutputs/audioOutput_alsa.c index 3ade3df46..8c8f73b42 100644 --- a/src/audioOutputs/audioOutput_alsa.c +++ b/src/audioOutputs/audioOutput_alsa.c @@ -370,7 +370,9 @@ static void alsa_closeDevice(AudioOutput * audioOutput) AlsaData *ad = audioOutput->data; if (ad->pcmHandle) { - snd_pcm_drain(ad->pcmHandle); + if (snd_pcm_state(ad->pcmHandle) == SND_PCM_STATE_RUNNING) { + snd_pcm_drain(ad->pcmHandle); + } snd_pcm_close(ad->pcmHandle); ad->pcmHandle = NULL; } -- cgit v1.2.3