#[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 EventListImplementations§
Source§impl<'a> ProcessContext<'a>
impl<'a> ProcessContext<'a>
pub fn new( transport: &'a TransportInfo, sample_rate: f64, block_size: usize, output_events: &'a mut EventList, ) -> Self
Sourcepub fn with_params(self, f: &'a dyn Fn(u32) -> f64) -> Self
pub fn with_params(self, f: &'a dyn Fn(u32) -> f64) -> Self
Set the parameter lookup callback.
Sourcepub fn with_meters(self, f: &'a dyn Fn(u32, f32)) -> Self
pub fn with_meters(self, f: &'a dyn Fn(u32, f32)) -> Self
Set the meter reporting callback.
Sourcepub fn param(&self, id: u32) -> Option<f64>
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”.
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more