From 4481ef0ae970e2a122ab8af703533d84cc9ccc19 Mon Sep 17 00:00:00 2001 From: Robbert van der Helm <mail@robbertvanderhelm.nl> Date: Sun, 13 Feb 2022 16:49:29 +0100 Subject: [PATCH] Avoid more redundancy in parameter handling --- src/param.rs | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/src/param.rs b/src/param.rs index cf464a6c..6c2e5c41 100644 --- a/src/param.rs +++ b/src/param.rs @@ -200,7 +200,7 @@ macro_rules! impl_plainparam { match value { Some(plain) => { - self.value = plain; + self.set_plain_value(plain); true } None => false, @@ -219,7 +219,7 @@ macro_rules! impl_plainparam { } fn normalized_value(&self) -> f32 { - self.range.normalize(self.value) + self.preview_normalized(self.value) } fn set_normalized_value(&mut self, normalized: f32) { @@ -227,7 +227,7 @@ macro_rules! impl_plainparam { } fn normalized_value_to_string(&self, normalized: f32, include_unit: bool) -> String { - let value = self.range.unnormalize(normalized); + let value = self.preview_plain(normalized); match (&self.value_to_string, include_unit) { (Some(f), true) => format!("{}{}", f(value), self.unit), (Some(f), false) => format!("{}", f(value)), @@ -243,7 +243,7 @@ macro_rules! impl_plainparam { None => string.parse().ok(), }?; - Some(self.range.normalize(value)) + Some(self.preview_normalized(value)) } fn preview_normalized(&self, plain: Self::Plain) -> f32 { @@ -279,7 +279,7 @@ impl Param for BoolParam { match value { Some(plain) => { - self.value = plain; + self.set_plain_value(plain); true } None => false, @@ -298,19 +298,15 @@ impl Param for BoolParam { } fn normalized_value(&self) -> f32 { - if self.value { - 1.0 - } else { - 0.0 - } + self.preview_normalized(self.value) } fn set_normalized_value(&mut self, normalized: f32) { - self.set_plain_value(normalized > 0.5); + self.set_plain_value(self.preview_plain(normalized)); } fn normalized_value_to_string(&self, normalized: f32, _include_unit: bool) -> String { - let value = normalized > 0.5; + let value = self.preview_plain(normalized); match (value, &self.value_to_string) { (v, Some(f)) => f(v), (true, None) => String::from("On"), @@ -324,7 +320,7 @@ impl Param for BoolParam { None => Some(string.eq_ignore_ascii_case("true") || string.eq_ignore_ascii_case("on")), }?; - Some(if value { 1.0 } else { 0.0 }) + Some(self.preview_normalized(value)) } fn preview_normalized(&self, plain: Self::Plain) -> f32 {