#[derive(Debug, Default, Clone, serde::Serialize, serde::Deserialize)]
pub struct DeviceInfo {
pub manufacturer: String,
pub model: String,
pub firmware_version: String,
pub serial_number: String,
pub hardware_id: String,
}
#[derive(Debug, Clone, PartialEq)]
pub enum ScopeDefinition {
Fixed,
Configurable,
}
#[derive(Debug, Clone)]
pub struct Scope {
pub scope_def: ScopeDefinition,
pub scope_item: String,
}
#[derive(Debug, Clone)]
pub struct HostnameInformation {
pub from_dhcp: bool,
pub name: Option<String>,
}
#[derive(Debug, Clone)]
pub struct NetworkInterface {
pub token: String,
pub enabled: bool,
pub name: String,
pub hw_address: String,
pub mtu: u32,
}
#[derive(Debug, Clone)]
pub struct MediaProfile {
pub token: String,
pub name: String,
pub video_source_token: String,
pub width: u32,
pub height: u32,
pub encoding: String,
pub framerate: u32,
pub bitrate: u32,
}
#[derive(Debug, Clone)]
pub struct VideoSource {
pub token: String,
pub framerate: f32,
pub width: i32,
pub height: i32,
}
#[derive(Debug, Clone)]
pub struct VideoSourceConfiguration {
pub token: String,
pub name: String,
pub source_token: String,
pub bounds_x: i32,
pub bounds_y: i32,
pub bounds_width: i32,
pub bounds_height: i32,
}
#[derive(Debug, Clone)]
pub struct VideoEncoderConfiguration {
pub token: String,
pub name: String,
pub encoding: String,
pub width: i32,
pub height: i32,
pub framerate: i32,
pub bitrate: i32,
}
#[derive(Debug, Clone)]
pub struct PTZStatusResult {
pub pan_tilt_moving: bool,
pub zoom_moving: bool,
}
#[derive(Debug, Clone)]
pub struct PTZPreset {
pub token: String,
pub name: String,
}
#[derive(Debug, Clone, Default)]
pub struct ImagingSettings {
pub brightness: Option<f32>,
pub color_saturation: Option<f32>,
pub contrast: Option<f32>,
pub sharpness: Option<f32>,
pub white_balance_cr_gain: Option<f32>,
pub white_balance_cb_gain: Option<f32>,
}