read_track/
read_track.rs

1use cd_da_reader::CdReader;
2
3fn main() -> Result<(), Box<dyn std::error::Error>> {
4    read_cd()?;
5    Ok(())
6}
7
8#[cfg(target_os = "windows")]
9fn read_cd() -> Result<(), Box<dyn std::error::Error>> {
10    let reader = CdReader::open(r"\\.\E:")?;
11    let toc = reader.read_toc()?;
12    println!("{:#?}", toc);
13
14    let data = reader.read_track(&toc, 11)?;
15    let wav_track = CdReader::create_wav(data);
16    std::fs::write("myfile.wav", wav_track)?;
17
18    Ok(())
19}
20
21#[cfg(target_os = "macos")]
22fn read_cd() -> Result<(), Box<dyn std::error::Error>> {
23    let reader = CdReader::open("disk6")?;
24    let toc = reader.read_toc()?;
25    println!("{:#?}", toc);
26
27    let data = reader.read_track(&toc, 11)?;
28    let wav_track = CdReader::create_wav(data);
29    std::fs::write("myfile.wav", wav_track)?;
30
31    Ok(())
32}
33
34#[cfg(target_os = "linux")]
35fn read_cd() -> Result<(), Box<dyn std::error::Error>> {
36    let reader = CdReader::open("/dev/sr0")?;
37    let toc = reader.read_toc()?;
38    println!("{:#?}", toc);
39
40    let data = reader.read_track(&toc, 11)?;
41    let wav_track = CdReader::create_wav(data);
42    std::fs::write("myfile.wav", wav_track)?;
43
44    Ok(())
45}