use bytes::Bytes; use enum_ordinalize::Ordinalize; use rgb::RGB8; use crate::characteristics::LoupedeckButton; #[derive(Debug, Ordinalize)] #[repr(u8)] pub enum VibrationPattern { Short = 0x01, Medium = 0x0a, Long = 0x0f, Low = 0x31, ShortLow = 0x32, ShortLower = 0x33, Lower = 0x40, Lowest = 0x41, DescendSlow = 0x46, DescendMed = 0x47, DescendFast = 0x48, AscendSlow = 0x52, AscendMed = 0x53, AscendFast = 0x58, RevSlowest = 0x5e, RevSlow = 0x5f, RevMed = 0x60, RevFast = 0x61, RevFaster = 0x62, RevFastest = 0x63, RiseFall = 0x6a, Buzz = 0x70, Rumble5 = 0x77, Rumble4 = 0x78, Rumble3 = 0x79, Rumble2 = 0x7a, Rumble1 = 0x7b, VeryLong = 0x76, } #[derive(Debug)] pub(crate) enum LoupedeckCommand { RequestSerialNumber, RequestFirmwareVersion, SetBrightness(f32), SetButtonColor { button: LoupedeckButton, color: RGB8, }, ReplaceFramebufferArea { display_id: u8, x: u16, y: u16, width: u16, height: u16, buffer: Bytes, }, RefreshDisplay { display_id: u8, }, Vibrate { pattern: VibrationPattern, }, }