pub struct TelemetryProbe<T: Transcendental, const BUF_SIZE: usize, const QUEUE_CAP: usize> { /* private fields */ }Expand description
Passive telemetry probe that passes audio through while periodically capturing block data + metrics into a shared ring buffer.
§Type Parameters
T— sample type (f32/f64)BUF_SIZE— signal block sizeQUEUE_CAP— capacity of the telemetry ring buffer (must be power of two)
§Design
- 1 audio input → 1 audio output (passthrough, zero-latency)
- Every
intervalblocks, computes peak/RMS/DC and pushes into the queue - Queue is
SpscQueuewith overwrite-oldest policy (default) - Non-blocking: if the queue is full, old entries are overwritten
Implementations§
Source§impl<T: Transcendental, const BUF_SIZE: usize, const QUEUE_CAP: usize> TelemetryProbe<T, BUF_SIZE, QUEUE_CAP>
impl<T: Transcendental, const BUF_SIZE: usize, const QUEUE_CAP: usize> TelemetryProbe<T, BUF_SIZE, QUEUE_CAP>
Sourcepub fn new(
queue: Arc<SpscQueue<TelemetryBlock<T, BUF_SIZE>, QUEUE_CAP>>,
interval: u32,
channel: u32,
node_name: &str,
) -> Self
pub fn new( queue: Arc<SpscQueue<TelemetryBlock<T, BUF_SIZE>, QUEUE_CAP>>, interval: u32, channel: u32, node_name: &str, ) -> Self
Create a new telemetry probe.
§Arguments
queue— sharedSpscQueuefor telemetry outputinterval— send telemetry every N blocks (1 = every block)channel— channel index to report in telemetry framesnode_name— human-readable node name for metadata
Sourcepub fn queue(&self) -> &Arc<SpscQueue<TelemetryBlock<T, BUF_SIZE>, QUEUE_CAP>>
pub fn queue(&self) -> &Arc<SpscQueue<TelemetryBlock<T, BUF_SIZE>, QUEUE_CAP>>
Get a reference to the shared telemetry queue.
Trait Implementations§
Source§impl<T: Transcendental, const BUF_SIZE: usize, const QUEUE_CAP: usize> Node<T, BUF_SIZE> for TelemetryProbe<T, BUF_SIZE, QUEUE_CAP>
impl<T: Transcendental, const BUF_SIZE: usize, const QUEUE_CAP: usize> Node<T, BUF_SIZE> for TelemetryProbe<T, BUF_SIZE, QUEUE_CAP>
Source§fn metadata(&self) -> NodeMetadata
fn metadata(&self) -> NodeMetadata
Get node metadata
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 node_type_id(&self) -> NodeTypeIdwhere
Self: Sized + 'static,
fn node_type_id(&self) -> NodeTypeIdwhere
Self: Sized + 'static,
Get the node’s type ID
Source§fn apply_set_parameter(
&mut self,
cmd: &SetParameter,
) -> Result<(), ProcessError>
fn apply_set_parameter( &mut self, cmd: &SetParameter, ) -> Result<(), ProcessError>
Apply a
SetParameter command to this node. Read moreSource§fn resolve_resources(&mut self, _resources: &mut ResourceRegistry<T>)
fn resolve_resources(&mut self, _resources: &mut ResourceRegistry<T>)
Resolve named shared resources (tape loops, etc.) from the registry,
acquiring the capability handle matching this node’s role.
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 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§impl<T: Transcendental, const BUF_SIZE: usize, const QUEUE_CAP: usize> Processor<T, BUF_SIZE> for TelemetryProbe<T, BUF_SIZE, QUEUE_CAP>
impl<T: Transcendental, const BUF_SIZE: usize, const QUEUE_CAP: usize> Processor<T, BUF_SIZE> for TelemetryProbe<T, BUF_SIZE, QUEUE_CAP>
Source§fn process(
&mut self,
_ctx: &RenderContext,
signal_inputs: &[&[T; BUF_SIZE]],
_control_inputs: &[T],
_clock_inputs: &[RenderContext],
_feedback_inputs: &[&[T; BUF_SIZE]],
) -> ProcessResult<()>
fn process( &mut self, _ctx: &RenderContext, signal_inputs: &[&[T; BUF_SIZE]], _control_inputs: &[T], _clock_inputs: &[RenderContext], _feedback_inputs: &[&[T; BUF_SIZE]], ) -> ProcessResult<()>
Process a block of signal Read more
Auto Trait Implementations§
impl<T, const BUF_SIZE: usize, const QUEUE_CAP: usize> !RefUnwindSafe for TelemetryProbe<T, BUF_SIZE, QUEUE_CAP>
impl<T, const BUF_SIZE: usize, const QUEUE_CAP: usize> !UnwindSafe for TelemetryProbe<T, BUF_SIZE, QUEUE_CAP>
impl<T, const BUF_SIZE: usize, const QUEUE_CAP: usize> Freeze for TelemetryProbe<T, BUF_SIZE, QUEUE_CAP>where
T: Freeze,
impl<T, const BUF_SIZE: usize, const QUEUE_CAP: usize> Send for TelemetryProbe<T, BUF_SIZE, QUEUE_CAP>
impl<T, const BUF_SIZE: usize, const QUEUE_CAP: usize> Sync for TelemetryProbe<T, BUF_SIZE, QUEUE_CAP>
impl<T, const BUF_SIZE: usize, const QUEUE_CAP: usize> Unpin for TelemetryProbe<T, BUF_SIZE, QUEUE_CAP>where
T: Unpin,
impl<T, const BUF_SIZE: usize, const QUEUE_CAP: usize> UnsafeUnpin for TelemetryProbe<T, BUF_SIZE, QUEUE_CAP>where
T: UnsafeUnpin,
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