[][src]Struct libpulse_binding::volume::ChannelVolumes

#[repr(C)]
pub struct ChannelVolumes {
    pub channels: u8,
    pub values: [Volume; 32],
}

A structure encapsulating a per-channel volume

Fields

channels: u8
Deprecated since 2.10.0:

do not access directly, use methods from now on

Number of channels.

values: [Volume; 32]
Deprecated since 2.10.0:

do not access directly, use methods from now on

Per-channel volume.

Methods

impl ChannelVolumes[src]

pub fn init(&mut self) -> &Self[src]

Initializes the specified volume and return a pointer to it.

The sample spec will have a defined state but is_valid will fail for it.

pub fn is_valid(&self) -> bool[src]

Checks if the ChannelVolumes structure is valid.

pub fn len(&self) -> u8[src]

Gets the number of active channels.

pub fn set_len(&mut self, channels: u8)[src]

Sets the number of active channels.

Volumes for up to sample::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 sample::CHANNELS_MAX.

pub fn get(&self) -> &[Volume][src]

Gets an immutable slice of the set of “active” channels.

pub fn get_mut(&mut self) -> &mut [Volume][src]

Gets a mutable slice of the set of “active” channels.

pub fn set(&mut self, channels: u32, v: Volume) -> &Self[src]

Sets the volume of the specified number of channels to the supplied volume.

pub fn reset(&mut self, channels: u32) -> &Self[src]

Sets the volume of the first n channels to VOLUME_NORM.

pub fn mute(&mut self, channels: u32) -> &Self[src]

Sets the volume of the first n channels to VOLUME_MUTED.

pub fn equal_to(&self, to: &Self) -> bool[src]

Deprecated since 2.7.0:

use the PartialEq implementation instead

Checks if self is equal to to.

This checks that the number of channels in self equals the number in to and that the channels volumes in self equal those in to.

pub fn is_muted(&self) -> bool[src]

Checks if all channels are muted.

pub fn is_norm(&self) -> bool[src]

Checks if all channels are at normal volume level.

pub fn avg(&self) -> Volume[src]

Gets the average volume of all channels.

pub fn avg_mask(&self, cm: &Map, mask: Option<PositionMask>) -> Volume[src]

Returns the average volume of all channels that are included in the specified channel map with the specified channel position mask.

If no channel is selected the returned value will be VOLUME_MUTED. If mask is None, has the same effect as passing channelmap::POSITION_MASK_ALL.

pub fn max(&self) -> Volume[src]

Gets the maximum volume of all channels.

pub fn max_mask(&self, cm: &Map, mask: Option<PositionMask>) -> Volume[src]

Gets the maximum volume of all channels that are included in the specified channel map with the specified channel position mask.

If no channel is selected the returned value will be VOLUME_MUTED. If mask is None, has the same effect as passing channelmap::POSITION_MASK_ALL.

pub fn min(&self) -> Volume[src]

Gets the minimum volume of all channels.

pub fn min_mask(&self, cm: &Map, mask: Option<PositionMask>) -> Volume[src]

Gets the minimum volume of all channels that are included in the specified channel map with the specified channel position mask.

If no channel is selected the returned value will be VOLUME_MUTED. If mask is None, has the same effect as passing channelmap::POSITION_MASK_ALL.

pub fn channels_equal_to(&self, v: Volume) -> bool[src]

Deprecated since 2.7.0:

use the PartialEq implementation instead

Checks if the volume of all channels are equal to the specified value.

pub fn sw_multiply(&mut self, with: Option<&Self>) -> &mut Self[src]

Multiplies two per-channel volumes.

If with is None, multiplies with itself. This is only valid for software volumes! Returns pointer to self.

pub fn sw_multiply_scalar(&mut self, with: Volume) -> &mut Self[src]

Multiplies a per-channel volume with a scalar volume.

This is only valid for software volumes! Returns pointer to self.

pub fn sw_divide(&mut self, with: Option<&Self>) -> &mut Self[src]

Divides two per-channel volumes.

If with is None, divides with itself. This is only valid for software volumes! Returns pointer to self.

pub fn sw_divide_scalar(&mut self, with: Volume) -> &mut Self[src]

Divides a per-channel volume by a scalar volume.

This is only valid for software volumes! Returns pointer to self.

pub fn remap(&mut self, from: &Map, to: &Map) -> &mut Self[src]

Remaps a volume from one channel mapping to a different channel mapping.

Returns pointer to self.

pub fn is_compatible_with_ss(&self, ss: &Spec) -> bool[src]

Checks if the specified volume is compatible with the specified sample spec.

pub fn is_compatible_with_cm(&self, cm: &Map) -> bool[src]

Checks if the specified volume is compatible with the specified channel map.

pub fn get_balance(&self, map: &Map) -> f32[src]

Calculates a ‘balance’ value for the specified volume with the specified channel map.

The return value will range from -1.0 (left) to +1.0 (right). If no balance value is applicable to this channel map the return value will always be 0.0. See channelmap::Map::can_balance.

pub fn set_balance(&mut self, map: &Map, new_balance: f32) -> Option<&mut Self>[src]

Adjusts the ‘balance’ value for the specified volume with the specified channel map.

The balance is a value between -1.0 and +1.0. This operation might not be reversible! Also, after this call get_balance is not guaranteed to actually return the requested balance value (e.g. when the input volume was zero anyway for all channels). If no balance value is applicable to this channel map the volume will not be modified. See channelmap::Map::can_balance.

Returns pointer to self, or None on error.

pub fn get_fade(&self, map: &Map) -> f32[src]

Calculates a ‘fade’ value (i.e. ‘balance’ between front and rear) for the specified volume with the specified channel map.

