pub struct HardwareParameters { /* private fields */ }alsa only.Expand description
Collection of current hardware parameters being configured for a Pcm handle.
Implementations§
Source§impl HardwareParameters
impl HardwareParameters
Sourcepub fn channels(&self) -> Result<c_uint>
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);Sourcepub fn channels_max(&self) -> Result<c_uint>
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()?);Sourcepub fn channels_min(&self) -> Result<c_uint>
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()?);Sourcepub fn rate(&self) -> Result<c_uint>
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()?);Sourcepub fn rate_numden(&self) -> Result<(c_uint, c_uint)>
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()?);Sourcepub fn rate_max(&self) -> Result<c_uint>
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()?);Sourcepub fn rate_min(&self) -> Result<c_uint>
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()?);Sourcepub fn format(&self) -> Result<Format>
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()?);Sourcepub fn format_mask(&self) -> Result<FormatMask>
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()?;Sourcepub fn access(&self) -> Result<Access>
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()?);Sourcepub fn get_access_mask(&self) -> Result<AccessMask>
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()?;Sourcepub fn can_pause(&self) -> bool
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());Sourcepub fn can_resume(&self) -> bool
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());Sourcepub fn copy(&mut self, other: &HardwareParameters)
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);Sourcepub fn can_mmap_sample_resolution(&self) -> bool
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());Sourcepub fn is_double(&self) -> bool
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());Sourcepub fn is_batch(&self) -> bool
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());Sourcepub fn is_block_transfer(&self) -> bool
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());Sourcepub fn is_monotonic(&self) -> bool
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());Sourcepub fn can_overrange(&self) -> bool
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());Sourcepub fn is_half_duplex(&self) -> bool
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());Sourcepub fn is_joint_duplex(&self) -> bool
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());Sourcepub fn can_sync_start(&self) -> bool
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());Sourcepub fn can_disable_period_wakeup(&self) -> bool
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());Sourcepub fn supports_audio_wallclock_ts(&self) -> bool
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());Sourcepub fn supports_audio_ts_type(&self, ty: c_int) -> bool
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));Sourcepub fn sbits(&self) -> Result<c_int>
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()?);Sourcepub fn fifo_size(&self) -> Result<c_int>
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()?);Sourcepub fn period_time(&self) -> Result<(c_uint, Direction)>
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());Sourcepub fn period_time_min(&self) -> Result<(c_uint, Direction)>
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());Sourcepub fn period_time_max(&self) -> Result<(c_uint, Direction)>
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());Sourcepub fn period_size(&self) -> Result<(c_ulong, Direction)>
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());Sourcepub fn period_size_min(&self) -> Result<(c_ulong, Direction)>
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());Sourcepub fn period_size_max(&self) -> Result<(c_ulong, Direction)>
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()?);Sourcepub fn periods(&self) -> Result<(c_uint, Direction)>
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()?);Sourcepub fn periods_min(&self) -> Result<(c_uint, Direction)>
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()?);Sourcepub fn periods_max(&self) -> Result<(c_uint, Direction)>
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()?);Sourcepub fn buffer_time(&self) -> Result<(c_uint, Direction)>
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()?);Sourcepub fn buffer_time_min(&self) -> Result<(c_uint, Direction)>
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()?);Sourcepub fn buffer_time_max(&self) -> Result<(c_uint, Direction)>
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()?);Sourcepub fn buffer_size(&self) -> Result<c_ulong>
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()?);Sourcepub fn buffer_size_min(&self) -> Result<c_ulong>
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()?);Sourcepub fn buffer_size_max(&self) -> Result<c_ulong>
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()?);