Little refactor
This commit is contained in:
parent
0d99991827
commit
b5b7ca104b
5 changed files with 16 additions and 11 deletions
59
src/card.rs
59
src/card.rs
|
@ -1,59 +0,0 @@
|
|||
use drm::Device;
|
||||
use drm::control::Device as ControlDevice;
|
||||
use std::os::fd::{AsFd, BorrowedFd};
|
||||
use std::fmt::Debug;
|
||||
|
||||
// A simple wrapper for a device node.
|
||||
pub struct Card(std::fs::File);
|
||||
|
||||
/// Implementing [`AsFd`] is a prerequisite to implementing the traits found
|
||||
/// in this crate. Here, we are just calling [`File::as_fd()`] on the inner
|
||||
/// [`File`].
|
||||
impl AsFd for Card {
|
||||
fn as_fd(&self) -> BorrowedFd<'_> {
|
||||
self.0.as_fd()
|
||||
}
|
||||
}
|
||||
|
||||
/// Simple helper methods for opening a `Card`.
|
||||
impl Card {
|
||||
pub fn open(path: &str) -> anyhow::Result<Self> {
|
||||
let mut options = std::fs::OpenOptions::new();
|
||||
options.read(true);
|
||||
options.write(true);
|
||||
|
||||
let file = options.open(path)?;
|
||||
|
||||
Ok(Card(file))
|
||||
}
|
||||
}
|
||||
|
||||
impl drm::Device for Card {}
|
||||
|
||||
impl Debug for Card {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
writeln!(f, "Driver version: {:?}\n", self.get_driver())?;
|
||||
writeln!(f, "BUS ID: {:?}\n", self.get_bus_id())?;
|
||||
|
||||
writeln!(f, "Driver capatibilities:")?;
|
||||
writeln!(f, "\tDumpBuffer: {:?}", self.get_driver_capability(drm::DriverCapability::DumbBuffer).ok())?;
|
||||
writeln!(f, "\tVBlankHighCRTC: {:?}", self.get_driver_capability(drm::DriverCapability::VBlankHighCRTC).ok())?;
|
||||
writeln!(f, "\tDumbPreferredDepth: {:?}", self.get_driver_capability(drm::DriverCapability::DumbPreferredDepth).ok())?;
|
||||
writeln!(f, "\tDumbPreferShadow: {:?}", self.get_driver_capability(drm::DriverCapability::DumbPreferShadow).ok())?;
|
||||
writeln!(f, "\tPrime: {:?}", self.get_driver_capability(drm::DriverCapability::Prime).ok())?;
|
||||
writeln!(f, "\tMonotonicTimestamp: {:?}", self.get_driver_capability(drm::DriverCapability::MonotonicTimestamp).ok())?;
|
||||
writeln!(f, "\tASyncPageFlip: {:?}", self.get_driver_capability(drm::DriverCapability::ASyncPageFlip).ok())?;
|
||||
writeln!(f, "\tAtomicASyncPageFlip: {:?}", self.get_driver_capability(drm::DriverCapability::AtomicASyncPageFlip).ok())?;
|
||||
writeln!(f, "\tCursorWidth: {:?}", self.get_driver_capability(drm::DriverCapability::CursorWidth).ok())?;
|
||||
writeln!(f, "\tCursorHeight: {:?}", self.get_driver_capability(drm::DriverCapability::CursorHeight).ok())?;
|
||||
writeln!(f, "\tAddFB2Modifiers: {:?}", self.get_driver_capability(drm::DriverCapability::AddFB2Modifiers).ok())?;
|
||||
writeln!(f, "\tPageFlipTarget: {:?}", self.get_driver_capability(drm::DriverCapability::PageFlipTarget).ok())?;
|
||||
writeln!(f, "\tCRTCInVBlankEvent: {:?}", self.get_driver_capability(drm::DriverCapability::CRTCInVBlankEvent).ok())?;
|
||||
writeln!(f, "\tSyncObj: {:?}", self.get_driver_capability(drm::DriverCapability::SyncObj).ok())?;
|
||||
writeln!(f, "\tTimelineSyncObj: {:?}", self.get_driver_capability(drm::DriverCapability::TimelineSyncObj).ok())?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
impl ControlDevice for Card {}
|
Loading…
Add table
Add a link
Reference in a new issue