use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct SampleRate(pub u32);
impl SampleRate {
pub fn hz(n: u32) -> Self {
Self(n)
}
pub fn cd() -> Self {
Self(44100)
}
pub fn dvd() -> Self {
Self(48000)
}
pub fn hd() -> Self {
Self(96000)
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum ChannelLayout {
Mono,
Stereo,
Surround51,
Surround71,
Custom(u16),
}
impl ChannelLayout {
pub fn channel_count(&self) -> u16 {
match self {
Self::Mono => 1,
Self::Stereo => 2,
Self::Surround51 => 6,
Self::Surround71 => 8,
Self::Custom(n) => *n,
}
}
}