use myko::prelude::*;
use myko_macros::myko_item;
/// Durable, GLOBAL camera-control settings for the operator. Unlike `Viewer` /
/// `ControlLock`, this is NOT a child of `Client`, so it is NOT cascade-deleted on
/// disconnect — it persists across tab closes and previs relaunches (the previs pawn
/// resets to level defaults each launch, so the client re-applies these on connect).
/// One row, id `"global"`: the operator's tuning is shared across every stream.
#[myko_item]
pub struct CamPref {
pub focal: f32,
pub aperture: f32,
pub focus_method: String,
pub focus_dist: f32,
pub base_speed: f32,
pub look_scale: f32,
pub invert: bool,
pub glide: bool,
pub glide_secs: f32,
pub motion_blur: f32,
pub rail_speed: f32,
}
impl CamPref {
/// The single global row id.
pub fn row_id() -> CamPrefId {
"global".to_string().into()
}
}