15
src/queue.rs
15
src/queue.rs
@@ -130,10 +130,9 @@ impl Queue {
|
|||||||
q.remove(index);
|
q.remove(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
// if the queue is empty or we are at the end of the queue, stop
|
// if the queue is empty stop playback
|
||||||
// playback
|
|
||||||
let len = self.queue.read().unwrap().len();
|
let len = self.queue.read().unwrap().len();
|
||||||
if len == 0 || index == len {
|
if len == 0 {
|
||||||
self.stop();
|
self.stop();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -144,7 +143,15 @@ impl Queue {
|
|||||||
let current = *self.current_track.read().unwrap();
|
let current = *self.current_track.read().unwrap();
|
||||||
if let Some(current_track) = current {
|
if let Some(current_track) = current {
|
||||||
match current_track.cmp(&index) {
|
match current_track.cmp(&index) {
|
||||||
Ordering::Equal => self.play(index, false, false),
|
Ordering::Equal => {
|
||||||
|
// stop playback if we have the deleted the last item and it
|
||||||
|
// was playing
|
||||||
|
if current_track == len {
|
||||||
|
self.stop();
|
||||||
|
} else {
|
||||||
|
self.play(index, false, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
Ordering::Greater => {
|
Ordering::Greater => {
|
||||||
let mut current = self.current_track.write().unwrap();
|
let mut current = self.current_track.write().unwrap();
|
||||||
current.replace(current_track - 1);
|
current.replace(current_track - 1);
|
||||||
|
|||||||
Reference in New Issue
Block a user