pub mod mp3;
pub mod music_player;
pub mod ogg;
pub mod wav;
pub trait PcmConverter<T> {
fn samples(self) -> Vec<AudioSample<T>>;
}
#[derive(Copy, Clone)]
pub struct AudioSample<T> {
pub channel: [T; 2],
}
pub trait AudioBuffer<T: Copy> {
fn read(&mut self, out: &mut [AudioSample<T>]) -> usize;
fn seek_to_start(&mut self);
}
impl<T> From<[T; 2]> for AudioSample<T> {
fn from(list: [T; 2]) -> Self {
Self { channel: list }
}
}