Skip to main content

AlsaPcmDevice

Struct AlsaPcmDevice 

Source
pub struct AlsaPcmDevice { /* private fields */ }
Expand description

SIM-visible ALSA PCM device metadata.

Implementations§

Source§

impl AlsaPcmDevice

Source

pub fn playback( pcm_name: impl Into<String>, display_name: impl Into<String>, channels: usize, sample_rate_hz: u32, ) -> Result<Self>

Builds an output (playback) PCM device with the F32 sample format.

§Examples
use sim_lib_stream_alsa::AlsaPcmDevice;

let device = AlsaPcmDevice::playback("hw:0,0", "Card 0", 2, 48_000).unwrap();
assert_eq!(device.channels(), 2);
assert_eq!(device.sample_rate_hz(), 48_000);
assert!(!device.is_default());
Source

pub fn capture( pcm_name: impl Into<String>, display_name: impl Into<String>, channels: usize, sample_rate_hz: u32, ) -> Result<Self>

Builds an input (capture) PCM device with the F32 sample format.

Source

pub fn default_playback(channels: usize, sample_rate_hz: u32) -> Result<Self>

Builds the routed default PCM device for playback.

Source

pub fn default_capture(channels: usize, sample_rate_hz: u32) -> Result<Self>

Builds the routed default PCM device for capture.

Source

pub fn new( pcm_name: AlsaPcmName, display_name: impl Into<String>, direction: HostDirection, channels: usize, sample_rate_hz: u32, sample_format: PcmSampleFormat, ) -> Result<Self>

Builds a PCM device from explicit parts, defaulting the buffer to 256 frames.

Returns an Error::Eval when channels or sample_rate_hz is zero. The device Symbol id is derived from the name and direction.

Source

pub fn with_buffer_frames(self, buffer_frames: usize) -> Result<Self>

Returns a copy of this device with the buffer size set to buffer_frames, which must be greater than zero.

Source

pub fn id(&self) -> &Symbol

Returns the device’s stable SIM identity symbol.

Source

pub fn pcm_name(&self) -> &AlsaPcmName

Returns the parsed ALSA PCM name.

Source

pub fn display_name(&self) -> &str

Returns the human-readable display name.

Source

pub fn direction(&self) -> HostDirection

Returns the device direction (input, output, or duplex).

Source

pub fn channels(&self) -> usize

Returns the channel count.

Source

pub fn sample_rate_hz(&self) -> u32

Returns the sample rate in hertz.

Source

pub fn sample_format(&self) -> PcmSampleFormat

Returns the PCM sample format.

Source

pub fn buffer_frames(&self) -> usize

Returns the configured buffer size in frames.

Source

pub fn spec(&self) -> Result<PcmSpec>

Builds the PCM spec (channels, rate, format) for this device.

Source

pub fn is_default(&self) -> bool

Returns true when this device wraps the ALSA default PCM.

Source

pub fn is_compatible_with(&self, requested: HostDirection) -> bool

Returns true when the device can serve the requested direction.

A duplex device satisfies any requested direction.

Source

pub fn port_symbol(&self) -> Symbol

Returns the device’s port symbol, the device id with a /port suffix.

Trait Implementations§

Source§

impl Clone for AlsaPcmDevice

Source§

fn clone(&self) -> AlsaPcmDevice

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 Debug for AlsaPcmDevice

Source§

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

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

impl Eq for AlsaPcmDevice

Source§

impl PartialEq for AlsaPcmDevice

Source§

fn eq(&self, other: &AlsaPcmDevice) -> 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 AlsaPcmDevice

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.