HardwareParameters

Struct HardwareParameters 

Source
pub struct HardwareParameters { /* private fields */ }
Available on crate feature alsa only.
Expand description

Collection of current hardware parameters being configured for a Pcm handle.

See Pcm::hardware_parameters.

Implementations§

Source§

impl HardwareParameters

Source

pub fn channels(&self) -> Result<c_uint>

Restrict a configuration space to contain only one channels count.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

let result = hw.channels()?;
dbg!(result);
Source

pub fn channels_max(&self) -> Result<c_uint>

Extract maximum channels count from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

println!("{}", hw.channels_max()?);
Source

pub fn channels_min(&self) -> Result<c_uint>

Extract minimum channels count from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

println!("{}", hw.channels_min()?);
Source

pub fn rate(&self) -> Result<c_uint>

Extract rate from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let mut hw = pcm.hardware_parameters_any()?;

println!("{}", hw.rate()?);
Source

pub fn rate_numden(&self) -> Result<(c_uint, c_uint)>

Get rate exact info from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let mut hw = pcm.hardware_parameters_any()?;

dbg!(hw.rate_numden()?);
Source

pub fn rate_max(&self) -> Result<c_uint>

Extract max rate from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let mut hw = pcm.hardware_parameters_any()?;

println!("{}", hw.rate_max()?);
Source

pub fn rate_min(&self) -> Result<c_uint>

Extract min rate from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let mut hw = pcm.hardware_parameters_any()?;

println!("{}", hw.rate_min()?);
Source

pub fn format(&self) -> Result<Format>

Extract format from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let mut hw = pcm.hardware_parameters_any()?;

println!("{}", hw.format()?);
Source

pub fn format_mask(&self) -> Result<FormatMask>

Get format mask from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

let _mask = hw.format_mask()?;
Source

pub fn access(&self) -> Result<Access>

Extract access type from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let mut hw = pcm.hardware_parameters_any()?;

println!("{}", hw.access()?);
Source

pub fn get_access_mask(&self) -> Result<AccessMask>

Get access mask from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

let _mask = hw.get_access_mask()?;
Source

pub fn can_pause(&self) -> bool

Check if hardware supports pause.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let mut hw = pcm.hardware_parameters_any()?;

println!("{}", hw.can_pause());
Source

pub fn can_resume(&self) -> bool

Check if hardware supports resume.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let mut hw = pcm.hardware_parameters_any()?;

println!("{}", hw.can_resume());
Source

pub fn copy(&mut self, other: &HardwareParameters)

Copy one hardware parameters to another.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let a = pcm.hardware_parameters()?;
let mut hw = pcm.hardware_parameters()?;

hw.copy(&a);
Source

pub fn can_mmap_sample_resolution(&self) -> bool

Check if hardware supports sample-resolution mmap for given configuration.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

println!("{}", hw.can_mmap_sample_resolution());
Source

pub fn is_double(&self) -> bool

Check if hardware does double buffering for start/stop for given configuration.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

println!("{}", hw.is_double());
Source

pub fn is_batch(&self) -> bool

Check if hardware does double buffering for data transfers for given configuration.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

println!("{}", hw.is_batch());
Source

pub fn is_block_transfer(&self) -> bool

Check if hardware does block transfers for samples for given configuration.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

println!("{}", hw.is_block_transfer());
Source

pub fn is_monotonic(&self) -> bool

Check if timestamps are monotonic for given configuration.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

println!("{}", hw.is_monotonic());
Source

pub fn can_overrange(&self) -> bool

Check if hardware supports overrange detection.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

println!("{}", hw.can_overrange());
Source

pub fn is_half_duplex(&self) -> bool

Check if hardware does half-duplex only.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

println!("{}", hw.is_half_duplex());
Source

pub fn is_joint_duplex(&self) -> bool

Check if hardware does joint-duplex (playback and capture are somewhat correlated)

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

