2 releases
0.1.1 | Sep 5, 2022 |
---|---|
0.1.0 | Aug 31, 2022 |
#766 in Hardware support
241 downloads per month
Used in 3 crates
(via playdate-device)
41KB
971 lines
Eject
A Rust library to control the tray of your CD drive.
Currently supporting Windows and Linux.
Features
- Find installed drives.
- Open, close and lock the tray.
- Query current tray position and whether there's a disc inside.
Examples
Basic usage
use eject::{device::Device, discovery::cd_drives};
// Open the drive at this path
let cdrom = Device::open("/dev/cdrom")?;
// Or get the first one available
let cdrom_path = cd_drives().next().unwrap();
let cdrom = Device::open(&cdrom_path)?;
// Open the tray
cdrom.eject()?;
Find all CD drives
use eject::{device::Device, discovery::cd_drives};
// Get the paths of all CD drives
for path in cd_drives() {
// Print the path
println!("{:?}", path);
// Access the drive
let drive = Device::open(path)?;
// Close its tray
drive.retract()?;
}
Get drive status
use eject::{device::{Device, DriveStatus}, discovery::cd_drives};
// Open a drive
let drive = Device::open("/dev/cdrom")?;
// Print its status
match drive.status()? {
DriveStatus::Empty =>
println!("The tray is closed and no disc is inside"),
DriveStatus::TrayOpen =>
println!("The tray is open"),
DriveStatus::NotReady =>
println!("This drive is not ready yet"),
DriveStatus::Loaded =>
println!("There's a disc inside"),
}
Dependencies
~2–39MB
~578K SLoC