Struct Convolution Transition Control
pub struct ConvolutionTransitionControl<E: TransitionEngine> { /* private fields */ }Expand description
Unique control/worker endpoint. Prepare engines, offer them, and take or drop
returned engines here, never on the audio thread. Send when the engine is.
Implementations§
§impl<E: TransitionEngine> ConvolutionTransitionControl<E>
impl<E: TransitionEngine> ConvolutionTransitionControl<E>
pub fn offer(&mut self, engine: Box<E>) -> Result<u64, TransitionOfferError<E>>
pub fn offer(&mut self, engine: Box<E>) -> Result<u64, TransitionOfferError<E>>
Offer an already-prepared engine. Channel count, maximum frames and (under
LatencyPolicy::RequireEqual) latency are checked here; a refused engine
is returned unchanged. Success returns the proposal’s sequence (1, 2, …).
The engine should have fresh history; it is not reset on handoff. Under
AlignmentPolicy::DelayLower the latency difference is checked by the
audio endpoint at the start boundary instead, against the engine current
at that time.
Ok means “queued in the handoff”, not “will play”: a queued proposal can
later be refused or superseded, and if the audio endpoint is dropped after
the abandonment check it is freed with the queue.
pub fn has_pending(&self) -> bool
pub fn has_pending(&self) -> bool
Whether the one-slot handoff currently holds an untaken proposal.
pub fn take_returned(&mut self) -> Option<ReturnedEngine<E>>
pub fn take_returned(&mut self) -> Option<ReturnedEngine<E>>
Take one returned engine for disposal, or for reuse after calling the
engine’s own reset (retired engines keep their history).
pub fn reclaim(&mut self) -> usize
pub fn reclaim(&mut self) -> usize
Drop up to TRANSITION_RETURN_CAPACITY returned engines on this thread.
pub fn take_report(&mut self) -> Option<TransitionReport>
pub fn take_report(&mut self) -> Option<TransitionReport>
Take one audio-side report.
pub fn options(&self) -> TransitionOptions
pub fn options(&self) -> TransitionOptions
Fixed configuration.