Skip to main content

DeviceService

Struct DeviceService 

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

Service for managing audio device enumeration and lookup.

DeviceService wraps a CPAL [Host] and provides convenient methods to:

  • List available input and output devices
  • Look up devices by their ID
  • Convert device information into AudioDeviceDto for frontend consumption

Implementations§

Source§

impl DeviceService

Source

pub fn new(host: Host) -> Self

Creates a new DeviceService with the given CPAL host.

§Arguments
  • host - A CPAL [Host] instance.
Source

pub fn get_input_devices(&self) -> Vec<AudioDeviceDto>

Retrieves a list of all available input devices.

Queries the CPAL host for input devices, converts them to AudioDeviceDto, and returns them. If device enumeration fails, an empty list is returned and an error is added to the logs.

§Returns

A Vec of AudioDeviceDto representing available input devices.

Source

pub fn get_output_devices(&self) -> Vec<AudioDeviceDto>

Retrieves a list of all available output devices.

Queries the CPAL host for output devices, converts them to AudioDeviceDto, and returns them. If device enumeration fails, an empty list is returned and an error is printed to stderr.

§Returns

A Vec of AudioDeviceDto representing available output devices.

Source

pub fn find_input_device_by_id(&self, id: &str) -> Option<Device>

Finds an input device by its string ID.

Searches through the host’s input devices for one whose debug-formatted ID matches the given string.

§Arguments
  • id - The device ID string to search for (debug-formatted CPAL device ID).
§Returns

Some(device) if a matching input device is found, None otherwise.

Source

pub fn find_output_device_by_id(&self, id: &str) -> Option<Device>

Finds an output device by its string ID.

Searches through the host’s output devices for one whose debug-formatted ID matches the given string.

§Arguments
  • id - The device ID string to search for (debug-formatted CPAL device ID).
§Returns

Some(device) if a matching output device is found, None otherwise.

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
§

impl<T> Any for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

§

fn type_name(&self) -> &'static str

§

impl<T> AnySync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

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.

§

impl<S> FromSample<S> for S

§

fn from_sample_(s: S) -> S

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.

§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

§

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

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

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