Fixed bug #728 SDL-1.2
authorSam Lantinga <slouken@libsdl.org>
Thu, 15 Oct 2009 02:52:11 +0000
branchSDL-1.2
changeset 43374eb6b4be1dbc
parent 4336 77b20871fd44
child 4338 d78e4e0bf553
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
     1.1 --- a/src/audio/alsa/SDL_alsa_audio.c	Wed Oct 14 07:34:35 2009 +0000
     1.2 +++ b/src/audio/alsa/SDL_alsa_audio.c	Thu Oct 15 02:52:11 2009 +0000
     1.3 @@ -323,7 +323,7 @@
     1.4  
     1.5  	frames_left = ((snd_pcm_uframes_t) this->spec.samples);
     1.6  
     1.7 -	while ( frames_left > 0 ) {
     1.8 +	while ( frames_left > 0 && this->enabled ) {
     1.9  		status = SDL_NAME(snd_pcm_writei)(pcm_handle, sample_buf, frames_left);
    1.10  		if ( status < 0 ) {
    1.11  			if ( status == -EAGAIN ) {