use std::sync::Arc; use anyhow::Result; use rfactor_sm_reader::{rF2VehicleTelemetry, VehicleScoringInfoV01}; use ui::prelude::*; use crate::overlay::{ rfactor_data::{DataReceiver, GamePhase}, UiOverlay, }; pub struct Watermark { gui: Arc, } impl Watermark { pub fn new(gui_handler: &Arc) -> Result { const DESC: &str = include_str!("watermark.xml"); let gui = GuiBuilder::from_str(gui_handler, DESC)?; Ok(Self { gui }) } } impl UiOverlay for Watermark {} impl DataReceiver for Watermark { fn scoring_update( &mut self, phase: GamePhase, _vehicle_scoring: &[VehicleScoringInfoV01], ) -> Result<()> { match phase { GamePhase::TestDay => self.gui.enable()?, _ => self.gui.disable()?, } Ok(()) } fn telemetry_update( &mut self, _player_id: Option, _telemetries: &[rF2VehicleTelemetry], ) -> Result<()> { Ok(()) } }