#[repr(C)]pub struct Map { /* private fields */ }
Expand description
A channel map which can be used to attach labels to specific channels of a stream.
These values are relevant for conversion and mixing of streams.
Implementations§
Source§impl Map
impl Map
Sourcepub const CHANNELS_MAX: u8 = 32u8
pub const CHANNELS_MAX: u8 = 32u8
Maximum number of allowed channels.
Sourcepub fn new_from_string(s: &str) -> Result<Self, ()>
pub fn new_from_string(s: &str) -> Result<Self, ()>
Sourcepub fn init(&mut self) -> &mut Self
pub fn init(&mut self) -> &mut Self
Initializes the specified channel map and returns a pointer to it.
The map will have a defined state but is_valid()
will fail for it.
Sourcepub fn init_mono(&mut self) -> &mut Self
pub fn init_mono(&mut self) -> &mut Self
Initializes the specified channel map for monaural audio and returns a pointer to it.
Sourcepub fn init_stereo(&mut self) -> &mut Self
pub fn init_stereo(&mut self) -> &mut Self
Initializes the specified channel map for stereophonic audio and returns a pointer to it.
Sourcepub fn init_auto(&mut self, channels: u8, def: MapDef) -> Option<&mut Self>
pub fn init_auto(&mut self, channels: u8, def: MapDef) -> Option<&mut Self>
Initializes the specified channel map for the specified number of channels using default labels and returns a pointer to it.
This call will fail (return None
) if there is no default channel map known for this
specific number of channels and mapping.
Sourcepub fn init_extend(&mut self, channels: u8, def: MapDef) -> &mut Self
pub fn init_extend(&mut self, channels: u8, def: MapDef) -> &mut Self
Similar to init_auto()
but instead of failing if no default mapping is
known with the specified parameters it will synthesize a mapping based on a known mapping
with fewer channels and fill up the rest with AUX0…AUX31 channels.
Sourcepub fn set_len(&mut self, channels: u8)
pub fn set_len(&mut self, channels: u8)
Sets the number of active channels.
Positions for up to Self::CHANNELS_MAX
channels can be held. This sets the portion of
the internal array considered “active” and thus available for reading/writing (i.e. when
borrowing self
as a slice).
Panics if the number of channels specified is greater than Self::CHANNELS_MAX
.
Sourcepub fn get_mut(&mut self) -> &mut [Position]
pub fn get_mut(&mut self) -> &mut [Position]
Gets a mutable slice of the set of “active” channels.
Sourcepub fn is_compatible_with_sample_spec(&self, ss: &Spec) -> bool
pub fn is_compatible_with_sample_spec(&self, ss: &Spec) -> bool
Checks whether or not the specified map is compatible with the specified sample spec.
Sourcepub fn is_superset_of(&self, of: &Self) -> bool
pub fn is_superset_of(&self, of: &Self) -> bool
Checks whether every channel defined in of
is also defined in self.
Sourcepub fn can_balance(&self) -> bool
pub fn can_balance(&self) -> bool
Checks whether or not it makes sense to apply a volume “balance” with this mapping, i.e. if there are left/right channels available.
Sourcepub fn can_fade(&self) -> bool
pub fn can_fade(&self) -> bool
Checks whether or not it makes sense to apply a volume “fade” (i.e. “balance” between front and rear) with this mapping, i.e. if there are front/rear channels available.
Sourcepub fn can_lfe_balance(&self) -> bool
Available on crate feature pa_v8
only.
pub fn can_lfe_balance(&self) -> bool
pa_v8
only.Checks whether or not it makes sense to apply a volume “LFE balance” (i.e. “balance” between LFE and non-LFE channels) with this mapping, i.e. if there are LFE and non-LFE channels available.
Sourcepub fn to_name(&self) -> Option<Cow<'static, str>>
pub fn to_name(&self) -> Option<Cow<'static, str>>
Tries to find a well-known channel mapping name for this channel mapping, i.e. “stereo”,
“surround-71” and so on. This name can be parsed with
new_from_string()
.
Sourcepub fn to_pretty_name(&self) -> Option<String>
pub fn to_pretty_name(&self) -> Option<String>
Similar to to_name()
, but returning prettier, human readable text labels,
i.e. “Stereo”, “Surround 7.1” and so on.
Sourcepub fn has_position(&self, p: Position) -> bool
pub fn has_position(&self, p: Position) -> bool
Checks whether or not the specified channel position is available at least once in the map.
Sourcepub fn get_mask(&self) -> PositionMask
pub fn get_mask(&self) -> PositionMask
Generates a bit mask from a map.