pub type SampleHz = u32;
pub type Frames = u16;
pub type Channels = u16;
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct Settings {
pub sample_hz: SampleHz,
pub frames: Frames,
pub channels: Channels,
}
impl Settings {
pub fn new(sample_hz: SampleHz, frames: Frames, channels: Channels) -> Settings {
Settings {
sample_hz: sample_hz,
frames: frames,
channels: channels
}
}
pub fn cd_quality() -> Settings {
Settings {
sample_hz: 44100,
frames: 256,
channels: 2
}
}
pub fn buffer_size(&self) -> usize {
self.frames as usize * self.channels as usize
}
}
impl ::std::default::Default for Settings {
fn default() -> Settings { Settings::cd_quality() }
}