player_thread: pause when all audio outputs fail to play

When all audio outputs have been closed due to failures, pause the
playback instead of stopping it.  This way, the user may resume
at the current position after the problem has been dealt with.
This commit is contained in:
Max Kellermann
2009-04-25 11:55:36 +02:00
parent 70faf59275
commit 472b994779
2 changed files with 8 additions and 2 deletions

View File

@@ -549,6 +549,12 @@ play_next_chunk(struct player *player)
if (!success) {
music_buffer_return(player_buffer, chunk);
/* pause: the user may resume playback as soon as an
audio output becomes available */
pc.state = PLAYER_STATE_PAUSE;
player->paused = true;
return false;
}
@@ -708,8 +714,7 @@ static void do_play(void)
/* at least one music chunk is ready - send it
to the audio output */
if (!play_next_chunk(&player))
break;
play_next_chunk(&player);
} else if (audio_output_all_check() > 0) {
/* not enough data from decoder, but the
output thread is still busy, so it's