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§
Required Methods§
Sourcefn num_output_channels(
config: Option<&<Self::AudioNode as AudioNode>::Configuration>,
) -> NonZeroChannelCount
fn num_output_channels( config: Option<&<Self::AudioNode as AudioNode>::Configuration>, ) -> NonZeroChannelCount
Return the number of output channels for the given configuration.
Sourcefn params_stopped(params: &Self::AudioNode) -> bool
fn params_stopped(params: &Self::AudioNode) -> bool
Return true if the given parameters signify that the sequence is stopped,
false otherwise.
Sourcefn node_is_stopped<B: AudioBackend>(
node_id: NodeID,
cx: &FirewheelCtx<B>,
) -> Result<bool, PoolError>
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.
Sourcefn worker_score<B: AudioBackend>(
params: &Self::AudioNode,
node_id: NodeID,
cx: &mut FirewheelCtx<B>,
) -> Result<u64, PoolError>
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.
Sourcefn diff<B: AudioBackend>(
baseline: &Self::AudioNode,
new: &Self::AudioNode,
event_queue: &mut ContextQueue<'_, B>,
)
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.
Sourcefn mark_playing<B: AudioBackend>(
node_id: NodeID,
cx: &mut FirewheelCtx<B>,
) -> Result<(), PoolError>
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.
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.