extern crate ears;
use std::io::stdin;
use std::io::stdout;
use std::io::Write;
use ears::{Music, AudioController};
use ears::State::{Playing, Stopped, Paused};
fn main() {
let stdin = stdin();
print!("Insert the path to an audio file: ");
stdout().flush().ok();
let mut line = String::new();
stdin.read_line(&mut line).ok();
loop {
match &line[line.len()-1..] {
"\n" => { line.pop(); () },
"\r" => { line.pop(); () },
_ => { break; },
}
}
let mut music = Music::new(&line[..]).expect("Error loading music.");
music.play();
loop {
println!("Commands :\n\tPlay : l\n\tPause : p\n\tStop : s\n\tExit : x\n");
let mut cmd = String::new();
stdin.read_line(&mut cmd).ok();
match &cmd[..1] {
"l" => music.play(),
"p" => music.pause(),
"s" => music.stop(),
"x" => { music.stop(); break; },
_ => println!("Unknown command.")
}
match music.get_state() {
Playing => println!("State : Playing"),
Stopped => println!("State : Stopped"),
Paused => println!("State : Paused"),
_ => unreachable!()
};
}
println!("Goodbye!");
}