torque_tracker_engine/
channel.rs

1#[derive(Debug, Clone, Copy)]
2pub enum Pan {
3    /// Value ranges from 0 to 64, with 32 being center
4    Value(u8),
5    Surround,
6    Disabled,
7}
8
9impl Default for Pan {
10    fn default() -> Self {
11        Self::Value(32)
12    }
13}
14
15impl TryFrom<u8> for Pan {
16    type Error = u8;
17
18    fn try_from(value: u8) -> Result<Self, Self::Error> {
19        match value {
20            100 => Ok(Self::Surround),
21            128 => Ok(Self::Disabled),
22            0..=64 => Ok(Self::Value(value)),
23            _ => Err(value),
24        }
25    }
26}