1
0
Fork 0

Avoid more redundancy in parameter handling

This commit is contained in:
Robbert van der Helm 2022-02-13 16:49:29 +01:00
parent 4783535ebb
commit 4481ef0ae9

View file

@ -200,7 +200,7 @@ macro_rules! impl_plainparam {
match value { match value {
Some(plain) => { Some(plain) => {
self.value = plain; self.set_plain_value(plain);
true true
} }
None => false, None => false,
@ -219,7 +219,7 @@ macro_rules! impl_plainparam {
} }
fn normalized_value(&self) -> f32 { fn normalized_value(&self) -> f32 {
self.range.normalize(self.value) self.preview_normalized(self.value)
} }
fn set_normalized_value(&mut self, normalized: f32) { 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 { 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) { match (&self.value_to_string, include_unit) {
(Some(f), true) => format!("{}{}", f(value), self.unit), (Some(f), true) => format!("{}{}", f(value), self.unit),
(Some(f), false) => format!("{}", f(value)), (Some(f), false) => format!("{}", f(value)),
@ -243,7 +243,7 @@ macro_rules! impl_plainparam {
None => string.parse().ok(), None => string.parse().ok(),
}?; }?;
Some(self.range.normalize(value)) Some(self.preview_normalized(value))
} }
fn preview_normalized(&self, plain: Self::Plain) -> f32 { fn preview_normalized(&self, plain: Self::Plain) -> f32 {
@ -279,7 +279,7 @@ impl Param for BoolParam {
match value { match value {
Some(plain) => { Some(plain) => {
self.value = plain; self.set_plain_value(plain);
true true
} }
None => false, None => false,
@ -298,19 +298,15 @@ impl Param for BoolParam {
} }
fn normalized_value(&self) -> f32 { fn normalized_value(&self) -> f32 {
if self.value { self.preview_normalized(self.value)
1.0
} else {
0.0
}
} }
fn set_normalized_value(&mut self, normalized: f32) { 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 { 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) { match (value, &self.value_to_string) {
(v, Some(f)) => f(v), (v, Some(f)) => f(v),
(true, None) => String::from("On"), (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")), 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 { fn preview_normalized(&self, plain: Self::Plain) -> f32 {