println!("{}", hw.is_joint_duplex());
Source

pub fn can_sync_start(&self) -> bool

Check if hardware supports synchronized start with sample resolution.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

println!("{}", hw.can_sync_start());
Source

pub fn can_disable_period_wakeup(&self) -> bool

Check if hardware can disable period wakeups.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

println!("{}", hw.can_disable_period_wakeup());
Source

pub fn supports_audio_wallclock_ts(&self) -> bool

Check if hardware supports audio wallclock timestamps.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

println!("{}", hw.supports_audio_wallclock_ts());
Source

pub fn supports_audio_ts_type(&self, ty: c_int) -> bool

Check if hardware supports type of audio timestamps.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

println!("{}", hw.supports_audio_ts_type(2));
Source

pub fn sbits(&self) -> Result<c_int>

Get sample resolution info from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

println!("{}", hw.sbits()?);
Source

pub fn fifo_size(&self) -> Result<c_int>

Get hardware FIFO size info from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

println!("{}", hw.fifo_size()?);
Source

pub fn period_time(&self) -> Result<(c_uint, Direction)>

Extract period time from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

dbg!(hw.period_time());
Source

pub fn period_time_min(&self) -> Result<(c_uint, Direction)>

Extract minimum period time from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

dbg!(hw.period_time_min());
Source

pub fn period_time_max(&self) -> Result<(c_uint, Direction)>

Extract maximum period time from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

dbg!(hw.period_time_max());
Source

pub fn period_size(&self) -> Result<(c_ulong, Direction)>

Extract period size from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

dbg!(hw.period_size());
Source

pub fn period_size_min(&self) -> Result<(c_ulong, Direction)>

Extract minimum period size from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

dbg!(hw.period_size_min());
Source

pub fn period_size_max(&self) -> Result<(c_ulong, Direction)>

Extract maximum period size from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

dbg!(hw.period_size_max()?);
Source

pub fn periods(&self) -> Result<(c_uint, Direction)>

Extract periods from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

dbg!(hw.periods()?);
Source

pub fn periods_min(&self) -> Result<(c_uint, Direction)>

Extract minimum periods count from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

dbg!(hw.periods_min()?);
Source

pub fn periods_max(&self) -> Result<(c_uint, Direction)>

Extract maximum periods count from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

dbg!(hw.periods_max()?);
Source

pub fn buffer_time(&self) -> Result<(c_uint, Direction)>

Extract buffer time from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

dbg!(hw.buffer_time()?);
Source

pub fn buffer_time_min(&self) -> Result<(c_uint, Direction)>

Extract minimum buffer time from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

dbg!(hw.buffer_time_min()?);
Source

pub fn buffer_time_max(&self) -> Result<(c_uint, Direction)>

Extract maximum buffer time from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let hw = pcm.hardware_parameters()?;

dbg!(hw.buffer_time_max()?);
Source

pub fn buffer_size(&self) -> Result<c_ulong>

Extract buffer size from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let mut hw = pcm.hardware_parameters()?;

dbg!(hw.buffer_size()?);
Source

pub fn buffer_size_min(&self) -> Result<c_ulong>

Extract minimum buffer size from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let mut hw = pcm.hardware_parameters()?;

dbg!(hw.buffer_size_min()?);
Source

pub fn buffer_size_max(&self) -> Result<c_ulong>

Extract maximum buffer size from a configuration space.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let mut hw = pcm.hardware_parameters()?;

dbg!(hw.buffer_size_max()?);
Source

pub fn min_align(&self) -> Result<c_ulong>

Get the minimum transfer align value in samples.

§Examples
use audio_device::alsa;

let mut pcm = alsa::Pcm::open_default(alsa::Stream::Playback)?;
let mut hw = pcm.hardware_parameters()?;

dbg!(hw.min_align()?);

Trait Implementations§

Source§

impl Drop for HardwareParameters

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

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> 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, 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.