Files
to-hen/rusty-jeep/src/main.rs
2023-01-07 09:35:27 +01:00

30 lines
969 B
Rust

use rodio::source::{SineWave, Source};
use rodio::{OutputStream, Sink};
use std::io;
use std::time::Duration;
fn main() {
let (_stream, stream_handle) = OutputStream::try_default().unwrap();
let sink = Sink::try_new(&stream_handle).unwrap();
for input_line in io::stdin().lines() {
if let [frequency_str, duration_str] = input_line
.expect("Input empty?")
.trim()
.split_whitespace()
.collect::<Vec<_>>()
.as_slice()
{
let frequency: u32 = frequency_str.parse().expect("Input not an integer");
let duration: u32 = duration_str.parse().expect("Input not an integer");
let sound = SineWave::new(frequency as f32)
.take_duration(Duration::from_millis(duration as u64));
sink.append(sound);
} else {
panic!("Expected two integers: FREQUENCY DURATION")
}
}
sink.sleep_until_end();
}