voicemeeter\interface\parameters/fx.rs
1//! Fx
2use super::*;
3
4/// Fx parameters
5pub struct VoicemeeterFx<'a> {
6 remote: &'a VoicemeeterRemote,
7}
8
9// Parameter Name Value Range Remark Ver.
10// Fx.Reverb.On 0 (off) or 1 (on) Switch On/Off 3
11// Fx.Reverb.AB 0 (A) or 1 (B) Change A/B Mem 3
12// Fx.Delay.On 0 (off) or 1 (on) Switch On/Off 3
13// Fx.Delay.AB 0 (A) or 1 (B) Change A/B Mem 3
14
15impl<'a> VoicemeeterFx<'a> {
16 #[doc(hidden)]
17 pub fn new(remote: &'a VoicemeeterRemote) -> Self {
18 Self { remote }
19 }
20
21 /// Get the identifier for an option: `Fx.{dot}`
22 pub fn param(&self, dot: impl Display) -> Cow<'static, ParameterNameRef> {
23 Cow::Owned(format!("{FX}.{dot}").into())
24 }
25
26 /// Reverb status
27 pub fn reverb_on(&self) -> BoolParameter<'_> {
28 BoolParameter::new(self.param("Reverb.On"), self.remote)
29 }
30 /// Reverb AB choice
31 pub fn reverb_ab(&self) -> BoolParameter<'_> {
32 BoolParameter::new(self.param("Reverb.AB"), self.remote)
33 }
34 /// Delay status
35 pub fn delay_on(&self) -> BoolParameter<'_> {
36 BoolParameter::new(self.param("Delay.On"), self.remote)
37 }
38 /// Delay AB choice
39 pub fn delay_ab(&self) -> BoolParameter<'_> {
40 BoolParameter::new(self.param("Delay.AB"), self.remote)
41 }
42}