conformal_component::parameters

Struct ConstantBufferStates

Source
pub struct ConstantBufferStates<S> { /* private fields */ }
Expand description

Simple implementation of BufferStates trait where every parameter is constant throughout the whole buffer.

This is in general useful for testing or other scenarios where you need to create a BufferStates object outside of a Conformal wrapper.

Implementations§

Source§

impl<S: States> ConstantBufferStates<S>

Source

pub fn new(s: S) -> Self

Create a new ConstantBufferStates object from a States object.

Source§

impl ConstantBufferStates<StatesMap>

Source

pub fn new_override_defaults<'a, S: AsRef<str> + 'a>( infos: impl IntoIterator<Item = InfoRef<'a, S>> + 'a, overrides: &HashMap<&str, InternalValue>, ) -> Self

Create a new ConstantBufferStates object from a list of Infos and overrides.

This creates a ConstantBufferStates with all parameters set to default values for the whole buffer.

Note that if you want to pass this into a synth, you should use Self::new_override_synth_defaults instead.

overrides work exactly as in override_defaults.

§Examples
let infos = vec![
  StaticInfoRef {
    title: "Numeric",
    short_title: "Numeric",
    unique_id: "numeric",
    flags: Default::default(),
    type_specific: TypeSpecificInfoRef::Numeric {
      default: 0.0,
      valid_range: 0.0..=1.0,
      units: None,
    },
  },
];
let overrides = vec![("numeric", InternalValue::Numeric(0.5))].into_iter().collect();
let buffer_states = ConstantBufferStates::new_override_defaults(infos, &overrides);
match buffer_states.get_numeric("numeric") {
  Some(NumericBufferState::Constant(0.5)) => (),
  _ => panic!("Expected constant value of 0.5"),
};
Source

pub fn new_defaults<'a, S: AsRef<str> + 'a>( infos: impl IntoIterator<Item = InfoRef<'a, S>> + 'a, ) -> Self

Create a new ConstantBufferStates object from a list of Infos.

Each parameter in Infos will be set to its default value for the whole buffer.

Note that if you want to pass this into a synth, you should use Self::new_synth_defaults instead.

§Examples
let infos = vec![
  StaticInfoRef {
    title: "Numeric",
    short_title: "Numeric",
    unique_id: "numeric",
    flags: Default::default(),
    type_specific: TypeSpecificInfoRef::Numeric {
      default: 0.0,
      valid_range: 0.0..=1.0,
      units: None,
    },
  },
];

let buffer_states = ConstantBufferStates::new_defaults(infos);
match buffer_states.get_numeric("numeric") {
  Some(NumericBufferState::Constant(0.0)) => (),
  _ => panic!("Expected constant value of 0.0"),
};
Source

pub fn new_override_synth_defaults<'a, 'b: 'a>( infos: impl IntoIterator<Item = InfoRef<'a, &'b str>> + 'a, overrides: &HashMap<&str, InternalValue>, ) -> Self

Create a new ConstantBufferStates object to pass to a synth from a list of Infos and overrides.

This is similar to Self::new_override_defaults, but it also includes the controller parameters that are common to all synths. (crate::synth::CONTROLLER_PARAMETERS).

Thus, this is more appropriate to use if you plan to pass the parameters to a synth.

§Examples
let infos = vec![
  StaticInfoRef {
    title: "Numeric",
    short_title: "Numeric",
    unique_id: "numeric",
    flags: Default::default(),
    type_specific: TypeSpecificInfoRef::Numeric {
      default: 0.0,
      valid_range: 0.0..=1.0,
      units: None,
    },
  },
];
let overrides = vec![
  // You can override declared parameters
  ("numeric", InternalValue::Numeric(0.5)),
  // Or you can override control parameters
  (MOD_WHEEL_PARAMETER, InternalValue::Numeric(0.2)),
].into_iter().collect();

let buffer_states = ConstantBufferStates::new_override_synth_defaults(infos, &overrides);

// Overridden parameters get the values you passed in
match buffer_states.get_numeric("numeric") {
  Some(NumericBufferState::Constant(0.5)) => (),
  _ => panic!("Expected constant value of 0.5"),
};
match buffer_states.get_numeric(MOD_WHEEL_PARAMETER) {
  Some(NumericBufferState::Constant(0.2)) => (),
  _ => panic!("Expected constant value of 0.2"),
};

// Other parameters get their default values
match buffer_states.get_numeric(PITCH_BEND_PARAMETER) {
  Some(NumericBufferState::Constant(0.0)) => (),
  _ => panic!("Expected constant value of 0.0"),
};
Source

