Struct nannou_audio::stream::Stream
source · pub struct Stream<M> { /* private fields */ }
Expand description
A clone-able handle around an audio stream.
Implementations§
source§impl<M> Stream<M>
impl<M> Stream<M>
sourcepub fn play(&self) -> Result<(), PlayStreamError>
pub fn play(&self) -> Result<(), PlayStreamError>
Command the audio device to start processing this stream.
Calling this will activate capturing/rendering, in turn calling the given audio capture/render function.
Has no effect if the stream is already running.
sourcepub fn pause(&self) -> Result<(), PauseStreamError>
pub fn pause(&self) -> Result<(), PauseStreamError>
Command the audio device to stop processing this stream.
Calling this will pause rendering/capturing.
Has no effect is the stream was already paused.
sourcepub fn is_playing(&self) -> bool
pub fn is_playing(&self) -> bool
Whether or not the stream is currently playing.
sourcepub fn send<F>(
&self,
update: F
) -> Result<(), SendError<Box<dyn FnMut(&mut M) + Send + 'static>>>
pub fn send<F>( &self, update: F ) -> Result<(), SendError<Box<dyn FnMut(&mut M) + Send + 'static>>>
Send the given model update to the audio thread to be applied ASAP.
If the audio is currently rendering, the update will be applied immediately after the function call completes.
If the stream is currently paused, the update will be applied immediately.
Note: This function will be applied on the real-time audio thread so users should avoid performing any kind of I/O, locking, blocking, (de)allocations or anything that may run for an indeterminate amount of time.
sourcepub fn cpal_config(&self) -> &StreamConfig
pub fn cpal_config(&self) -> &StreamConfig
The config with which the inner CPAL stream was created.
This should match the actual stream config that is running. If not, there may be a bug
in CPAL. However, note that if the sample_format
does not match, this just means that
nannou
is doing a conversion behind the scenes as the hardware itself does not support
the target format.