Skip to main content

PoolableNode

Trait PoolableNode 

Source
pub trait PoolableNode {
    type AudioNode: AudioNode + Clone + 'static;

    // Required methods
    fn num_output_channels(
        config: Option<&<Self::AudioNode as AudioNode>::Configuration>,
    ) -> NonZeroChannelCount;
    fn params_stopped(params: &Self::AudioNode) -> bool;
    fn node_is_stopped<B: AudioBackend>(
        node_id: NodeID,
        cx: &FirewheelCtx<B>,
    ) -> Result<bool, PoolError>;
    fn worker_score<B: AudioBackend>(
        params: &Self::AudioNode,
        node_id: NodeID,
        cx: &mut FirewheelCtx<B>,
    ) -> Result<u64, PoolError>;
    fn diff<B: AudioBackend>(
        baseline: &Self::AudioNode,
        new: &Self::AudioNode,
        event_queue: &mut ContextQueue<'_, B>,
    );
    fn mark_playing<B: AudioBackend>(
        node_id: NodeID,
        cx: &mut FirewheelCtx<B>,
    ) -> Result<(), PoolError>;
    fn pause(params: &mut Self::AudioNode);
    fn resume(params: &mut Self::AudioNode);
    fn stop(params: &mut Self::AudioNode);
}
Expand description

A trait describing the first node in an AudioNodePool.

Required Associated Types§

Source

type AudioNode: AudioNode + Clone + 'static

The node parameters

Required Methods§

Source

fn num_output_channels( config: Option<&<Self::AudioNode as AudioNode>::Configuration>, ) -> NonZeroChannelCount

Return the number of output channels for the given configuration.

Source

fn params_stopped(params: &Self::AudioNode) -> bool

Return true if the given parameters signify that the sequence is stopped, false otherwise.

Source

fn node_is_stopped<B: AudioBackend>( node_id: NodeID, cx: &FirewheelCtx<B>, ) -> Result<bool, PoolError>

Return true if the node state of the given node is stopped.

Return an error if the given node_id is invalid.

Source

fn worker_score<B: AudioBackend>( params: &Self::AudioNode, node_id: NodeID, cx: &mut FirewheelCtx<B>, ) -> Result<u64, PoolError>

Return a score of how ready this node is to accept new work.

The worker with the highest worker score will be chosen for the new work.

Return an error if the given node_id is invalid.

Source

fn diff<B: AudioBackend>( baseline: &Self::AudioNode, new: &Self::AudioNode, event_queue: &mut ContextQueue<'_, B>, )

Diff the new parameters and push the changes into the event queue.

Source

fn mark_playing<B: AudioBackend>( node_id: NodeID, cx: &mut FirewheelCtx<B>, ) -> Result<(), PoolError>

Notify the node state that a sequence is playing.

This is used to account for the delay between sending an event to the node and the node receiving the event.

Return an error if the given node_id is invalid.

Source

fn pause(params: &mut Self::AudioNode)

Pause the sequence in the node parameters

Source

fn resume(params: &mut Self::AudioNode)

Resume the sequence in the node parameters

Source

fn stop(params: &mut Self::AudioNode)

Stop the sequence in the node parameters

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§