diff --git a/src/backend.rs b/src/backend.rs index c93dbe8e..08b14ad2 100644 --- a/src/backend.rs +++ b/src/backend.rs @@ -124,6 +124,13 @@ impl Display for ConnectorKernelId { } } +bitflags! { + ConnectorCaps: u32; + CONCAP_CONNECTOR = 1 << 0, + CONCAP_MODE_SETTING = 1 << 1, + CONCAP_PHYSICAL_DISPLAY = 1 << 2, +} + pub trait Connector: Any { fn id(&self) -> ConnectorId; fn kernel_id(&self) -> ConnectorKernelId; @@ -132,6 +139,10 @@ pub trait Connector: Any { fn damage(&self); fn drm_dev(&self) -> Option; fn effectively_locked(&self) -> bool; + #[expect(dead_code)] + fn caps(&self) -> ConnectorCaps { + ConnectorCaps::none() + } fn drm_feedback(&self) -> Option> { None } diff --git a/src/backends/metal/video.rs b/src/backends/metal/video.rs index 4b1aaaed..bd8e10f4 100644 --- a/src/backends/metal/video.rs +++ b/src/backends/metal/video.rs @@ -4,9 +4,10 @@ use { async_engine::{Phase, SpawnedFuture}, backend::{ BackendColorSpace, BackendConnectorState, BackendDrmDevice, BackendDrmLease, - BackendDrmLessee, BackendEvent, BackendLuminance, BackendTransferFunction, Connector, - ConnectorEvent, ConnectorId, ConnectorKernelId, DrmDeviceId, HardwareCursor, - HardwareCursorUpdate, Mode, MonitorInfo, + BackendDrmLessee, BackendEvent, BackendLuminance, BackendTransferFunction, + CONCAP_CONNECTOR, CONCAP_MODE_SETTING, CONCAP_PHYSICAL_DISPLAY, Connector, + ConnectorCaps, ConnectorEvent, ConnectorId, ConnectorKernelId, DrmDeviceId, + HardwareCursor, HardwareCursorUpdate, Mode, MonitorInfo, transaction::{ BackendConnectorTransaction, BackendConnectorTransactionError, BackendConnectorTransactionType, BackendConnectorTransactionTypeDyn, @@ -854,6 +855,10 @@ impl Connector for MetalConnector { fb.locked } + fn caps(&self) -> ConnectorCaps { + CONCAP_CONNECTOR | CONCAP_MODE_SETTING | CONCAP_PHYSICAL_DISPLAY + } + fn drm_feedback(&self) -> Option> { self.drm_feedback.get() }