Skip to main content

ProcessContext

Struct ProcessContext 

Source
#[non_exhaustive]
pub struct ProcessContext<'a> { pub transport: &'a TransportInfo, pub sample_rate: f64, pub block_size: usize, pub output_events: &'a mut EventList, /* private fields */ }
Expand description

Per-block context handed to process(). Construct via Self::new + the with_* builders. Marked #[non_exhaustive] so adding host-populated fields in future (e.g. host_latency, bus_routing) isn’t a SemVer break for downstream pre-1.0 callers.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§transport: &'a TransportInfo§sample_rate: f64§block_size: usize§output_events: &'a mut EventList

Implementations§

Source§

impl<'a> ProcessContext<'a>

Source

pub fn new( transport: &'a TransportInfo, sample_rate: f64, block_size: usize, output_events: &'a mut EventList, ) -> Self

Source

pub fn with_params(self, f: &'a dyn Fn(u32) -> f64) -> Self

Set the parameter lookup callback.

Source

pub fn with_meters(self, f: &'a dyn Fn(u32, f32)) -> Self

Set the meter reporting callback.

Source

pub fn param(&self, id: u32) -> Option<f64>

Read a parameter’s plain value by ID.

Returns None when no params callback is wired up (e.g. when a plugin runs under the bare test driver without a with_params closure). Callers that always run inside a real format wrapper can .unwrap_or_default(). Distinguishing “no callback” from “value is zero” lets test harnesses notice when they forgot to wire up params rather than masking the misconfiguration as “host set the value to zero”.

Source

pub fn set_meter(&self, id: impl Into<u32>, value: f32)

Report a meter value (0.0 to 1.0).

Auto Trait Implementations§

§

impl<'a> Freeze for ProcessContext<'a>

§

impl<'a> !RefUnwindSafe for ProcessContext<'a>

§

impl<'a> !Send for ProcessContext<'a>

§

impl<'a> !Sync for ProcessContext<'a>

§

impl<'a> Unpin for ProcessContext<'a>

§

impl<'a> UnsafeUnpin for ProcessContext<'a>

§

impl<'a> !UnwindSafe for ProcessContext<'a>

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> 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, 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.