From 80bfe912aa172be43b6c5adb60c3196d484e1f17 Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Thu, 26 Aug 2021 13:27:58 -0700 Subject: [PATCH] Set play/pause icon depending on state --- src/mpris.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/mpris.rs b/src/mpris.rs index 15d4b580..6ad297f8 100644 --- a/src/mpris.rs +++ b/src/mpris.rs @@ -219,11 +219,17 @@ impl MprisControls { }; // XXX status - let (_status, metadata) = match (player.playback_status(), player.metadata()) { + let (status, metadata) = match (player.playback_status(), player.metadata()) { (Some(status), Some(metadata)) => (status, metadata), _ => return, }; + let play_pause_icon = if status == "Playing" { + "media-playback-pause-symbolic" + } else { + "media-playback-start-symbolic" + }; + let title = metadata.title().unwrap_or_else(|| String::new()); // XXX correct way to handle multiple? let artist = metadata @@ -238,6 +244,9 @@ impl MprisControls { self_.update_arturl(arturl.as_deref()).await; })); + self.inner() + .play_pause_button + .set_icon_name(play_pause_icon); self.inner().title_label.set_label(&title); self.inner().artist_label.set_label(&artist); }