2023-02-06 01:22:32 +01:00
|
|
|
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,
|
2023-02-06 21:27:40 +01:00
|
|
|
Buffering,
|
2023-02-06 01:22:32 +01:00
|
|
|
Exit,
|
|
|
|
FileLoaded(FileInfo),
|
2023-02-06 21:27:40 +01:00
|
|
|
Play(i64),
|
|
|
|
Pause(i64),
|
2023-02-06 01:22:32 +01:00
|
|
|
Seek(i64)
|
|
|
|
}
|
|
|
|
|
2023-02-06 21:27:40 +01:00
|
|
|
pub enum MpvRequest {
|
|
|
|
OSDMessage(&'static str)
|
2023-02-06 01:22:32 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
pub trait MpvEventHandler {
|
|
|
|
fn handle_event(&mut self, event: MpvEvent) -> Result<(), &'static str>;
|
2023-02-06 21:27:40 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
pub trait MpvRequester {
|
|
|
|
fn next_request<'a>(&mut self) -> Option<MpvRequest>;
|
2023-02-06 21:35:53 +01:00
|
|
|
}
|