diff --git a/client/src/audio_streams.rs b/client/src/audio_streams.rs index 267cbce..c917509 100644 --- a/client/src/audio_streams.rs +++ b/client/src/audio_streams.rs @@ -62,6 +62,21 @@ pub async fn audio_stream_receiver( udp_socket: Arc, ) { let output_stream = match output_device_config.sample_format() { + SampleFormat::F64 => cpal_build_output_stream::( + &output_device, + output_device_config.into(), + active_input_audio_streams_consumers, + ), + SampleFormat::I64 => cpal_build_output_stream::( + &output_device, + output_device_config.into(), + active_input_audio_streams_consumers, + ), + SampleFormat::U64 => cpal_build_output_stream::( + &output_device, + output_device_config.into(), + active_input_audio_streams_consumers, + ), SampleFormat::F32 => cpal_build_output_stream::( &output_device, output_device_config.into(), @@ -72,6 +87,11 @@ pub async fn audio_stream_receiver( output_device_config.into(), active_input_audio_streams_consumers, ), + SampleFormat::U32 => cpal_build_output_stream::( + &output_device, + output_device_config.into(), + active_input_audio_streams_consumers, + ), SampleFormat::I16 => cpal_build_output_stream::( &output_device, output_device_config.into(), @@ -82,6 +102,16 @@ pub async fn audio_stream_receiver( output_device_config.into(), active_input_audio_streams_consumers, ), + SampleFormat::I8 => cpal_build_output_stream::( + &output_device, + output_device_config.into(), + active_input_audio_streams_consumers, + ), + SampleFormat::U8 => cpal_build_output_stream::( + &output_device, + output_device_config.into(), + active_input_audio_streams_consumers, + ), _ => { eprintln!("unsupported output stream format :("); return; @@ -250,18 +280,36 @@ pub async fn audio_stream_spawner( let (producer, mut consumer) = ring_buffer.split(); let input_stream = match input_device_config.sample_format() { + SampleFormat::F64 => { + cpal_build_input_stream::(&input_device, input_device_config.into(), producer) + } + SampleFormat::I64 => { + cpal_build_input_stream::(&input_device, input_device_config.into(), producer) + } + SampleFormat::U64 => { + cpal_build_input_stream::(&input_device, input_device_config.into(), producer) + } SampleFormat::F32 => { cpal_build_input_stream::(&input_device, input_device_config.into(), producer) } SampleFormat::I32 => { cpal_build_input_stream::(&input_device, input_device_config.into(), producer) } + SampleFormat::U32 => { + cpal_build_input_stream::(&input_device, input_device_config.into(), producer) + } SampleFormat::I16 => { cpal_build_input_stream::(&input_device, input_device_config.into(), producer) } SampleFormat::U16 => { cpal_build_input_stream::(&input_device, input_device_config.into(), producer) } + SampleFormat::I8 => { + cpal_build_input_stream::(&input_device, input_device_config.into(), producer) + } + SampleFormat::U8 => { + cpal_build_input_stream::(&input_device, input_device_config.into(), producer) + } _ => { eprintln!("unsupported input stream format :("); return; diff --git a/client/src/tui.rs b/client/src/tui.rs index 5d9d678..fad8a91 100644 --- a/client/src/tui.rs +++ b/client/src/tui.rs @@ -264,7 +264,7 @@ impl DeviceSelectScreen { for (device, config) in self.input_devices.iter() { input_device_rows.push(Row::new(vec![ device.description().unwrap().name().to_string(), - config.channels().to_string(), + config.sample_format().to_string(), ])); } let input_device_table = Table::new(input_device_rows, widths) @@ -299,7 +299,7 @@ impl DeviceSelectScreen { for (device, config) in self.output_devices.iter() { output_device_rows.push(Row::new(vec![ device.description().unwrap().name().to_string(), - config.channels().to_string(), + config.sample_format().to_string(), ])); } let output_device_table = Table::new(output_device_rows, widths)