pub enum NodeVariant<T: Transcendental, const BUF_SIZE: usize> {
Source(Box<dyn Source<T, BUF_SIZE>>),
Processor(Box<dyn Processor<T, BUF_SIZE>>),
Router(Box<dyn Router<T, BUF_SIZE>>),
Sink(Box<dyn Sink<T, BUF_SIZE>>),
}Expand description
A type-erased node that wraps any of the four node roles.
Dispatches process_block and Node methods to the inner node.
Variants§
Source(Box<dyn Source<T, BUF_SIZE>>)
Signal source node (generates audio).
Processor(Box<dyn Processor<T, BUF_SIZE>>)
Signal processor node (processes audio in-place).
Router(Box<dyn Router<T, BUF_SIZE>>)
Signal router node (routes signals between ports).
Sink(Box<dyn Sink<T, BUF_SIZE>>)
Signal sink node (consumes audio).
Implementations§
Source§impl<T: Transcendental, const BUF_SIZE: usize> NodeVariant<T, BUF_SIZE>
impl<T: Transcendental, const BUF_SIZE: usize> NodeVariant<T, BUF_SIZE>
Sourcepub fn set_telemetry_tx(&mut self, tx: TelemetryTx)
pub fn set_telemetry_tx(&mut self, tx: TelemetryTx)
Set the telemetry sender for the wrapped node.
Trait Implementations§
Source§impl<T: Transcendental, const BUF_SIZE: usize> Node<T, BUF_SIZE> for NodeVariant<T, BUF_SIZE>
impl<T: Transcendental, const BUF_SIZE: usize> Node<T, BUF_SIZE> for NodeVariant<T, BUF_SIZE>
Source§fn node_type_id(&self) -> NodeTypeIdwhere
Self: 'static + Sized,
fn node_type_id(&self) -> NodeTypeIdwhere
Self: 'static + Sized,
Get the node’s type ID
Source§fn metadata(&self) -> NodeMetadata
fn metadata(&self) -> NodeMetadata
Get node metadata
Source§fn resolve_resources(&mut self, buffers: &BufferRegistry<T>)
fn resolve_resources(&mut self, buffers: &BufferRegistry<T>)
Resolve named resource buffers (tape loops, etc.) from the registry.
Source§fn as_io_node_mut(&mut self) -> Option<&mut dyn IoNode<T, BUF_SIZE>>
fn as_io_node_mut(&mut self) -> Option<&mut dyn IoNode<T, BUF_SIZE>>
Downcast to
IoNode if this node implements it.Source§fn as_active_node_mut(&mut self) -> Option<&mut dyn ActiveNode<T, BUF_SIZE>>
fn as_active_node_mut(&mut self) -> Option<&mut dyn ActiveNode<T, BUF_SIZE>>
Downcast to
ActiveNode if this node implements it.Source§fn get_parameter(&self, id: &ParameterId) -> Option<ParamValue>
fn get_parameter(&self, id: &ParameterId) -> Option<ParamValue>
Get the value of a parameter
Source§fn set_parameter(
&mut self,
id: &ParameterId,
value: ParamValue,
) -> ProcessResult<()>
fn set_parameter( &mut self, id: &ParameterId, value: ParamValue, ) -> ProcessResult<()>
Set the value of a parameter
Source§fn input_port_mut(&mut self, index: usize) -> Option<&mut Port<T, BUF_SIZE>>
fn input_port_mut(&mut self, index: usize) -> Option<&mut Port<T, BUF_SIZE>>
Get mutable input port by index
Source§fn output_port_mut(&mut self, index: usize) -> Option<&mut Port<T, BUF_SIZE>>
fn output_port_mut(&mut self, index: usize) -> Option<&mut Port<T, BUF_SIZE>>
Get mutable output port by index
Source§fn control_port_mut(&mut self, index: usize) -> Option<&mut Port<T, BUF_SIZE>>
fn control_port_mut(&mut self, index: usize) -> Option<&mut Port<T, BUF_SIZE>>
Get mutable control port by index
Source§fn num_signal_inputs(&self) -> usize
fn num_signal_inputs(&self) -> usize
Number of signal input ports
Source§fn num_signal_outputs(&self) -> usize
fn num_signal_outputs(&self) -> usize
Number of signal output ports
Source§fn num_control_inputs(&self) -> usize
fn num_control_inputs(&self) -> usize
Number of control input ports
Source§fn num_control_outputs(&self) -> usize
fn num_control_outputs(&self) -> usize
Number of control output ports
Source§fn num_clock_inputs(&self) -> usize
fn num_clock_inputs(&self) -> usize
Number of clock input ports
Source§fn num_clock_outputs(&self) -> usize
fn num_clock_outputs(&self) -> usize
Number of clock output ports
Source§fn num_feedback_ports(&self) -> usize
fn num_feedback_ports(&self) -> usize
Number of feedback ports
Source§fn apply_set_parameter(&mut self, cmd: &SetParameter) -> ProcessResult<()>
fn apply_set_parameter(&mut self, cmd: &SetParameter) -> ProcessResult<()>
Apply a
SetParameter command to this node. Read moreSource§fn num_inputs(&self) -> usize
fn num_inputs(&self) -> usize
Total number of input ports
Source§fn num_outputs(&self) -> usize
fn num_outputs(&self) -> usize
Total number of output ports
Source§fn set_telemetry_tx(&mut self, _tx: TelemetryTx)
fn set_telemetry_tx(&mut self, _tx: TelemetryTx)
Attach a telemetry sender to this node. Read more
Source§impl<T: Transcendental, const BUF_SIZE: usize> Processable<T, BUF_SIZE> for NodeVariant<T, BUF_SIZE>
impl<T: Transcendental, const BUF_SIZE: usize> Processable<T, BUF_SIZE> for NodeVariant<T, BUF_SIZE>
Source§fn process_block(&mut self, ctx: &mut ProcessContext<'_>) -> ProcessResult<()>
fn process_block(&mut self, ctx: &mut ProcessContext<'_>) -> ProcessResult<()>
Process one block of audio samples. Read more
Auto Trait Implementations§
impl<T, const BUF_SIZE: usize> Freeze for NodeVariant<T, BUF_SIZE>
impl<T, const BUF_SIZE: usize> !RefUnwindSafe for NodeVariant<T, BUF_SIZE>
impl<T, const BUF_SIZE: usize> !Send for NodeVariant<T, BUF_SIZE>
impl<T, const BUF_SIZE: usize> !Sync for NodeVariant<T, BUF_SIZE>
impl<T, const BUF_SIZE: usize> Unpin for NodeVariant<T, BUF_SIZE>
impl<T, const BUF_SIZE: usize> UnsafeUnpin for NodeVariant<T, BUF_SIZE>
impl<T, const BUF_SIZE: usize> !UnwindSafe for NodeVariant<T, BUF_SIZE>
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