extern crate sound_stream;
use sound_stream::{SoundStream, StreamParams};
use sound_stream::duplex::Event;
fn main() {
let mut stream = SoundStream::new()
.frames_per_buffer(128)
.duplex::<f32, f32>(StreamParams::new(), StreamParams::new())
.run().unwrap();
let mut count = 3.0;
let mut intermediate = Vec::new();
for event in stream.by_ref() {
match event {
Event::In(input, _) => { ::std::mem::replace(&mut intermediate, input); }
Event::Out(output, settings) => {
for (output_sample, sample) in output.iter_mut().zip(intermediate.iter()) {
*output_sample = *sample;
}
count -= settings.frames as f32 / settings.sample_hz as f32;
if count <= 0.0 { break }
}
}
}
}