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