deckster/loupedeck_serial/src/commands.rs

63 lines
1.2 KiB
Rust

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,
},
}