use crate::constants::*;
#[derive(Clone)]
pub struct ControlSpec {
pub frame_delay: Option<u32>,
pub fade_duration: Option<u32>,
pub start_delay: Option<u32>,
}
impl Default for ControlSpec {
fn default() -> Self {
ControlSpec {
frame_delay: Some(DEFAULT_CONTROL_FRAME_DELAY),
fade_duration: Some(DEFAULT_CONTROL_FADE_DURATION),
start_delay: Some(DEFAULT_CONTROL_START_DELAY),
}
}
}
#[rustfmt::skip]
pub(crate) fn extract_control_primitives(control: &ControlSpec) -> (u32, u32, u32) {
(
control.frame_delay.unwrap_or(DEFAULT_CONTROL_FRAME_DELAY),
control.fade_duration.unwrap_or(DEFAULT_CONTROL_FADE_DURATION),
control.start_delay.unwrap_or(DEFAULT_CONTROL_START_DELAY),
)
}