From cf1a928b84dd1a12973ca8331aa54118a7ebdfcc Mon Sep 17 00:00:00 2001 From: JoshuaBatty Date: Tue, 26 May 2020 14:54:21 +0200 Subject: [PATCH] reset examples --- Cargo.toml | 1 - examples/beep.rs | 12 +++--------- examples/feedback.rs | 19 ++++++++----------- 3 files changed, 11 insertions(+), 21 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 8eb6837..56140d8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,6 @@ hound = "3.4" ringbuf = "0.1.6" [target.'cfg(target_os = "windows")'.dependencies] -# winapi = { path = "../winapi-rs", version = "0.3", features = ["audiosessiontypes", "audioclient", "coml2api", "combaseapi", "debug", "devpkey", "errhandlingapi", "handleapi", "ksmedia", "mmdeviceapi", "objbase", "std", "synchapi", "winbase", "winuser"] } winapi = { version = "0.3", features = ["audiosessiontypes", "audioclient", "coml2api", "combaseapi", "debug", "devpkey", "handleapi", "ksmedia", "mmdeviceapi", "objbase", "profileapi", "std", "synchapi", "winbase", "winuser"] } asio-sys = { version = "0.1", path = "asio-sys", optional = true } parking_lot = "0.9" diff --git a/examples/beep.rs b/examples/beep.rs index 0a80a80..6da7284 100644 --- a/examples/beep.rs +++ b/examples/beep.rs @@ -5,13 +5,11 @@ use cpal::traits::{DeviceTrait, HostTrait, StreamTrait}; fn main() -> Result<(), anyhow::Error> { let host = cpal::default_host(); - //let host = - // cpal::host_from_id(cpal::platform::HostId::Asio).expect("failed to initialise ASIO host"); let device = host .default_output_device() .expect("failed to find a default output device"); let config = device.default_output_config()?; - println!("{:#?}", &config); + match config.sample_format() { cpal::SampleFormat::F32 => run::(&device, &config.into())?, cpal::SampleFormat::I16 => run::(&device, &config.into())?, @@ -25,9 +23,6 @@ fn run(device: &cpal::Device, config: &cpal::StreamConfig) -> Result<(), anyh where T: cpal::Sample, { - let mut config: cpal::StreamConfig = config.clone(); - config.buffer_size = cpal::BufferSize::Fixed(16); - let sample_rate = config.sample_rate.0 as f32; let channels = config.channels as usize; @@ -41,9 +36,8 @@ where let err_fn = |err| eprintln!("an error occurred on stream: {}", err); let stream = device.build_output_stream( - &config, + config, move |data: &mut [T], _: &cpal::OutputCallbackInfo| { - println!("data len = {}", data.len()); write_data(data, channels, &mut next_value) }, err_fn, @@ -65,4 +59,4 @@ where *sample = value; } } -} +} \ No newline at end of file diff --git a/examples/feedback.rs b/examples/feedback.rs index 1947266..1530243 100644 --- a/examples/feedback.rs +++ b/examples/feedback.rs @@ -16,9 +16,8 @@ use ringbuf::RingBuffer; const LATENCY_MS: f32 = 150.0; fn main() -> Result<(), anyhow::Error> { - //let host = cpal::default_host(); - let host = - cpal::host_from_id(cpal::platform::HostId::Asio).expect("failed to initialise ASIO host"); + let host = cpal::default_host(); + // Default devices. let input_device = host .default_input_device() @@ -30,8 +29,7 @@ fn main() -> Result<(), anyhow::Error> { println!("Using default output device: \"{}\"", output_device.name()?); // We'll try and use the same configuration between streams to keep it simple. - let mut config: cpal::StreamConfig = input_device.default_input_config()?.into(); - //config.buffer_size = cpal::BufferSize::Fixed(1024); + let config: cpal::StreamConfig = input_device.default_input_config()?.into(); // Create a delay in case the input and output devices aren't synced. let latency_frames = (LATENCY_MS / 1_000.0) * config.sample_rate.0 as f32; @@ -45,11 +43,10 @@ fn main() -> Result<(), anyhow::Error> { for _ in 0..latency_samples { // The ring buffer has twice as much space as necessary to add latency here, // so this should never fail - producer.push(0).unwrap(); + producer.push(0.0).unwrap(); } - let input_data_fn = move |data: &[i16], _: &cpal::InputCallbackInfo| { - println!("data len = {}", data.len()); + let input_data_fn = move |data: &[f32], _: &cpal::InputCallbackInfo| { let mut output_fell_behind = false; for &sample in data { if producer.push(sample).is_err() { @@ -61,14 +58,14 @@ fn main() -> Result<(), anyhow::Error> { } }; - let output_data_fn = move |data: &mut [i16], _: &cpal::OutputCallbackInfo| { + let output_data_fn = move |data: &mut [f32], _: &cpal::OutputCallbackInfo| { let mut input_fell_behind = None; for sample in data { *sample = match consumer.pop() { Ok(s) => s, Err(err) => { input_fell_behind = Some(err); - 0 + 0.0 } }; } @@ -108,4 +105,4 @@ fn main() -> Result<(), anyhow::Error> { fn err_fn(err: cpal::StreamError) { eprintln!("an error occurred on stream: {}", err); -} +} \ No newline at end of file