diff --git a/plugins/gain/src/lib.rs b/plugins/gain/src/lib.rs index 5105c7ad..b1069edc 100644 --- a/plugins/gain/src/lib.rs +++ b/plugins/gain/src/lib.rs @@ -18,6 +18,7 @@ extern crate nih_plug; use nih_plug::{ + formatters, params::{FloatParam, Params, Range}, plugin::{BufferConfig, BusConfig, Plugin, ProcessStatus, Vst3Plugin}, util, @@ -53,7 +54,7 @@ impl Default for GainParams { }, name: "Gain", unit: " dB", - value_to_string: None, + value_to_string: formatters::f32_rounded(2), string_to_value: None, }, } diff --git a/src/formatters.rs b/src/formatters.rs new file mode 100644 index 00000000..a7a14bb9 --- /dev/null +++ b/src/formatters.rs @@ -0,0 +1,22 @@ +// nih-plug: plugins, but rewritten in Rust +// Copyright (C) 2022 Robbert van der Helm +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Convenience functions for formatting and parsing parameter values in common formats. + +/// Round an `f32` value to always have a specific number of decimal digits. +pub fn f32_rounded(digits: usize) -> Option String>> { + Some(Box::new(move |x| format!("{:.digits$}", x))) +} diff --git a/src/lib.rs b/src/lib.rs index 68ffaaeb..698f4ce6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -14,8 +14,11 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . +// TODO: Once everything is more fleshed out, document the basic usage of this library + #[macro_use] pub mod debug; +pub mod formatters; pub mod params; pub mod plugin; pub mod util;