Skip to content

Commit b656f51

Browse files
author
Bailey Kasin
committed
Add UI for mute
Signed-off-by: Bailey Kasin <[email protected]>
1 parent 1bfa73b commit b656f51

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

spotify_player/src/event/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,8 +240,8 @@ fn handle_global_command(
240240
Command::Mute => {
241241
if let Some(ref playback) = state.player.read().buffered_playback {
242242
if let Some(volume) = state.player.read().mute_state {
243-
client_pub.send(ClientRequest::Player(PlayerRequest::ToggleMute(0)))?;
244243
client_pub.send(ClientRequest::Player(PlayerRequest::Volume(volume as u8)))?;
244+
client_pub.send(ClientRequest::Player(PlayerRequest::ToggleMute(0)))?;
245245
} else if let Some(volume) = playback.volume {
246246
client_pub.send(ClientRequest::Player(PlayerRequest::ToggleMute(volume)))?;
247247
client_pub.send(ClientRequest::Player(PlayerRequest::Volume(0)))?;

spotify_player/src/ui/playback.rs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ pub fn render_playback_window(
9191
};
9292

9393
if let Some(ref playback) = player.buffered_playback {
94-
render_playback_text(frame, state, ui, metadata_rect, track, playback);
94+
render_playback_text(frame, state, ui, metadata_rect, track, playback, player.mute_state);
9595
}
9696

9797
let progress = std::cmp::min(
@@ -133,6 +133,7 @@ fn render_playback_text(
133133
rect: Rect,
134134
track: &rspotify_model::FullTrack,
135135
playback: &SimplifiedPlayback,
136+
mute_state: Option<u32>,
136137
) {
137138
// Construct a "styled" text (`playback_text`) from playback's data
138139
// based on a user-configurable format string (app_config.playback_format)
@@ -144,6 +145,12 @@ fn render_playback_text(
144145
// this regex is to handle a format argument or a newline
145146
let re = regex::Regex::new(r"\{.*?\}|\n").unwrap();
146147

148+
// build the volume string (vol% when unmuted, old_vol% (muted) if currently muted)
149+
let mut volume = format!("{}%", playback.volume.unwrap_or_default());
150+
if mute_state.is_some() {
151+
volume = format!("{}% (muted)", mute_state.unwrap_or_default());
152+
}
153+
147154
let mut ptr = 0;
148155
for m in re.find_iter(format_str) {
149156
let s = m.start();
@@ -180,10 +187,10 @@ fn render_playback_text(
180187
"{album}" => (track.album.name.to_owned(), ui.theme.playback_album()),
181188
"{metadata}" => (
182189
format!(
183-
"repeat: {} | shuffle: {} | volume: {}% | device: {}",
190+
"repeat: {} | shuffle: {} | volume: {} | device: {}",
184191
<&'static str>::from(playback.repeat_state),
185192
playback.shuffle_state,
186-
playback.volume.unwrap_or_default(),
193+
volume,
187194
playback.device_name,
188195
),
189196
ui.theme.playback_metadata(),

0 commit comments

Comments
 (0)