comparison src/audio/alsa/SDL_alsa_audio.c @ 4337:4eb6b4be1dbc SDL-1.2

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).
author Sam Lantinga <slouken@libsdl.org>
date Thu, 15 Oct 2009 02:52:11 +0000
parents 77b20871fd44
children 819270e2f893
comparison
equal deleted inserted replaced
4336:77b20871fd44 4337:4eb6b4be1dbc
321 321
322 swizzle_alsa_channels(this); 322 swizzle_alsa_channels(this);
323 323
324 frames_left = ((snd_pcm_uframes_t) this->spec.samples); 324 frames_left = ((snd_pcm_uframes_t) this->spec.samples);
325 325
326 while ( frames_left > 0 ) { 326 while ( frames_left > 0 && this->enabled ) {
327 status = SDL_NAME(snd_pcm_writei)(pcm_handle, sample_buf, frames_left); 327 status = SDL_NAME(snd_pcm_writei)(pcm_handle, sample_buf, frames_left);
328 if ( status < 0 ) { 328 if ( status < 0 ) {
329 if ( status == -EAGAIN ) { 329 if ( status == -EAGAIN ) {
330 SDL_Delay(1); 330 SDL_Delay(1);
331 continue; 331 continue;