Compare commits

..

No commits in common. "8e6305d9340136d6108a21028008afd51120f85c" and "015da43d1b47cc8d5f53006d07367dc80108e57b" have entirely different histories.

5 changed files with 18 additions and 41 deletions

2
Cargo.lock generated
View file

@ -1616,7 +1616,7 @@ dependencies = [
[[package]] [[package]]
name = "mpd_info_screen" name = "mpd_info_screen"
version = "0.4.12" version = "0.4.11"
dependencies = [ dependencies = [
"bindgen", "bindgen",
"clap", "clap",

View file

@ -1,6 +1,6 @@
[package] [package]
name = "mpd_info_screen" name = "mpd_info_screen"
version = "0.4.12" version = "0.4.11"
edition = "2021" edition = "2021"
description = "Displays info on currently playing music from an MPD daemon" description = "Displays info on currently playing music from an MPD daemon"
license = "MIT" license = "MIT"

View file

@ -54,8 +54,6 @@ or through crates.io:
disable album display disable album display
--disable-show-filename --disable-show-filename
disable filename display disable filename display
--disable-show-percentage
disable percentage display
--pprompt --pprompt
input password via prompt input password via prompt
--pfile <PASSWORD_FILE> --pfile <PASSWORD_FILE>

View file

@ -54,14 +54,6 @@ fn seconds_to_time(seconds: f64) -> String {
result result
} }
fn time_to_percentage(total: f64, current: f64) -> String {
let result = (100.0f64 * current / total).round().to_string();
match result.split_once('.') {
Some((a, _)) => a.to_string() + "%",
None => result + "%",
}
}
#[cfg(not(feature = "unicode_support"))] #[cfg(not(feature = "unicode_support"))]
#[allow(clippy::ptr_arg)] #[allow(clippy::ptr_arg)]
fn string_to_text( fn string_to_text(
@ -235,7 +227,6 @@ pub struct MPDDisplay {
text_bg_mesh: Option<Mesh>, text_bg_mesh: Option<Mesh>,
hide_text: bool, hide_text: bool,
tried_album_art_in_dir: bool, tried_album_art_in_dir: bool,
prev_mpd_play_state: MPDPlayState,
mpd_play_state: MPDPlayState, mpd_play_state: MPDPlayState,
loaded_fonts: Vec<(PathBuf, String)>, loaded_fonts: Vec<(PathBuf, String)>,
} }
@ -276,7 +267,6 @@ impl MPDDisplay {
text_bg_mesh: None, text_bg_mesh: None,
hide_text: false, hide_text: false,
tried_album_art_in_dir: false, tried_album_art_in_dir: false,
prev_mpd_play_state: MPDPlayState::Playing,
mpd_play_state: MPDPlayState::Playing, mpd_play_state: MPDPlayState::Playing,
loaded_fonts: Vec::new(), loaded_fonts: Vec::new(),
filename_string_cache: String::new(), filename_string_cache: String::new(),
@ -724,19 +714,21 @@ impl MPDDisplay {
Color::from_rgba(0, 0, 0, self.opts.text_bg_opacity), Color::from_rgba(0, 0, 0, self.opts.text_bg_opacity),
)?; )?;
} }
if self.mpd_play_state == MPDPlayState::Playing { let mesh: Mesh = Mesh::from_data(
mesh_builder.rectangle( ctx,
DrawMode::fill(), mesh_builder
Rect { .rectangle(
x: TEXT_X_OFFSET, DrawMode::fill(),
y: self.cached_timer_y, Rect {
w: timer_dimensions.w, x: TEXT_X_OFFSET,
h: timer_dimensions.h, y: self.cached_timer_y,
}, w: timer_dimensions.w,
Color::from_rgba(0, 0, 0, self.opts.text_bg_opacity), h: timer_dimensions.h,
)?; },
} Color::from_rgba(0, 0, 0, self.opts.text_bg_opacity),
let mesh: Mesh = Mesh::from_data(ctx, mesh_builder.build()); )?
.build(),
);
self.text_bg_mesh = Some(mesh); self.text_bg_mesh = Some(mesh);
@ -839,10 +831,8 @@ impl EventHandler for MPDDisplay {
self.length = 0.0; self.length = 0.0;
self.album_art = None; self.album_art = None;
} }
self.prev_mpd_play_state = self.mpd_play_state;
self.mpd_play_state = shared.mpd_play_state; self.mpd_play_state = shared.mpd_play_state;
} else { } else {
self.prev_mpd_play_state = self.mpd_play_state;
self.mpd_play_state = MPDPlayState::Playing; self.mpd_play_state = MPDPlayState::Playing;
if !shared.title.is_empty() { if !shared.title.is_empty() {
if shared.title != self.title_string_cache { if shared.title != self.title_string_cache {
@ -939,11 +929,7 @@ impl EventHandler for MPDDisplay {
let delta = ctx.time.delta(); let delta = ctx.time.delta();
self.timer += delta.as_secs_f64(); self.timer += delta.as_secs_f64();
let mut timer_diff = seconds_to_time(self.length - self.timer); let timer_diff = seconds_to_time(self.length - self.timer);
if !self.opts.disable_show_percentage {
let timer_percentage = time_to_percentage(self.length, self.timer);
timer_diff = timer_diff + " " + &timer_percentage;
}
let timer_diff_len = timer_diff.len(); let timer_diff_len = timer_diff.len();
self.timer_text = Text::new(timer_diff); self.timer_text = Text::new(timer_diff);
self.timer_text.set_scale(PxScale { self.timer_text.set_scale(PxScale {
@ -953,11 +939,6 @@ impl EventHandler for MPDDisplay {
if timer_diff_len != self.timer_text_len { if timer_diff_len != self.timer_text_len {
self.timer_text_len = timer_diff_len; self.timer_text_len = timer_diff_len;
self.update_bg_mesh(ctx)?; self.update_bg_mesh(ctx)?;
} else if self.mpd_play_state != MPDPlayState::Playing
&& self.prev_mpd_play_state == MPDPlayState::Playing
{
self.update_bg_mesh(ctx)?;
self.prev_mpd_play_state = self.mpd_play_state;
} }
Ok(()) Ok(())

View file

@ -35,8 +35,6 @@ pub struct Opt {
disable_show_album: bool, disable_show_album: bool,
#[arg(long = "disable-show-filename", help = "disable filename display")] #[arg(long = "disable-show-filename", help = "disable filename display")]
disable_show_filename: bool, disable_show_filename: bool,
#[arg(long = "disable-show-percentage", help = "disable percentage display")]
disable_show_percentage: bool,
#[arg(long = "pprompt", help = "input password via prompt")] #[arg(long = "pprompt", help = "input password via prompt")]
enable_prompt_password: bool, enable_prompt_password: bool,
#[arg(long = "pfile", help = "read password from file")] #[arg(long = "pfile", help = "read password from file")]