mpv-rpc/src/mpv_event_queue/events.rs

41 lines
918 B
Rust
Raw Normal View History

use std::fmt::Display;
pub struct FileInfo {
pub filename: String,
pub metadata: FileMetadata
}
pub struct FileMetadata {
pub artist: Option<String>,
pub album: Option<String>,
pub title: Option<String>,
pub track: Option<String>
}
pub enum MpvEvent {
Toggle,
Play,
Pause,
Exit,
FileLoaded(FileInfo),
Seek(i64)
}
impl Display for MpvEvent {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
let event_name = match self {
MpvEvent::Toggle => "Toggle",
MpvEvent::Play => "Play",
MpvEvent::Pause => "Pause",
MpvEvent::Exit => "Exit",
MpvEvent::FileLoaded(_) => "FileLoaded",
MpvEvent::Seek(_) => "Seek"
};
write!(f, "{}", event_name)
}
}
pub trait MpvEventHandler {
fn handle_event(&mut self, event: MpvEvent) -> Result<(), &'static str>;
}