Skip to main content

Source

Trait Source 

Source
pub trait Source<T: Transcendental, const BUF_SIZE: usize>: Node<T, BUF_SIZE> {
    // Required method
    fn generate(
        &mut self,
        clock: &ClockTick,
        control_inputs: &[T],
        clock_inputs: &[ClockTick],
    ) -> ProcessResult<()>;

    // Provided methods
    fn num_signal_outputs(&self) -> usize { ... }
    fn num_control_inputs(&self) -> usize { ... }
    fn num_clock_inputs(&self) -> usize { ... }
}
Expand description

Active source of signals

Sources generate signal from internal state. They have no signal inputs, but may have control and clock inputs for modulation.

Required Methods§

Source

fn generate( &mut self, clock: &ClockTick, control_inputs: &[T], clock_inputs: &[ClockTick], ) -> ProcessResult<()>

Generate the next block of signal

§Arguments
  • clock - Current clock tick
  • control_inputs - Control signal values (one per control input)
  • clock_inputs - Clock signal values (one per clock input)

The source writes output samples into its own output port buffers, accessible via self.output_port_mut(index).

Provided Methods§

Source

fn num_signal_outputs(&self) -> usize

Number of signal outputs (default 1)

Source

fn num_control_inputs(&self) -> usize

Number of control inputs (default 0)

Source

fn num_clock_inputs(&self) -> usize

Number of clock inputs (default 0)

Trait Implementations§

Source§

impl<T, const BUF_SIZE: usize> Processable<T, BUF_SIZE> for Box<dyn Source<T, BUF_SIZE>>
where T: Transcendental,

Source§

fn process_block(&mut self, ctx: &mut ProcessContext<'_>) -> ProcessResult<()>

Process one block of signal samples. Read more

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§