10 releases
0.5.0 | Mar 2, 2023 |
---|---|
0.4.5 | Feb 28, 2023 |
0.4.4 | Nov 11, 2020 |
0.4.3 | Nov 10, 2019 |
0.1.0 | May 4, 2019 |
#356 in Audio
Used in gnudb
35KB
540 lines
Rust bindings for MusicBrainz libdiscid
About
discid provides Rust bindings for the MusicBrainz DiscID library libdiscid. It allows calculating DiscIDs (MusicBrainz and freedb) for Audio CDs. Additionally the library can extract the MCN/UPC/EAN and the ISRCs from disc.
Requirements
- libdiscid >= 0.6.0
Usage
Read only the TOC
use discid::DiscId;
fn main() {
// Specifying the device is optional. If set to `None` a platform
// specific default will be used.
let device = Some("/dev/cdrom");
let disc = DiscId::read(device).expect("Reading disc failed");
println!("ID: {}", disc.id());
}
Read the TOC and ISRCs
use discid::{DiscId, Features};
fn main() {
let disc = DiscId::read_features(None, Features::ISRC).expect("Reading disc failed");
println!("Disc ID: {}", disc.id());
for track in disc.tracks() {
println!("Track #{} ISRC: {}", track.number, track.isrc);
}
}
See the API documentation for details. Additional examples are available in the examples/ directory.
Contribute
The source code for rust-discid is available on SourceHut.
Please report any issues on the issue tracker.
Patches can be submitted to the mailing list. You can clone the repository directly on SourceHut and submit your changes with the "Prepare patchset" button. Please see SourceHut's documentation for sending patches upstream for details.
License
rust-discid Copyright (c) 2019-2023 by Philipp Wolfer ph.wolfer@gmail.com
rust-discid is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
See LICENSE for details.
Dependencies
~0.1–2MB
~40K SLoC