diff options
Diffstat (limited to 'src/playlist.c')
-rw-r--r-- | src/playlist.c | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/src/playlist.c b/src/playlist.c index 402b57ea3..624636c0c 100644 --- a/src/playlist.c +++ b/src/playlist.c @@ -1152,25 +1152,24 @@ static void randomizeOrder(int start, int end) void setPlaylistRandomStatus(bool status) { - bool statusWas = playlist.random; + if (status == playlist.random) + return; playlist.random = status; - if (status != statusWas) { - if (playlist.random) { - /*if(playlist_state==PLAYLIST_STATE_PLAY) { - randomizeOrder(playlist.current+1, - playlist.length-1); - } - else */ randomizeOrder(0, playlist.length - 1); - if (playlist.current >= 0 && - playlist.current < playlist.length) { - swapOrder(playlist.current, 0); - playlist.current = 0; - } - } else - orderPlaylist(); - } + if (playlist.random) { + /*if(playlist_state==PLAYLIST_STATE_PLAY) { + randomizeOrder(playlist.current+1, + playlist.length-1); + } + else */ randomizeOrder(0, playlist.length - 1); + if (playlist.current >= 0 && + playlist.current < playlist.length) { + swapOrder(playlist.current, 0); + playlist.current = 0; + } + } else + orderPlaylist(); } void previousSongInPlaylist(void) |