use std::time::Instant;
#[derive(Debug)]
pub struct PlayHead {
old_time:u128,
paused:bool,
time_lapsed:Instant,
}
impl PlayHead {
pub fn new()->Self{
PlayHead {
paused:true,
old_time: 0,
time_lapsed : Instant::now(), }
}
pub fn play(&mut self)->bool{
if self.paused == true{
self.time_lapsed = Instant::now();
self.paused = false;
}
true
}
pub fn time(&self)->u128{
if self.paused == false{
self.time_lapsed.elapsed().as_millis() + self.old_time
}else {
self.old_time
}
}
pub fn pause (&mut self)->bool{
if self.paused == false{
self.old_time += self.time_lapsed.elapsed().as_millis();
self.paused = true;
}
true
}
pub fn stop(&mut self)->bool{
self.paused = true;
self.old_time = 0;
true
}
}