video: move drm object ids into type crate
This commit is contained in:
parent
524836bef3
commit
902853955b
5 changed files with 82 additions and 65 deletions
48
video-types/src/drm.rs
Normal file
48
video-types/src/drm.rs
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
pub const DRM_MODE_OBJECT_CRTC: u32 = 0xcccccccc;
|
||||
pub const DRM_MODE_OBJECT_CONNECTOR: u32 = 0xc0c0c0c0;
|
||||
pub const DRM_MODE_OBJECT_ENCODER: u32 = 0xe0e0e0e0;
|
||||
pub const DRM_MODE_OBJECT_PROPERTY: u32 = 0xb0b0b0b0;
|
||||
pub const DRM_MODE_OBJECT_FB: u32 = 0xfbfbfbfb;
|
||||
pub const DRM_MODE_OBJECT_BLOB: u32 = 0xbbbbbbbb;
|
||||
pub const DRM_MODE_OBJECT_PLANE: u32 = 0xeeeeeeee;
|
||||
|
||||
pub trait DrmObject {
|
||||
const TYPE: u32;
|
||||
const NONE: Self;
|
||||
fn id(&self) -> u32;
|
||||
fn is_some(&self) -> bool;
|
||||
fn is_none(&self) -> bool;
|
||||
}
|
||||
|
||||
macro_rules! drm_obj {
|
||||
($name:ident, $ty:expr) => {
|
||||
#[repr(transparent)]
|
||||
#[derive(Copy, Clone, Debug, Eq, PartialEq, Hash, Default, Ord, PartialOrd)]
|
||||
pub struct $name(pub u32);
|
||||
|
||||
impl DrmObject for $name {
|
||||
const TYPE: u32 = $ty;
|
||||
const NONE: Self = Self(0);
|
||||
|
||||
fn id(&self) -> u32 {
|
||||
self.0
|
||||
}
|
||||
|
||||
fn is_some(&self) -> bool {
|
||||
self.0 != 0
|
||||
}
|
||||
|
||||
fn is_none(&self) -> bool {
|
||||
self.0 == 0
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
drm_obj!(DrmCrtc, DRM_MODE_OBJECT_CRTC);
|
||||
drm_obj!(DrmConnector, DRM_MODE_OBJECT_CONNECTOR);
|
||||
drm_obj!(DrmEncoder, DRM_MODE_OBJECT_ENCODER);
|
||||
drm_obj!(DrmProperty, DRM_MODE_OBJECT_PROPERTY);
|
||||
drm_obj!(DrmFb, DRM_MODE_OBJECT_FB);
|
||||
drm_obj!(DrmBlob, DRM_MODE_OBJECT_BLOB);
|
||||
drm_obj!(DrmPlane, DRM_MODE_OBJECT_PLANE);
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
pub mod drm;
|
||||
pub mod dmabuf;
|
||||
|
||||
pub type Modifier = u64;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue