in cubeb-backend/src/traits.rs [15:48]
fn init(context_name: Option<&CStr>) -> Result<Context>;
fn backend_id(&mut self) -> &CStr;
fn max_channel_count(&mut self) -> Result<u32>;
fn min_latency(&mut self, params: StreamParams) -> Result<u32>;
fn preferred_sample_rate(&mut self) -> Result<u32>;
fn supported_input_processing_params(&mut self) -> Result<InputProcessingParams>;
fn enumerate_devices(
&mut self,
devtype: DeviceType,
collection: &DeviceCollectionRef,
) -> Result<()>;
fn device_collection_destroy(&mut self, collection: &mut DeviceCollectionRef) -> Result<()>;
#[allow(clippy::too_many_arguments)]
fn stream_init(
&mut self,
stream_name: Option<&CStr>,
input_device: DeviceId,
input_stream_params: Option<&StreamParamsRef>,
output_device: DeviceId,
output_stream_params: Option<&StreamParamsRef>,
latency_frames: u32,
data_callback: ffi::cubeb_data_callback,
state_callback: ffi::cubeb_state_callback,
user_ptr: *mut c_void,
) -> Result<Stream>;
fn register_device_collection_changed(
&mut self,
devtype: DeviceType,
cb: ffi::cubeb_device_collection_changed_callback,
user_ptr: *mut c_void,
) -> Result<()>;
}
pub trait StreamOps {