pub struct MixerHandle { /* private fields */ }Expand description
A cheaply-cloneable handle for adding or removing an AudioMixer’s
input sources while the pipeline is running — the mirror image of
crate::elements::TeeHandle: Tee lets you attach/detach outputs
from another thread; this lets you attach/detach inputs. Keeps only a
Weak reference for the same reason TeeHandle does: retaining a
handle after the mixer’s own pipeline finishes must not keep its
internal state alive forever, and every operation becomes a harmless
no-op once the mixer is gone.
Implementations§
Source§impl MixerHandle
impl MixerHandle
Sourcepub fn add_source(&self, name: impl Into<String>) -> Option<Box<dyn Sink>>
pub fn add_source(&self, name: impl Into<String>) -> Option<Box<dyn Sink>>
Registers a new input under name and returns a Sink to use as
a detached branch terminal. Build and attach it inside that source’s
own Pipeline::new wiring closure — a
different pipeline/thread than this mixer’s own, which is exactly
the point). None once the mixer itself is gone. Calling this
again with a name already in use replaces that input outright
(whatever it had buffered is dropped) rather than erroring — same
“just do what was asked” spirit as HashMap::insert. A sink from
the previous registration then becomes inert: its data, Eos, and
Stop cannot affect the replacement sharing its name.
The input endpoint appears in the upstream source pipeline’s graph
when attached through crate::element::Context::attach. The graph
intentionally does not invent a cross-pipeline edge to the mixer.
Sourcepub fn remove_source(&self, name: &str)
pub fn remove_source(&self, name: &str)
Drops name’s input immediately, discarding whatever it had
buffered — a no-op if name isn’t currently registered, or the
mixer is gone.
pub fn source_count(&self) -> usize
Trait Implementations§
Source§impl Clone for MixerHandle
impl Clone for MixerHandle
Source§fn clone(&self) -> MixerHandle
fn clone(&self) -> MixerHandle
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more