Prevent shuffle crash

fixes https://github.com/librespot-org/librespot/issues/959
This commit is contained in:
JasonLG1979 2022-01-31 18:20:10 -06:00
parent f4be9bb85d
commit edb98d5c1d

View file

@ -668,15 +668,15 @@ impl SpircTask {
self.state.set_shuffle(frame.get_state().get_shuffle());
if self.state.get_shuffle() {
let current_index = self.state.get_playing_track_index();
{
let tracks = self.state.mut_track();
let tracks = self.state.mut_track();
if !tracks.is_empty() {
tracks.swap(0, current_index as usize);
if let Some((_, rest)) = tracks.split_first_mut() {
let mut rng = rand::thread_rng();
rest.shuffle(&mut rng);
}
self.state.set_playing_track_index(0);
}
self.state.set_playing_track_index(0);
} else {
let context = self.state.get_context_uri();
debug!("{:?}", context);