Implement MPRIS pause and play methods.

Till now we were only using the play_pause method and
was enough for most of the usecases, but looks like
some mpris clients only use the individual methods.

https://specifications.freedesktop.org/mpris-spec/latest/Player_Interface.html#Method:PlayPause

Close #115
This commit is contained in:
Felix Häcker 2019-02-04 17:56:37 +01:00 committed by Jordan Petridis
parent a113ed049d
commit 68fa547b06

View File

@ -588,7 +588,7 @@ impl PlayerWrapper {
fn connect_mpris_buttons(&self, sender: &Sender<Action>) {
let weak = Rc::downgrade(self);
// FIXME: Refference cycle with mpris
// FIXME: Reference cycle with mpris
let mpris = self.info.mpris.clone();
self.info.mpris.connect_play_pause(clone!(weak => move || {
let player = match weak.upgrade() {
@ -605,6 +605,24 @@ impl PlayerWrapper {
}
}));
self.info.mpris.connect_play(clone!(weak => move || {
let player = match weak.upgrade() {
Some(s) => s,
None => return
};
player.play();
}));
self.info.mpris.connect_pause(clone!(weak => move || {
let player = match weak.upgrade() {
Some(s) => s,
None => return
};
player.pause();
}));
self.info.mpris.connect_next(clone!(weak => move || {
weak.upgrade().map(|p| p.fast_forward());
}));