pub trait DeviceTrait {
    type SupportedInputConfigs: Iterator;
    type SupportedOutputConfigs: Iterator;
    type Stream: StreamTrait;
    fn name(&self) -> Result<String, DeviceNameError>;
fn supported_input_configs(
        &self
    ) -> Result<Self::SupportedInputConfigs, SupportedStreamConfigsError>;
fn supported_output_configs(
        &self
    ) -> Result<Self::SupportedOutputConfigs, SupportedStreamConfigsError>;
fn default_input_config(
        &self
    ) -> Result<SupportedStreamConfig, DefaultStreamConfigError>;
fn default_output_config(
        &self
    ) -> Result<SupportedStreamConfig, DefaultStreamConfigError>;
fn build_input_stream_raw<D, E>(
        &self,
        config: &StreamConfig,
        sample_format: SampleFormat,
        data_callback: D,
        error_callback: E
    ) -> Result<Self::Stream, BuildStreamError>
    where
        D: 'static + FnMut(&Data, &InputCallbackInfo) + Send,
        E: 'static + FnMut(StreamError) + Send
;
fn build_output_stream_raw<D, E>(
        &self,
        config: &StreamConfig,
        sample_format: SampleFormat,
        data_callback: D,
        error_callback: E
    ) -> Result<Self::Stream, BuildStreamError>
    where
        D: 'static + FnMut(&mut Data, &OutputCallbackInfo) + Send,
        E: 'static + FnMut(StreamError) + Send
; fn build_input_stream<T, D, E>(
        &self,
        config: &StreamConfig,
        data_callback: D,
        error_callback: E
    ) -> Result<Self::Stream, BuildStreamError>
    where
        T: Sample,
        D: 'static + FnMut(&[T], &InputCallbackInfo) + Send,
        E: 'static + FnMut(StreamError) + Send
, { ... }
fn build_output_stream<T, D, E>(
        &self,
        config: &StreamConfig,
        data_callback: D,
        error_callback: E
    ) -> Result<Self::Stream, BuildStreamError>
    where
        T: Sample,
        D: 'static + FnMut(&mut [T], &OutputCallbackInfo) + Send,
        E: 'static + FnMut(StreamError) + Send
, { ... } }
Expand description

A device that is capable of audio input and/or output.

Please note that Devices may become invalid if they get disconnected. Therefore, all the methods that involve a device return a Result allowing the user to handle this case.

Associated Types

The iterator type yielding supported input stream formats.

The iterator type yielding supported output stream formats.

The stream type created by build_input_stream_raw and build_output_stream_raw.

Required methods

The human-readable name of the device.

An iterator yielding formats that are supported by the backend.

Can return an error if the device is no longer valid (e.g. it has been disconnected).

An iterator yielding output stream formats that are supported by the device.

Can return an error if the device is no longer valid (e.g. it has been disconnected).

The default input stream format for the device.

The default output stream format for the device.

Create a dynamically typed input stream.

Create a dynamically typed output stream.

Provided methods

Create an input stream.

Create an output stream.

Implementations on Foreign Types

Implementors