pub trait AudioBackend: Send + Sync {
type Stream: AudioStream + 'static;
type Device: Send + Sync;
type Error: Error + Send + Sync + 'static;
// Required methods
fn enumerate_output_devices(&self) -> Result<Vec<Self::Device>, Self::Error>;
fn enumerate_input_devices(&self) -> Result<Vec<Self::Device>, Self::Error>;
fn default_output_device(&self) -> Option<Self::Device>;
fn default_input_device(&self) -> Option<Self::Device>;
fn create_output_stream(
&self,
device: &Self::Device,
config: AudioConfig,
data_callback: Box<dyn FnMut(&mut [f32]) + Send>,
error_callback: Box<dyn FnMut(Self::Error) + Send>,
) -> Result<Self::Stream, Self::Error>;
fn create_input_stream(
&self,
device: &Self::Device,
config: AudioConfig,
data_callback: Box<dyn FnMut(&[f32]) + Send>,
error_callback: Box<dyn FnMut(Self::Error) + Send>,
) -> Result<Self::Stream, Self::Error>;
}Expand description
Audio backend trait for creating audio streams
Required Associated Types§
Sourcetype Stream: AudioStream + 'static
type Stream: AudioStream + 'static
The stream type this backend produces. Not required to be Send — see AudioStream.
Required Methods§
Sourcefn enumerate_output_devices(&self) -> Result<Vec<Self::Device>, Self::Error>
fn enumerate_output_devices(&self) -> Result<Vec<Self::Device>, Self::Error>
Enumerate available output devices
Sourcefn enumerate_input_devices(&self) -> Result<Vec<Self::Device>, Self::Error>
fn enumerate_input_devices(&self) -> Result<Vec<Self::Device>, Self::Error>
Enumerate available input devices
Sourcefn default_output_device(&self) -> Option<Self::Device>
fn default_output_device(&self) -> Option<Self::Device>
Get the default output device
Sourcefn default_input_device(&self) -> Option<Self::Device>
fn default_input_device(&self) -> Option<Self::Device>
Get the default input device
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".