Trait Transition Engine
pub trait TransitionEngine:
Sealed
+ Send
+ 'static {
type Sample: TransitionSample;
// Required methods
fn transition_channels(&self) -> usize;
fn transition_maximum_frames(&self) -> usize;
fn transition_latency(&self) -> usize;
fn transition_tail(&self) -> usize;
fn transition_process(
&mut self,
channel: usize,
input: &[Self::Sample],
output: &mut [Self::Sample],
frames: usize,
) -> Result<(), ConvolutionProcessError>;
fn transition_reset(&mut self);
}Expand description
Sealed set of transitionable engines: Convolver32, Convolver64,
ConvolutionBank32 and ConvolutionBank64. A single engine is one channel.
Required Associated Types§
type Sample: TransitionSample
type Sample: TransitionSample
Native sample precision.
Required Methods§
fn transition_channels(&self) -> usize
fn transition_channels(&self) -> usize
Channel count (1 for a single engine).
fn transition_maximum_frames(&self) -> usize
fn transition_maximum_frames(&self) -> usize
Prepared maximum frames per call.
fn transition_latency(&self) -> usize
fn transition_latency(&self) -> usize
Exact algorithmic latency in frames (shared by every bank channel).
fn transition_tail(&self) -> usize
fn transition_tail(&self) -> usize
Largest channel tail in frames, including latency.
fn transition_process(
&mut self,
channel: usize,
input: &[Self::Sample],
output: &mut [Self::Sample],
frames: usize,
) -> Result<(), ConvolutionProcessError>
fn transition_process( &mut self, channel: usize, input: &[Self::Sample], output: &mut [Self::Sample], frames: usize, ) -> Result<(), ConvolutionProcessError>
Process one channel prefix with the engine’s own admission.
fn transition_reset(&mut self)
fn transition_reset(&mut self)
Clear all history.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".