From c8b66a290bea5f16fcdc4e69025c6f700d6e4fff Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Thu, 15 Oct 2009 02:52:11 +0000 Subject: [PATCH] Fixed bug #728 I am using a headset on my monitor as primary sound output device. From time to time it happens that I switch off my monitor when I leave my computer and switch it on when I come back. When doing so while wesnoth is running I get no sound back when I switch on my monitor. There is probably good reason for that. Therefore I wanted to exit and restart wesnoth. Unfortunately, wesnoth always hangs in this situation. It looks like wesnoth can not be exited when the primary sound device vanished. I created a backtrace of this situation (please see attachment). --- src/audio/alsa/SDL_alsa_audio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/audio/alsa/SDL_alsa_audio.c b/src/audio/alsa/SDL_alsa_audio.c index c14575c89..923a93dcc 100644 --- a/src/audio/alsa/SDL_alsa_audio.c +++ b/src/audio/alsa/SDL_alsa_audio.c @@ -323,7 +323,7 @@ static void ALSA_PlayAudio(_THIS) frames_left = ((snd_pcm_uframes_t) this->spec.samples); - while ( frames_left > 0 ) { + while ( frames_left > 0 && this->enabled ) { status = SDL_NAME(snd_pcm_writei)(pcm_handle, sample_buf, frames_left); if ( status < 0 ) { if ( status == -EAGAIN ) {