adhere to repeat/shuffle settings on previous track
This commit is contained in:
committed by
Henrik Friedrichsen
parent
181f5e4918
commit
9872a10bfa
20
src/queue.rs
20
src/queue.rs
@@ -269,15 +269,25 @@ impl Queue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn previous(&self) {
|
pub fn previous(&self) {
|
||||||
|
let q = self.queue.read().unwrap();
|
||||||
|
let current = *self.current_track.read().unwrap();
|
||||||
|
let repeat = *self.repeat.read().unwrap();
|
||||||
|
|
||||||
if let Some(index) = self.previous_index() {
|
if let Some(index) = self.previous_index() {
|
||||||
self.play(index, false, false);
|
self.play(index, false, false);
|
||||||
} else {
|
} else if repeat == RepeatSetting::RepeatPlaylist && q.len() > 0 {
|
||||||
let current = *self.current_track.read().unwrap();
|
if self.get_shuffle() {
|
||||||
if let Some(index) = current {
|
let random_order = self.random_order.read().unwrap();
|
||||||
self.play(index, false, false);
|
self.play(
|
||||||
|
random_order.as_ref().map(|o| o[q.len() - 1]).unwrap_or(0),
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
self.spotify.stop();
|
self.play(q.len() - 1, false, false);
|
||||||
}
|
}
|
||||||
|
} else if let Some(index) = current {
|
||||||
|
self.play(index, false, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user