playerWait() stops the player thread (twice!) and closes the output device. It should be well enough to just send CLOSE_AUDIO, without STOP.
This requires a tiny change to the player thread code: make it break when CLOSE_AUDIO is sent. --- src/player.c | 22 ++++++++-------------- src/player_thread.c | 3 ++- 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/src/player.c b/src/player.c index fae405a..5c33194 100644 --- a/src/player.c +++ b/src/player.c @@ -25,14 +25,6 @@ #include "os_compat.h" #include "main_notify.h" -static void playerCloseAudio(void); - -void playerWait(void) -{ - playerStop(); - playerCloseAudio(); -} - static void set_current_song(Song *song) { assert(song != NULL); @@ -76,6 +68,14 @@ void playerStop(void) playerQueueUnlock(); } +void playerWait(void) +{ + player_command(PLAYER_COMMAND_CLOSE_AUDIO); + + pc.queueState = PLAYER_QUEUE_BLANK; + playerQueueUnlock(); +} + void playerKill(void) /* deprecated */ { playerPause(); @@ -165,12 +165,6 @@ char *getPlayerErrorStr(void) return *error ? error : NULL; } -static void playerCloseAudio(void) -{ - playerStop(); - player_command(PLAYER_COMMAND_CLOSE_AUDIO); -} - int queueSong(Song * song) { if (pc.queueState == PLAYER_QUEUE_BLANK) { diff --git a/src/player_thread.c b/src/player_thread.c index 62badab..3784445 100644 --- a/src/player_thread.c +++ b/src/player_thread.c @@ -224,7 +224,8 @@ static void decodeParent(void) while (1) { processDecodeInput(&do_pause, &bbp, &do_xfade, &decodeWaitedOn, &next); - if (pc.command == PLAYER_COMMAND_STOP) { + if (pc.command == PLAYER_COMMAND_STOP || + pc.command == PLAYER_COMMAND_CLOSE_AUDIO) { dropBufferedAudio(); break; } ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Musicpd-dev-team mailing list Musicpd-dev-team@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team