ds4_rs/dualshock4/
headset.rs

1pub const DATA_BLOCK_HEADSET:usize = 0x1e;
2
3pub const HEADSET_MASK_NONE:u8 = 0x1b;
4pub const HEADSET_MASK_HEADPHONES:u8 = 0x3b;
5pub const HEADSET_MASK_HEADSET_WITH_MIC:u8 = 0x7b;
6
7#[derive(PartialEq, Debug)]
8pub enum Headset {
9    None,
10    Headphones,
11    HeadsetWithMic,
12    Unknown
13}
14
15pub fn decode(buf: &[u8]) -> Headset {
16    let mask = buf[DATA_BLOCK_HEADSET];
17
18    return match mask {
19        HEADSET_MASK_NONE => Headset::None,
20        HEADSET_MASK_HEADPHONES => Headset::Headphones,
21        HEADSET_MASK_HEADSET_WITH_MIC => Headset::HeadsetWithMic,
22        _ => Headset::Unknown
23    }
24}