#[non_exhaustive]pub struct ProcessContext<'a> {
pub transport: &'a TransportInfo,
pub process_mode: ProcessMode,
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
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.transport: &'a TransportInfo§process_mode: ProcessModeHow the host is driving audio this block. Tracks host toggles
that don’t force a re-prepare (VST3 kRealtime <-> kPrefetch,
an LV2 freewheel port). A plugin that reallocates for offline
keys off AudioConfig::process_mode at reset instead; this
field is for “may I relax realtime discipline right now?”.
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_process_mode(self, mode: ProcessMode) -> Self
pub fn with_process_mode(self, mode: ProcessMode) -> Self
Set the processing mode for this block. Defaults to
ProcessMode::Realtime; wrappers stamp the live host mode.
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 with_tasks(self, tasks: &'a AnyTaskSpawner) -> Self
pub fn with_tasks(self, tasks: &'a AnyTaskSpawner) -> Self
Install the background-task spawner for this block. The shell
stamps it when the plugin wired tasks: on plugin!.
Sourcepub fn tasks<T: Send + 'static>(&self) -> Option<TaskSpawner<T>>
pub fn tasks<T: Send + 'static>(&self) -> Option<TaskSpawner<T>>
The background-task spawner for task type T, or None if the
plugin declared no tasks: lane of that type. Scheduling with the
returned spawner is wait-free (see
TaskSpawner::try_spawn / TaskSpawner::spawn_coalescing), so
it is safe to call from the audio thread.
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”.