diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/src/main.rs b/src/main.rs index 865f6f8..ec71be1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -28,7 +28,16 @@ fn main() -> Result<(), std::io::Error> { } fn main_client(args: Vec<ffi::OsString>) -> Result<(), std::io::Error> { - let env = Environment::default(); + let host = cpal::default_host(); + let device = host.default_output_device().expect("no default host audio device!"); + let mut conf_range = device.supported_output_configs().expect("could not query audio device capabilities -- audio device disconnected?"); + let conf = conf_range.next().expect("audio device has no supported configs!").with_max_sample_rate().config(); + + println!("playing at sample rate {}", conf.sample_rate.0); + let env = Environment { + sample_rate: conf.sample_rate.0 as f32, + default_buffer_size: 64, + }; let mut genfile = File::open( args.iter() @@ -64,10 +73,6 @@ fn main_client(args: Vec<ffi::OsString>) -> Result<(), std::io::Error> { .expect("Failed to init shared buffer") .append(&mut iter::repeat(0.0f32).take(last_buffer_lim).collect()); - let host = cpal::default_host(); - let device = host.default_output_device().expect("no default host audio device!"); - let mut conf_range = device.supported_output_configs().expect("could not query audio device capabilities -- audio device disconnected?"); - let conf = conf_range.next().expect("audio device has no supported configs!").with_max_sample_rate().config(); let stream; { let client = client.clone(); @@ -94,9 +99,15 @@ fn main_client(args: Vec<ffi::OsString>) -> Result<(), std::io::Error> { ring.append(&mut cli.buffer().iter().map(|&x| x).collect()); } let mut drain = ring.drain(..frames); + let mut min = 1.0; + let mut max = 0.0; for i in 0..frames { - data[i] = drain.next().unwrap(); + let frame = drain.next().unwrap(); + min = f32::min(min, frame); + max = f32::max(min, frame); + data[i] = frame; } + println!("played {} frames, min {}, max {}", frames, min, max); }, move |err| { println!("audio stream error: {}", err); |