Skip to main content

ChannelPosition

Enum ChannelPosition 

Source
#[non_exhaustive]
pub enum ChannelPosition {
Show 15 variants FrontLeft, FrontRight, FrontCenter, LowFrequency, BackLeft, BackRight, FrontLeftOfCenter, FrontRightOfCenter, BackCenter, SideLeft, SideRight, TopFrontLeft, TopFrontRight, TopBackLeft, TopBackRight,
}
Expand description

A single speaker position within a multi-channel audio layout.

Names follow the WAVEFORMATEXTENSIBLE / FFmpeg / SMPTE convention. Side* and Back* are kept distinct (mirroring 7.1’s L/R + Ls/Rs + Lb/Rb separation) so codecs that surface the distinction don’t collapse it. Lr/Rr (rear / back-rear) are aliases for BackLeft/BackRight in this taxonomy — the rear pair sits behind the listener on the room’s centreline-extension, the side pair is at roughly ±90° from front. The enum is #[non_exhaustive] so additional positions (height channels for Atmos / Auro-3D, etc.) can be added without breaking downstream match arms.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

FrontLeft

Front-left (L). 30° left of centre in BS.775 listening geometry.

§

FrontRight

Front-right (R). 30° right of centre.

§

FrontCenter

Front-centre (C). Direct centre, 0°.

§

LowFrequency

Low-frequency effects (LFE). Sub-bass, no positional meaning.

§

BackLeft

Back-left (Lb / Lr). Behind the listener, ±150° in 7.1.

§

BackRight

Back-right (Rb / Rr). Behind the listener, mirror of BackLeft.

§

FrontLeftOfCenter

Front left-of-centre (Lc). Used in cinema 7.1 SDDS layouts.

§

FrontRightOfCenter

Front right-of-centre (Rc). Mirror of FrontLeftOfCenter.

§

BackCenter

Back-centre (Cs). Single rear channel for 6.1 / BS.775 4.0.

§

SideLeft

Side-left (Ls). ±90° on the listener’s left in 5.1 / 7.1.

§

SideRight

Side-right (Rs). Mirror of SideLeft.

§

TopFrontLeft

Top front-left. Atmos / Auro-3D height layer (placeholder).

§

TopFrontRight

Top front-right. Atmos / Auro-3D height layer (placeholder).

§

TopBackLeft

Top back-left. Atmos / Auro-3D ceiling layer (placeholder).

§

TopBackRight

Top back-right. Atmos / Auro-3D ceiling layer (placeholder).

Trait Implementations§

Source§

impl Clone for ChannelPosition

Source§

fn clone(&self) -> ChannelPosition

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for ChannelPosition

Source§

impl Debug for ChannelPosition

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for ChannelPosition

Source§

impl Hash for ChannelPosition

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for ChannelPosition

Source§

fn eq(&self, other: &ChannelPosition) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for ChannelPosition

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.