Player: Do not duplicate the mpris instance

This commit is contained in:
Jordan Petridis 2018-10-03 15:58:12 +03:00 committed by Jordan Petridis
parent 986d898217
commit 23aa8c05ab

View File

@ -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)));