From 23c10b5e92ea40676cdbf16d787978a9b765736b Mon Sep 17 00:00:00 2001 From: Alexey Yakovenko Date: Thu, 28 Jan 2010 20:22:24 +0100 Subject: fixed regression in alsa.freeonstop handler --- plugins/alsa/alsa.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/plugins/alsa/alsa.c b/plugins/alsa/alsa.c index ca6b4e4d..0e127464 100644 --- a/plugins/alsa/alsa.c +++ b/plugins/alsa/alsa.c @@ -339,7 +339,6 @@ int palsa_free (void) { trace ("palsa_free\n"); if (audio && !alsa_terminate) { - palsa_stop (); deadbeef->mutex_lock (mutex); alsa_terminate = 1; deadbeef->mutex_unlock (mutex); @@ -417,21 +416,19 @@ palsa_stop (void) { return 0; } state = OUTPUT_STATE_STOPPED; - if (deadbeef->conf_get_int ("alsa.freeonstop", 0)) { - palsa_free (); - } - else { - deadbeef->mutex_lock (mutex); - snd_pcm_drop (audio); + deadbeef->mutex_lock (mutex); + snd_pcm_drop (audio); #if 0 - if (pcm_callback) { - snd_async_del_handler (pcm_callback); - pcm_callback = NULL; - } -#endif - deadbeef->mutex_unlock (mutex); + if (pcm_callback) { + snd_async_del_handler (pcm_callback); + pcm_callback = NULL; } +#endif + deadbeef->mutex_unlock (mutex); deadbeef->streamer_reset (1); + if (deadbeef->conf_get_int ("alsa.freeonstop", 0)) { + palsa_free (); + } return 0; } -- cgit v1.2.3