The return value will range from -1.0f (rear) to +1.0f (left). If no fade value is applicable to this channel map the return value will always be 0.0. See channelmap::Map::can_fade.

pub fn set_fade(&mut self, map: &Map, new_fade: f32) -> Option<&mut Self>[src]

Adjusts the ‘fade’ value (i.e. ‘balance’ between front and rear) for the specified volume with the specified channel map.

The balance is a value between -1.0 and +1.0. This operation might not be reversible! Also, after this call get_fade is not guaranteed to actually return the requested fade value (e.g. when the input volume was zero anyway for all channels). If no fade value is applicable to this channel map the volume will not be modified. See channelmap::Map::can_fade.

Returns pointer to self, or None on error.

pub fn get_lfe_balance(&self, map: &Map) -> f32[src]

Calculates a ‘lfe balance’ value for the specified volume with the specified channel map.

The return value will range from -1.0 (no lfe) to +1.0 (only lfe), where 0.0 is balanced. If no value is applicable to this channel map the return value will always be 0.0. See channelmap::Map::can_lfe_balance.

pub fn set_lfe_balance(
    &mut self,
    map: &Map,
    new_balance: f32
) -> Option<&mut Self>
[src]

Adjusts the ‘LFE balance’ value for the specified volume with the specified channel map.

The balance is a value between -1.0 (no lfe) and +1.0 (only lfe). This operation might not be reversible! Also, after this call get_lfe_balance is not guaranteed to actually return the requested value (e.g. when the input volume was zero anyway for all channels). If no lfe balance value is applicable to this channel map the volume will not be modified. See channelmap::Map::can_lfe_balance.

Returns pointer to self, or None on error.

pub fn scale(&mut self, max: Volume) -> Option<&mut Self>[src]

Scales so that the maximum volume of all channels equals max.

The proportions between the channel volumes are kept.

Returns pointer to self, or None on error.

pub fn scale_mask(
    &mut self,
    max: Volume,
    cm: &mut Map,
    mask: Option<PositionMask>
) -> Option<&mut Self>
[src]

Scales so that the maximum volume of all channels selected via cm/mask equals max.

This also modifies the volume of those channels that are unmasked. The proportions between the channel volumes are kept.

If mask is None, has the same effect as passing channelmap::POSITION_MASK_ALL.

Returns pointer to self, or None on error.

pub fn set_position(
    &mut self,
    map: &Map,
    t: Position,
    v: Volume
) -> Option<&mut Self>
[src]

Sets the passed volume to all channels at the specified channel position.

Returns None if either invalid data was provided, or if there is no channel at the position specified. You can check if a channel map includes a specific position by calling channelmap::Map::has_position. On success, returns pointer to self.

pub fn get_position(&self, map: &Map, t: Position) -> Volume[src]

Gets the maximum volume of all channels at the specified channel position.

Will return 0 if there is no channel at the position specified. You can check if a channel map includes a specific position by calling channelmap::Map::has_position.

pub fn merge(&mut self, with: &Self) -> Option<&mut Self>[src]

Merges one set of channel volumes with another.

The channel count is set to the minimum between that of self and that of with. Only this number of channels are processed. For each channel processed, volume is set to the greatest of the values from self and from with. I.e if one set has three channels and the other has two, the number of channels will be set to two, and only the first two channels will be compared, with the greatest values of these two channels being stored. The third channel in the one set will be ignored.

Returns pointer to self, or None on error.

pub fn inc_clamp(&mut self, inc: Volume, limit: Volume) -> Option<&mut Self>[src]

Increases the volume passed in by inc, but not exceeding limit.

The proportions between the channels are kept.

Returns pointer to self, or None on error.

pub fn increase(&mut self, inc: Volume) -> Option<&mut Self>[src]

Increases the volume passed in by inc.

The proportions between the channels are kept.

Returns pointer to self, or None on error.

pub fn decrease(&mut self, dec: Volume) -> Option<&mut Self>[src]

Decreases the volume passed in by dec.

The proportions between the channels are kept.

Returns pointer to self, or None on error.

pub fn print(&self) -> String[src]

Pretty prints a volume structure.

pub fn print_db(&self) -> String[src]

Pretty prints a volume structure but show dB values.

pub fn print_verbose(&self, map: Option<&Map>, print_db: bool) -> String[src]

Pretty prints a volume structure in a verbose way.

The volume for each channel is printed in several formats: the raw volume value, percentage, and if print_db is non-zero, also the dB value. If map is provided, the channel names will be printed.

Trait Implementations

impl From<pa_cvolume> for ChannelVolumes[src]

impl Default for ChannelVolumes[src]

impl Clone for ChannelVolumes[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl PartialEq<ChannelVolumes> for ChannelVolumes[src]

#[must_use] fn ne(&self, other: &Rhs) -> bool1.0.0[src]

This method tests for !=.

impl PartialEq<Volume> for ChannelVolumes[src]

fn eq(&self, v: &Volume) -> bool[src]

Returns true if the volume of all channels are equal to the specified value.

#[must_use] fn ne(&self, other: &Rhs) -> bool1.0.0[src]

This method tests for !=.

impl AsMut<pa_cvolume> for ChannelVolumes[src]

impl Copy for ChannelVolumes[src]

impl AsRef<pa_cvolume> for ChannelVolumes[src]

impl Debug for ChannelVolumes[src]

impl Display for ChannelVolumes[src]

impl BorrowMut<[Volume]> for ChannelVolumes[src]

impl Borrow<[Volume]> for ChannelVolumes[src]

Auto Trait Implementations

Blanket Implementations

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]