mirror of
https://github.com/librespot-org/librespot.git
synced 2024-12-18 17:11:53 +00:00
Add playing_to_end_of_track method to PlayerState.
This commit is contained in:
parent
1b943d069f
commit
0a6825ba61
1 changed files with 14 additions and 11 deletions
|
@ -170,12 +170,24 @@ impl PlayerState {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn signal_end_of_track(self) {
|
fn send_end_of_track(self) {
|
||||||
use self::PlayerState::*;
|
use self::PlayerState::*;
|
||||||
match self {
|
match self {
|
||||||
Paused { end_of_track, .. } |
|
Paused { end_of_track, .. } |
|
||||||
Playing { end_of_track, .. } => {
|
Playing { end_of_track, .. } => {
|
||||||
let _ = end_of_track.send(());
|
let _ = end_of_track.send(());
|
||||||
|
},
|
||||||
|
_ => ()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn playing_to_end_of_track(&mut self) {
|
||||||
|
use self::PlayerState::*;
|
||||||
|
match *self {
|
||||||
|
Paused { track_id, .. } |
|
||||||
|
Playing { track_id, .. } => {
|
||||||
|
let old_state = mem::replace(self, EndOfTrack { track_id });
|
||||||
|
old_state.send_end_of_track();
|
||||||
}
|
}
|
||||||
|
|
||||||
EndOfTrack { .. } => warn!("signal_end_of_track from end of track state"),
|
EndOfTrack { .. } => warn!("signal_end_of_track from end of track state"),
|
||||||
|
@ -295,16 +307,7 @@ impl PlayerInternal {
|
||||||
|
|
||||||
None => {
|
None => {
|
||||||
self.stop_sink();
|
self.stop_sink();
|
||||||
|
self.state.playing_to_end_of_track();
|
||||||
let new_state = match self.state {
|
|
||||||
PlayerState::Playing { track_id, .. }
|
|
||||||
| PlayerState::Paused { track_id, .. } =>
|
|
||||||
PlayerState::EndOfTrack { track_id },
|
|
||||||
_ => PlayerState::Stopped,
|
|
||||||
};
|
|
||||||
|
|
||||||
let old_state = mem::replace(&mut self.state, new_state);
|
|
||||||
old_state.signal_end_of_track();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue