use std::{ fs::File, io::BufReader, path::PathBuf, sync::Arc, thread, }; use cosmic::{ dialog::ashpd::url::Url, iced::{ font::{Family, Stretch, Style, Weight}, Background, Border, Color, ContentFit, Font, Length, Shadow, Vector, }, iced_widget::{ scrollable::{ scroll_by, scroll_to, AbsoluteOffset, Direction, Scrollbar, }, stack, }, prelude::*, widget::{ container, image, mouse_area, responsive, scrollable, text, Container, Id, Responsive, Row, Space, }, Task, }; use iced_video_player::{Position, Video, VideoPlayer}; use rodio::{Decoder, OutputStream, Sink}; use tracing::{debug, error}; use crate::{ core::{service_items::ServiceItemModel, slide::Slide}, BackgroundKind, }; // #[derive(Default, Clone, Debug)] pub(crate) struct Presenter { pub slides: Vec, pub items: ServiceItemModel, pub current_slide: Slide, pub current_slide_index: u16, pub video: Option