diff options
-rw-r--r-- | main.c | 13 | ||||
-rw-r--r-- | streamer.c | 7 |
2 files changed, 3 insertions, 17 deletions
@@ -576,12 +576,6 @@ player_mainloop (void) { case DB_EV_PLAY_NUM: pl_playqueue_clear (); streamer_set_nextsong (p1, 4); - if (pl_get_order () == PLAYBACK_ORDER_SHUFFLE_ALBUMS) { - int pl = streamer_get_current_playlist (); - playlist_t *plt = plt_get_for_idx (pl); - plt_init_shuffle_albums (plt, p1); - plt_unref (plt); - } break; case DB_EV_STOP: streamer_set_nextsong (-2, 0); @@ -680,13 +674,6 @@ restore_resume_state (void) { streamer_lock (); // need to hold streamer thread to make the resume operation atomic streamer_set_current_playlist (plt); streamer_set_nextsong (track, paused ? 2 : 3); - if (pl_get_order () == PLAYBACK_ORDER_SHUFFLE_ALBUMS) { - playlist_t *p = plt_get_for_idx (plt); - if (p) { - plt_init_shuffle_albums (p, track); - plt_unref (p); - } - } streamer_set_seek (pos); streamer_unlock (); } @@ -774,10 +774,6 @@ streamer_move_to_randomsong_real (void) { } } - if (pl_get_order () == PLAYBACK_ORDER_SHUFFLE_ALBUMS) { - plt_init_shuffle_albums (plt, r); - } - streamer_set_nextsong (r, 1); return 0; } @@ -1357,6 +1353,9 @@ streamer_set_nextsong_real (int song, int pstate) { playpos = 0; last_seekpos = -1; } + if (pl_get_order () == PLAYBACK_ORDER_SHUFFLE_ALBUMS) { + plt_init_shuffle_albums (streamer_playlist, song); + } streamer_unlock (); } |