read_first_track/
read_first_track.rs1use cd_da_reader::CdReader;
3
4fn main() -> Result<(), Box<dyn std::error::Error>> {
5 let reader = CdReader::open_default()?;
6 let toc = reader.read_toc()?;
7
8 let first_audio = toc
9 .tracks
10 .iter()
11 .find(|t| t.is_audio)
12 .ok_or("no audio tracks found")?;
13
14 println!("Reading track {}...", first_audio.number);
15 let data = reader.read_track(&toc, first_audio.number)?;
16
17 let wav = CdReader::create_wav(data);
18 let filename = format!("track{:02}.wav", first_audio.number);
19 std::fs::write(&filename, wav)?;
20 println!("Saved {}", filename);
21
22 Ok(())
23}