pub use yog_event::video::Picture;
use yog_event::video::{Close, Cutscene, Frame, Open, Play, Seek};
use crate::call;
pub fn cutscene(id: &str, skippable: bool) -> bool {
call(&Cutscene {
id: id.to_owned(),
skippable,
}) == Some(true)
}
#[derive(Debug, PartialEq, Eq)]
pub struct Player(u32);
impl Player {
pub fn open(id: &str) -> Option<Player> {
call(&Open { id: id.to_owned() }).flatten().map(Player)
}
pub fn play(&self) {
call(&Play {
handle: self.0,
playing: true,
});
}
pub fn pause(&self) {
call(&Play {
handle: self.0,
playing: false,
});
}
pub fn seek(&self, seconds: f64) {
call(&Seek {
handle: self.0,
seconds,
});
}
pub fn frame(&self) -> Option<Picture> {
call(&Frame { handle: self.0 }).flatten()
}
}
impl Drop for Player {
fn drop(&mut self) {
call(&Close { handle: self.0 });
}
}