use std::path::PathBuf;
use serde::{Deserialize, Serialize};
use crate::time::TimeRange;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct OverlayConfig {
pub overlay_type: OverlayType,
pub position: Position,
pub size: Option<Size>,
pub opacity: f32,
pub time_range: Option<TimeRange>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[non_exhaustive]
pub enum OverlayType {
Text(TextOverlay),
Image(PathBuf),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TextOverlay {
pub text: String,
pub font_family: Option<String>,
pub font_size: Option<u16>,
pub color: Option<String>,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize)]
pub struct Position {
pub x: f32,
pub y: f32,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize)]
pub struct Size {
pub width: f32,
pub height: f32,
}