bitflags::bitflags! {
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct HdmiVsdbFlags: u8 {
const SUPPORTS_AI = 0x80;
const DC_48BIT = 0x40;
const DC_36BIT = 0x20;
const DC_30BIT = 0x10;
const DC_Y444 = 0x08;
const DVI_DUAL = 0x01;
}
}
#[non_exhaustive]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct HdmiVsdb {
pub source_physical_address: u16,
pub flags: HdmiVsdbFlags,
pub max_tmds_clock_mhz: Option<u16>,
pub video_latency_ms: Option<u16>,
pub audio_latency_ms: Option<u16>,
pub interlaced_video_latency_ms: Option<u16>,
pub interlaced_audio_latency_ms: Option<u16>,
}
impl HdmiVsdb {
#[allow(clippy::too_many_arguments)]
pub fn new(
source_physical_address: u16,
flags: HdmiVsdbFlags,
max_tmds_clock_mhz: Option<u16>,
video_latency_ms: Option<u16>,
audio_latency_ms: Option<u16>,
interlaced_video_latency_ms: Option<u16>,
interlaced_audio_latency_ms: Option<u16>,
) -> Self {
Self {
source_physical_address,
flags,
max_tmds_clock_mhz,
video_latency_ms,
audio_latency_ms,
interlaced_video_latency_ms,
interlaced_audio_latency_ms,
}
}
}