pub struct AudioRouter { /* private fields */ }Expand description
Registry and dispatcher for audio placement sites.
Implementations§
Source§impl AudioRouter
impl AudioRouter
Sourcepub fn register(&mut self, site: Arc<dyn AudioSite>)
pub fn register(&mut self, site: Arc<dyn AudioSite>)
Registers a local modeled site by its stable key.
Provider loading uses Self::register_owned so duplicate site keys can
be reported as load errors instead of silently replacing an owner.
Sourcepub fn register_owned(
&mut self,
owner: Symbol,
site: Arc<dyn AudioSite>,
) -> Result<()>
pub fn register_owned( &mut self, owner: Symbol, site: Arc<dyn AudioSite>, ) -> Result<()>
Registers a provider-owned site by its stable key.
Sourcepub fn reload_owned(
&mut self,
owner: Symbol,
site: Arc<dyn AudioSite>,
) -> Result<()>
pub fn reload_owned( &mut self, owner: Symbol, site: Arc<dyn AudioSite>, ) -> Result<()>
Explicitly reloads a provider-owned site, replacing only that owner’s row.
Sourcepub fn unregister_owner(&mut self, owner: &Symbol) -> usize
pub fn unregister_owner(&mut self, owner: &Symbol) -> usize
Removes every site owned by owner, returning the removed row count.
Sourcepub fn site(&self, key: &AudioSiteKey) -> Option<&Arc<dyn AudioSite>>
pub fn site(&self, key: &AudioSiteKey) -> Option<&Arc<dyn AudioSite>>
Returns an audio site by key.
Sourcepub fn site_owner(&self, key: &AudioSiteKey) -> Option<&Symbol>
pub fn site_owner(&self, key: &AudioSiteKey) -> Option<&Symbol>
Returns the provider owner for a registered audio site.
Sourcepub fn registered_sites(&self) -> impl Iterator<Item = &RegisteredAudioSite>
pub fn registered_sites(&self) -> impl Iterator<Item = &RegisteredAudioSite>
Iterates over registered audio site rows.
Sourcepub fn site_keys(&self) -> impl Iterator<Item = &AudioSiteKey>
pub fn site_keys(&self) -> impl Iterator<Item = &AudioSiteKey>
Iterates over registered audio site keys.
Sourcepub fn sites_by_capability(
&self,
min_channels_out: u16,
preferred_rates: &[u32],
) -> Vec<AudioSiteKey>
pub fn sites_by_capability( &self, min_channels_out: u16, preferred_rates: &[u32], ) -> Vec<AudioSiteKey>
Returns site keys whose device cards satisfy the requested output shape.
Sourcepub fn resolve_or_modeled(
&self,
key: &AudioSiteKey,
modeled: &AudioSiteKey,
) -> Result<AudioSiteKey>
pub fn resolve_or_modeled( &self, key: &AudioSiteKey, modeled: &AudioSiteKey, ) -> Result<AudioSiteKey>
Resolves key to a registered site, or returns the modeled fallback key.
Missing native providers are treated as a placement miss rather than an error when the modeled site is available.
Sourcepub fn open_placement_checked(
&self,
cx: &mut Cx,
request: AudioPlacementRequest,
) -> Result<HostOpenStream>
pub fn open_placement_checked( &self, cx: &mut Cx, request: AudioPlacementRequest, ) -> Result<HostOpenStream>
Opens a placement request through its registered audio site after checking authority and recording the declared device effects.
Sourcepub fn open_placement(
&self,
request: AudioPlacementRequest,
) -> Result<HostOpenStream>
pub fn open_placement( &self, request: AudioPlacementRequest, ) -> Result<HostOpenStream>
Opens a placement request through its registered audio site via the site-level compatibility dispatch path.
Runtime and public host opens should use Self::open_placement_checked
so the request’s authority and device effects are handled first.