Player: Do not duplicate the mpris instance
This commit is contained in:
parent
986d898217
commit
23aa8c05ab
@ -175,7 +175,6 @@ struct PlayerControls {
|
|||||||
pub(crate) struct PlayerWidget {
|
pub(crate) struct PlayerWidget {
|
||||||
pub(crate) action_bar: gtk::ActionBar,
|
pub(crate) action_bar: gtk::ActionBar,
|
||||||
player: gst_player::Player,
|
player: gst_player::Player,
|
||||||
mpris: Arc<MprisPlayer>,
|
|
||||||
controls: PlayerControls,
|
controls: PlayerControls,
|
||||||
timer: PlayerTimes,
|
timer: PlayerTimes,
|
||||||
info: PlayerInfo,
|
info: PlayerInfo,
|
||||||
@ -244,7 +243,7 @@ impl Default for PlayerWidget {
|
|||||||
let episode = builder.get_object("episode_label").unwrap();
|
let episode = builder.get_object("episode_label").unwrap();
|
||||||
let cover = builder.get_object("show_cover").unwrap();
|
let cover = builder.get_object("show_cover").unwrap();
|
||||||
let info = PlayerInfo {
|
let info = PlayerInfo {
|
||||||
mpris: mpris.clone(),
|
mpris,
|
||||||
container: labels,
|
container: labels,
|
||||||
show,
|
show,
|
||||||
episode,
|
episode,
|
||||||
@ -268,7 +267,6 @@ impl Default for PlayerWidget {
|
|||||||
|
|
||||||
PlayerWidget {
|
PlayerWidget {
|
||||||
player,
|
player,
|
||||||
mpris,
|
|
||||||
action_bar,
|
action_bar,
|
||||||
controls,
|
controls,
|
||||||
timer,
|
timer,
|
||||||
@ -336,15 +334,15 @@ impl PlayerWidget {
|
|||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
s.mpris.connect_next(clone!(weak => move || {
|
s.info.mpris.connect_next(clone!(weak => move || {
|
||||||
weak.upgrade().map(|p| p.fast_forward());
|
weak.upgrade().map(|p| p.fast_forward());
|
||||||
}));
|
}));
|
||||||
|
|
||||||
s.mpris.connect_previous(clone!(weak => move || {
|
s.info.mpris.connect_previous(clone!(weak => move || {
|
||||||
weak.upgrade().map(|p| p.rewind());
|
weak.upgrade().map(|p| p.rewind());
|
||||||
}));
|
}));
|
||||||
|
|
||||||
//s.mpris.connect_raise(clone!(weak => move || {
|
//s.info.mpris.connect_raise(clone!(weak => move || {
|
||||||
// TODO: Do something here
|
// TODO: Do something here
|
||||||
//}));
|
//}));
|
||||||
}
|
}
|
||||||
@ -469,7 +467,7 @@ impl PlayerExt for PlayerWidget {
|
|||||||
self.controls.play.hide();
|
self.controls.play.hide();
|
||||||
|
|
||||||
self.player.play();
|
self.player.play();
|
||||||
self.mpris.set_playback_status(PlaybackStatus::Playing);
|
self.info.mpris.set_playback_status(PlaybackStatus::Playing);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn pause(&self) {
|
fn pause(&self) {
|
||||||
@ -477,7 +475,7 @@ impl PlayerExt for PlayerWidget {
|
|||||||
self.controls.play.show();
|
self.controls.play.show();
|
||||||
|
|
||||||
self.player.pause();
|
self.player.pause();
|
||||||
self.mpris.set_playback_status(PlaybackStatus::Paused);
|
self.info.mpris.set_playback_status(PlaybackStatus::Paused);
|
||||||
|
|
||||||
// Only rewind on pause if the stream position is passed a certain point.
|
// Only rewind on pause if the stream position is passed a certain point.
|
||||||
if let Some(sec) = self.player.get_position().seconds() {
|
if let Some(sec) = self.player.get_position().seconds() {
|
||||||
@ -493,7 +491,7 @@ impl PlayerExt for PlayerWidget {
|
|||||||
self.controls.play.show();
|
self.controls.play.show();
|
||||||
|
|
||||||
self.player.stop();
|
self.player.stop();
|
||||||
self.mpris.set_playback_status(PlaybackStatus::Paused);
|
self.info.mpris.set_playback_status(PlaybackStatus::Paused);
|
||||||
|
|
||||||
// Reset the slider bar to the start
|
// Reset the slider bar to the start
|
||||||
self.timer.on_position_updated(Position(ClockTime::from_seconds(0)));
|
self.timer.on_position_updated(Position(ClockTime::from_seconds(0)));
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user