extern crate sound_stream;
use sound_stream::{CallbackFlags, CallbackResult, SoundStream, Settings, StreamParams};
fn main() {
let mut count = 3.0;
let f = Box::new(move |i: &[f32], _: Settings, o: &mut[f32], _: Settings, dt: f64, _: CallbackFlags| {
for (output_sample, input_sample) in o.iter_mut().zip(i.iter()) {
*output_sample = *input_sample;
}
count -= dt;
if count >= 0.0 { CallbackResult::Continue } else { CallbackResult::Complete }
});
let stream = SoundStream::new()
.frames_per_buffer(512)
.duplex(StreamParams::new(), StreamParams::new())
.run_callback(f)
.unwrap();
while let Ok(true) = stream.is_active() {}
}