aboutsummaryrefslogtreecommitdiffstats
path: root/src/player_thread.c
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2012-08-25 10:28:33 +0200
committerMax Kellermann <max@duempel.org>2012-08-25 10:28:33 +0200
commitdef21cc87ef8eb1ee78be1235a2de73ed253fcaf (patch)
tree056616e05ab4d115c0415abe048a74bd6f6c857c /src/player_thread.c
parent488c1eb87b1b484da67ea0ccbb360bf1a6968003 (diff)
parentacaa725478ae5e6e4fff9e07cf8637d17d314c41 (diff)
downloadmpd-def21cc87ef8eb1ee78be1235a2de73ed253fcaf.tar.gz
mpd-def21cc87ef8eb1ee78be1235a2de73ed253fcaf.tar.xz
mpd-def21cc87ef8eb1ee78be1235a2de73ed253fcaf.zip
Merge branch 'v0.17.x'
Conflicts: src/queue_save.c
Diffstat (limited to 'src/player_thread.c')
-rw-r--r--src/player_thread.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/player_thread.c b/src/player_thread.c
index d410984f6..d2682f513 100644
--- a/src/player_thread.c
+++ b/src/player_thread.c
@@ -862,6 +862,16 @@ player_song_border(struct player *player)
if (!player_wait_for_decoder(player))
return false;
+ struct player_control *const pc = player->pc;
+ player_lock(pc);
+
+ if (pc->border_pause) {
+ player->paused = true;
+ pc->state = PLAYER_STATE_PAUSE;
+ }
+
+ player_unlock(pc);
+
return true;
}
@@ -979,7 +989,10 @@ static void do_play(struct player_control *pc, struct decoder_control *dc)
player_dc_start(&player, music_pipe_new());
}
- if (player_dc_at_next_song(&player) &&
+ if (/* no cross-fading if MPD is going to pause at the
+ end of the current song */
+ !pc->border_pause &&
+ player_dc_at_next_song(&player) &&
player.xfade == XFADE_UNKNOWN &&
!decoder_lock_is_starting(dc)) {
/* enable cross fading in this song? if yes,