in src/backend/mod.rs [3117:3169]
fn new(
stm: &AudioUnitStream<'ctx>,
input_stream_settings: Option<(StreamParams, device_info)>,
output_stream_settings: Option<(StreamParams, device_info)>,
) -> Self {
fn get_default_sttream_params() -> StreamParams {
StreamParams::from(ffi::cubeb_stream_params {
format: ffi::CUBEB_SAMPLE_FLOAT32NE,
rate: 0,
channels: 0,
layout: ffi::CUBEB_LAYOUT_UNDEFINED,
prefs: ffi::CUBEB_STREAM_PREF_NONE,
})
}
let (in_stm_params, in_dev) =
input_stream_settings.unwrap_or((get_default_sttream_params(), device_info::default()));
let (out_stm_params, out_dev) = output_stream_settings
.unwrap_or((get_default_sttream_params(), device_info::default()));
Self {
stm_ptr: stm,
aggregate_device: None,
mixer: None,
resampler: Resampler::default(),
input_stream_params: in_stm_params,
output_stream_params: out_stm_params,
input_dev_desc: AudioStreamBasicDescription::default(),
output_dev_desc: AudioStreamBasicDescription::default(),
input_unit: ptr::null_mut(),
output_unit: ptr::null_mut(),
voiceprocessing_unit_handle: None,
input_device: in_dev,
output_device: out_dev,
input_processing_params: InputProcessingParams::NONE,
input_mute: false,
input_buffer_manager: None,
units_running: false,
default_input_listener: None,
default_output_listener: None,
input_alive_listener: None,
input_source_listener: None,
output_alive_listener: None,
output_source_listener: None,
input_logging: None,
#[cfg(feature = "audio-dump")]
audio_dump_session: ptr::null_mut(),
#[cfg(feature = "audio-dump")]
audio_dump_session_running: false,
#[cfg(feature = "audio-dump")]
audio_dump_input: ptr::null_mut(),
#[cfg(feature = "audio-dump")]
audio_dump_output: ptr::null_mut(),
}
}