pub fn new_synth_defaults<'a, 'b: 'a>( infos: impl IntoIterator<Item = InfoRef<'a, &'b str>> + 'a, ) -> Self

Create a new ConstantBufferStates object to pass to a synth from a list of Infos.

Each parameter in Infos will be set to its default value for the whole buffer.

This is similar to Self::new_defaults, but it also includes the controller parameters that are common to all synths. (crate::synth::CONTROLLER_PARAMETERS).

Thus, this is more appropriate to use if you plan to pass the parameters to a synth.

§Examples
let infos = vec![
  StaticInfoRef {
    title: "Numeric",
    short_title: "Numeric",
    unique_id: "numeric",
    flags: Default::default(),
    type_specific: TypeSpecificInfoRef::Numeric {
      default: 0.0,
      valid_range: 0.0..=1.0,
      units: None,
    },
  },
];

let buffer_states = ConstantBufferStates::new_synth_defaults(infos);
match buffer_states.get_numeric("numeric") {
  Some(NumericBufferState::Constant(0.0)) => (),
  _ => panic!("Expected constant value of 0.0"),
};
match buffer_states.get_numeric(MOD_WHEEL_PARAMETER) {
  Some(NumericBufferState::Constant(0.0)) => (),
  _ => panic!("Expected constant value of 0.0"),
};

Trait Implementations§

Source§

impl<S: States> BufferStates for ConstantBufferStates<S>

Source§

fn get_by_hash( &self, id_hash: IdHash, ) -> Option<BufferState<impl Iterator<Item = PiecewiseLinearCurvePoint> + Clone, impl Iterator<Item = TimedValue<u32>> + Clone, impl Iterator<Item = TimedValue<bool>> + Clone>>

Get the state of a parameter by it’s hashed unique ID. Read more
Source§

fn get( &self, unique_id: &str, ) -> Option<BufferState<impl Iterator<Item = PiecewiseLinearCurvePoint> + Clone, impl Iterator<Item = TimedValue<u32>> + Clone, impl Iterator<Item = TimedValue<bool>> + Clone>>

Get the state of a parameter by it’s unique ID. Read more
Source§

fn numeric_by_hash( &self, param_id: IdHash, ) -> Option<NumericBufferState<impl Iterator<Item = PiecewiseLinearCurvePoint> + Clone>>

Get the state of a numeric parameter by it’s hashed unique ID. Read more
Source§

fn get_numeric( &self, unique_id: &str, ) -> Option<NumericBufferState<impl Iterator<Item = PiecewiseLinearCurvePoint> + Clone>>

Get the state of a numeric parameter by it’s unique ID. Read more
Source§

fn enum_by_hash( &self, param_id: IdHash, ) -> Option<EnumBufferState<impl Iterator<Item = TimedValue<u32>> + Clone>>

Get the state of an enum parameter by it’s hashed unique ID. Read more
Source§

fn get_enum( &self, unique_id: &str, ) -> Option<EnumBufferState<impl Iterator<Item = TimedValue<u32>> + Clone>>

Get the state of an enum parameter by it’s unique ID. Read more
Source§

fn switch_by_hash( &self, param_id: IdHash, ) -> Option<SwitchBufferState<impl Iterator<Item = TimedValue<bool>> + Clone>>

Get the state of a switch parameter by it’s hashed unique ID. Read more
Source§

fn get_switch( &self, unique_id: &str, ) -> Option<SwitchBufferState<impl Iterator<Item = TimedValue<bool>> + Clone>>

Get the state of a switch parameter by it’s unique ID. Read more
Source§

impl<S: Clone> Clone for ConstantBufferStates<S>

Source§

fn clone(&self) -> ConstantBufferStates<S>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<S: Debug> Debug for ConstantBufferStates<S>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<S: Default> Default for ConstantBufferStates<S>

Source§

fn default() -> ConstantBufferStates<S>

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<S> Freeze for ConstantBufferStates<S>
where S: Freeze,

§

impl<S> RefUnwindSafe for ConstantBufferStates<S>
where S: RefUnwindSafe,

§

impl<S> Send for ConstantBufferStates<S>
where S: Send,

§

impl<S> Sync for ConstantBufferStates<S>
where S: Sync,

§

impl<S> Unpin for ConstantBufferStates<S>
where S: Unpin,

§

impl<S> UnwindSafe for ConstantBufferStates<S>
where S: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.