use std::rc::Rc;
use crate::engine::d2::{
animation::AnimatedFloat,
util::{Disposable, Value},
};
use super::Sound;
pub trait Playback: Disposable {
fn volume(&self) -> AnimatedFloat;
fn set_volume(&self, val: AnimatedFloat);
fn paused(&self) -> bool;
fn set_paused(&self, val: bool);
fn complete(&self) -> Value<bool>;
fn set_complete(&self, val: Value<bool>);
fn position(&self) -> f32;
fn set_position(&self, pos: f32);
fn sound(&self) -> Rc<dyn Sound>;
}