pub struct V2ipScalingSettings {
pub mode: MxrSignalType,
pub refresh: u16,
pub flags: u8,
}Expand description
A V2IP output’s scaling mode, refresh rate and flags.
Fields§
§mode: MxrSignalTypeThe signal type the output scales to.
refresh: u16Refresh rate in Hz.
flags: u8The flag bits below.
Implementations§
Source§impl V2ipScalingSettings
impl V2ipScalingSettings
Sourcepub const fn configured_mode(&self) -> Option<(MxrSignalType, u16)>
pub const fn configured_mode(&self) -> Option<(MxrSignalType, u16)>
The mode this sink is configured to scale to, None when it has none.
The two are distinct on the wire: a sink with no mode configured leaves
SCALING_FLAG_MODE_VALID clear, and never sets it over a zero mode.
Trust it only where the sender reports
crate::DeviceInfo::config_initialised. Firmware without that builds
this block over uninitialised stack, where the valid bit itself is
noise.
Sourcepub const fn auto_scaling(&self) -> Option<bool>
pub const fn auto_scaling(&self) -> Option<bool>
Whether the output scales automatically, None when the sender did not
say.
Sourcepub const fn match_source(&self) -> Option<bool>
pub const fn match_source(&self) -> Option<bool>
Whether the output follows its source’s format, None when the device
has never said.
Firmware with this option announces it on every configuration it sends about itself, so a device that has reported it once is known to have it. The cached block accumulates its validity bits, so a later write carrying only the first options group does not take that back.
Reported only from a sender announcing
crate::DeviceInfo::config_initialised, so this needs no caveat of
its own: no firmware has these options without that announcement, and
one that lacks it would be reporting uninitialised stack. That is the
difference from Self::configured_mode, which is reported from any
sender because a mode can be genuine on one of those.
Sourcepub const fn skip_420(&self) -> Option<bool>
pub const fn skip_420(&self) -> Option<bool>
Whether the output declines 4:2:0 rather than scaling it, None when
the device has never said. Reported on the same terms as
Self::match_source, which shares its validity bit.
Sourcepub fn merge(self, previous: Self) -> Self
pub fn merge(self, previous: Self) -> Self
Folds a received scaling config onto the cached one, field by field.
A write carries the mode or the options alone, so taking the block
wholesale would drop whichever half was not being written. The options
branch replaces the option bit rather than adding to it, which is what
lets an options-only write clear SCALING_FLAG_AUTO_SCALING.