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:
parent
a113ed049d
commit
68fa547b06
@ -588,7 +588,7 @@ impl PlayerWrapper {
|
|||||||
fn connect_mpris_buttons(&self, sender: &Sender<Action>) {
|
fn connect_mpris_buttons(&self, sender: &Sender<Action>) {
|
||||||
let weak = Rc::downgrade(self);
|
let weak = Rc::downgrade(self);
|
||||||
|
|
||||||
// FIXME: Refference cycle with mpris
|
// FIXME: Reference cycle with mpris
|
||||||
let mpris = self.info.mpris.clone();
|
let mpris = self.info.mpris.clone();
|
||||||
self.info.mpris.connect_play_pause(clone!(weak => move || {
|
self.info.mpris.connect_play_pause(clone!(weak => move || {
|
||||||
let player = match weak.upgrade() {
|
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 || {
|
self.info.mpris.connect_next(clone!(weak => move || {
|
||||||
weak.upgrade().map(|p| p.fast_forward());
|
weak.upgrade().map(|p| p.fast_forward());
|
||||||
}));
|
}));
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user