pub trait AudioNode {
Show 20 methods
// Required methods
fn registration(&self) -> &AudioContextRegistration;
fn channel_config(&self) -> &ChannelConfig;
fn number_of_inputs(&self) -> usize;
fn number_of_outputs(&self) -> usize;
// Provided methods
fn context(&self) -> &ConcreteBaseAudioContext { ... }
fn connect<'a>(&self, dest: &'a dyn AudioNode) -> &'a dyn AudioNode { ... }
fn connect_from_output_to_input<'a>(
&self,
dest: &'a dyn AudioNode,
output: usize,
input: usize,
) -> &'a dyn AudioNode { ... }
fn disconnect(&self) { ... }
fn disconnect_dest(&self, dest: &dyn AudioNode) { ... }
fn disconnect_output(&self, output: usize) { ... }
fn disconnect_dest_from_output(&self, dest: &dyn AudioNode, output: usize) { ... }
fn disconnect_dest_from_output_to_input(
&self,
dest: &dyn AudioNode,
output: usize,
input: usize,
) { ... }
fn channel_count_mode(&self) -> ChannelCountMode { ... }
fn set_channel_count_mode(&self, v: ChannelCountMode) { ... }
fn channel_interpretation(&self) -> ChannelInterpretation { ... }
fn set_channel_interpretation(&self, v: ChannelInterpretation) { ... }
fn channel_count(&self) -> usize { ... }
fn set_channel_count(&self, v: usize) { ... }
fn set_onprocessorerror(
&self,
callback: Box<dyn FnOnce(ErrorEvent) + Send + 'static>,
) { ... }
fn clear_onprocessorerror(&self) { ... }
}
Expand description
This interface represents audio sources, the audio destination, and intermediate processing modules.
These modules can be connected together to form processing graphs for rendering audio to the audio hardware. Each node can have inputs and/or outputs.
Note that the AudioNode is typically constructed together with an AudioWorkletProcessor
(the object that lives the render thread). See the crate::worklet
mod.
Required Methods§
Sourcefn registration(&self) -> &AudioContextRegistration
fn registration(&self) -> &AudioContextRegistration
Handle of the associated BaseAudioContext
.
Only when implementing the AudioNode trait manually, this struct is of any concern.
Sourcefn channel_config(&self) -> &ChannelConfig
fn channel_config(&self) -> &ChannelConfig
Config for up/down-mixing of input channels for this node.
Only when implementing the AudioNode
trait manually, this struct is of any concern.
Sourcefn number_of_inputs(&self) -> usize
fn number_of_inputs(&self) -> usize
The number of inputs feeding into the AudioNode. For source nodes, this will be 0.
Sourcefn number_of_outputs(&self) -> usize
fn number_of_outputs(&self) -> usize
The number of outputs coming out of the AudioNode.
Provided Methods§
Sourcefn context(&self) -> &ConcreteBaseAudioContext
fn context(&self) -> &ConcreteBaseAudioContext
The BaseAudioContext
concrete type which owns this
AudioNode.
Sourcefn connect<'a>(&self, dest: &'a dyn AudioNode) -> &'a dyn AudioNode
fn connect<'a>(&self, dest: &'a dyn AudioNode) -> &'a dyn AudioNode
Connect the output of this AudioNode to the input of another node.
§Panics
This function will panic when
- the AudioContext of the source and destination does not match
Sourcefn connect_from_output_to_input<'a>(
&self,
dest: &'a dyn AudioNode,
output: usize,
input: usize,
) -> &'a dyn AudioNode
fn connect_from_output_to_input<'a>( &self, dest: &'a dyn AudioNode, output: usize, input: usize, ) -> &'a dyn AudioNode
Connect a specific output of this AudioNode to a specific input of another node.
§Panics
This function will panic when
- the AudioContext of the source and destination does not match
- if the input port is out of bounds for the destination node
- if the output port is out of bounds for the source node
Sourcefn disconnect(&self)
fn disconnect(&self)
Disconnects all outgoing connections from the AudioNode.
Sourcefn disconnect_dest(&self, dest: &dyn AudioNode)
fn disconnect_dest(&self, dest: &dyn AudioNode)
Disconnects all outputs of the AudioNode that go to a specific destination AudioNode.
§Panics
This function will panic when
- the AudioContext of the source and destination does not match
- the source node was not connected to the destination node
Sourcefn disconnect_output(&self, output: usize)
fn disconnect_output(&self, output: usize)
Disconnects all outgoing connections at the given output port from the AudioNode.
§Panics
This function will panic when
- if the output port is out of bounds for this node
Sourcefn disconnect_dest_from_output(&self, dest: &dyn AudioNode, output: usize)
fn disconnect_dest_from_output(&self, dest: &dyn AudioNode, output: usize)
Disconnects a specific output of the AudioNode to a specific destination AudioNode
§Panics
This function will panic when
- the AudioContext of the source and destination does not match
- if the output port is out of bounds for the source node
- the source node was not connected to the destination node
Sourcefn disconnect_dest_from_output_to_input(
&self,
dest: &dyn AudioNode,
output: usize,
input: usize,
)
fn disconnect_dest_from_output_to_input( &self, dest: &dyn AudioNode, output: usize, input: usize, )
Disconnects a specific output of the AudioNode to a specific input of some destination AudioNode
§Panics
This function will panic when
- the AudioContext of the source and destination does not match
- if the input port is out of bounds for the destination node
- if the output port is out of bounds for the source node
- the source node was not connected to the destination node
Sourcefn channel_count_mode(&self) -> ChannelCountMode
fn channel_count_mode(&self) -> ChannelCountMode
Represents an enumerated value describing the way channels must be matched between the node’s inputs and outputs.
Sourcefn set_channel_count_mode(&self, v: ChannelCountMode)
fn set_channel_count_mode(&self, v: ChannelCountMode)
Update the channel_count_mode
attribute
Sourcefn channel_interpretation(&self) -> ChannelInterpretation
fn channel_interpretation(&self) -> ChannelInterpretation
Represents an enumerated value describing the meaning of the channels. This interpretation will define how audio up-mixing and down-mixing will happen.
Sourcefn set_channel_interpretation(&self, v: ChannelInterpretation)
fn set_channel_interpretation(&self, v: ChannelInterpretation)
Update the channel_interpretation
attribute
Sourcefn channel_count(&self) -> usize
fn channel_count(&self) -> usize
Represents an integer used to determine how many channels are used when up-mixing and down-mixing connections to any inputs to the node.
Sourcefn set_channel_count(&self, v: usize)
fn set_channel_count(&self, v: usize)
Update the channel_count
attribute
Sourcefn set_onprocessorerror(
&self,
callback: Box<dyn FnOnce(ErrorEvent) + Send + 'static>,
)
fn set_onprocessorerror( &self, callback: Box<dyn FnOnce(ErrorEvent) + Send + 'static>, )
Register callback to run when an unhandled exception occurs in the audio processor.
Note that once a unhandled exception is thrown, the processor will output silence throughout its lifetime.
Only a single event handler is active at any time. Calling this method multiple times will override the previous event handler.
Sourcefn clear_onprocessorerror(&self)
fn clear_onprocessorerror(&self)
Unset the callback to run when an unhandled exception occurs in the audio processor.