diff options
author | Max Kellermann <max@duempel.org> | 2012-08-25 10:28:33 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2012-08-25 10:28:33 +0200 |
commit | def21cc87ef8eb1ee78be1235a2de73ed253fcaf (patch) | |
tree | 056616e05ab4d115c0415abe048a74bd6f6c857c /src/player_thread.c | |
parent | 488c1eb87b1b484da67ea0ccbb360bf1a6968003 (diff) | |
parent | acaa725478ae5e6e4fff9e07cf8637d17d314c41 (diff) | |
download | mpd-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.c | 15 |
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, |