1use discid::{DiscId, Features};
2use std::env;
3
4fn main() {
5 let arg1 = env::args().nth(1).unwrap_or_default();
7 let device = if !arg1.is_empty() {
8 Some(&arg1[..])
9 } else {
10 None
11 };
12 let result = DiscId::read_features(device, Features::all());
13
14 match result {
15 Ok(disc) => print_disc_info(disc),
16 Err(e) => {
17 eprintln!("{}", e);
18 std::process::exit(1);
19 }
20 }
21}
22
23fn print_disc_info(disc: DiscId) {
24 println!("DiscID : {}", disc.id());
25 println!("FreeDB ID : {}", disc.freedb_id());
26 println!("TOC : {}", disc.toc_string());
27 println!("MCN : {}", disc.mcn());
28 println!("First track : {}", disc.first_track_num());
29 println!("Last track : {}", disc.last_track_num());
30 println!("Sectors : {}\n", disc.sectors());
31
32 for track in disc.tracks() {
33 println!("Track #{}", track.number);
34 println!(" ISRC : {}", track.isrc);
35 println!(" Offset : {}", track.offset);
36 println!(" Sectors : {}", track.sectors);
37 }
38}