use rodio::{Sink, Source, mixer::Mixer};
use std::ops::{Deref, DerefMut};
pub struct Player {
pub sink: Sink,
}
impl Player {
pub fn new<T: Source + Send + 'static>(input: T, mixer: &Mixer) -> Self {
let sink = rodio::Sink::connect_new(mixer);
sink.append(input);
Self { sink }
}
}
impl Deref for Player {
type Target = Sink;
fn deref(&self) -> &Self::Target {
&self.sink
}
}
impl DerefMut for Player {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.sink
}
}