Struct cpal::SupportedStreamConfigRange

source ·
pub struct SupportedStreamConfigRange { /* private fields */ }
Expand description

Describes a range of supported stream configurations, retrieved via the Device::supported_input/output_configs method.

Implementations§

source§

impl SupportedStreamConfigRange

source

pub fn new( channels: ChannelCount, min_sample_rate: SampleRate, max_sample_rate: SampleRate, buffer_size: SupportedBufferSize, sample_format: SampleFormat, ) -> Self

source

pub fn channels(&self) -> ChannelCount

source

pub fn min_sample_rate(&self) -> SampleRate

source

pub fn max_sample_rate(&self) -> SampleRate

source

pub fn buffer_size(&self) -> &SupportedBufferSize

source

pub fn sample_format(&self) -> SampleFormat

source

pub fn with_sample_rate(self, sample_rate: SampleRate) -> SupportedStreamConfig

Retrieve a SupportedStreamConfig with the given sample rate and buffer size.

§Panics

Panics if the given sample_rate is outside the range specified within this SupportedStreamConfigRange instance. For a non-panicking variant, use try_with_sample_rate.

source

pub fn try_with_sample_rate( self, sample_rate: SampleRate, ) -> Option<SupportedStreamConfig>

Retrieve a SupportedStreamConfig with the given sample rate and buffer size.

Returns None if the given sample rate is outside the range specified within this SupportedStreamConfigRange instance.

source

pub fn with_max_sample_rate(self) -> SupportedStreamConfig

Turns this SupportedStreamConfigRange into a SupportedStreamConfig corresponding to the maximum samples rate.

source

pub fn cmp_default_heuristics(&self, other: &Self) -> Ordering

A comparison function which compares two SupportedStreamConfigRanges in terms of their priority of use as a default stream format.

Some backends do not provide a default stream format for their audio devices. In these cases, CPAL attempts to decide on a reasonable default format for the user. To do this we use the “greatest” of all supported stream formats when compared with this method.

SupportedStreamConfigs are prioritised by the following heuristics:

Channels:

  • Stereo
  • Mono
  • Max available channels

Sample format:

  • f32
  • i16
  • u16

Sample rate:

  • 44100 (cd quality)
  • Max sample rate

Trait Implementations§

source§

impl Clone for SupportedStreamConfigRange

source§

fn clone(&self) -> SupportedStreamConfigRange

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl Debug for SupportedStreamConfigRange

source§

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

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

impl PartialEq for SupportedStreamConfigRange

source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · 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 Copy for SupportedStreamConfigRange

source§

impl Eq for SupportedStreamConfigRange

source§

impl StructuralPartialEq for SupportedStreamConfigRange

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, dst: *mut T)

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<S> FromSample<S> for S

source§

fn from_sample_(s: S) -> S

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> ToSample<U> for T
where U: FromSample<T>,

source§

fn to_sample_(self) -> U

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.
source§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,