Update dependencies, allow changing the screen brightness dynamically

This commit is contained in:
Moritz Ruth 2024-06-17 13:25:17 +02:00
parent e2f4aac438
commit 95f34add08
Signed by: moritzruth
GPG key ID: C9BBAB79405EE56D
22 changed files with 1021 additions and 844 deletions

View file

@ -7,8 +7,8 @@ edition = "2021"
serialport = "4.3.0"
enum-ordinalize = "4.3.0"
enumset = "1.1.3"
bytes = "1.5.0"
thiserror = "1.0.52"
bytes = "1.6.0"
thiserror = "1.0.61"
rgb = "0.8.37"
flume = "0.11.0"
serde = { version = "1.0.195", features = ["derive"] }
serde = { version = "1.0.203", features = ["derive"] }

View file

@ -43,7 +43,7 @@ pub enum VibrationPattern {
pub(crate) enum LoupedeckCommand {
RequestSerialNumber,
RequestFirmwareVersion,
SetBrightness(f32),
SetBrightness(u8),
SetButtonColor {
button: LoupedeckButton,
color: RGB8,

View file

@ -103,7 +103,10 @@ impl LoupedeckDevice {
self.events_receiver.clone()
}
pub fn set_brightness(&self, value: f32) {
/// Sets the screen brightness.
///
/// `value` must be in 0..10. Higher values are clamped to 10.
pub fn set_brightness(&self, value: u8) {
self.commands_sender.send(LoupedeckCommand::SetBrightness(value)).unwrap();
}

View file

@ -263,10 +263,7 @@ pub(crate) fn write_messages_worker(mut port: Box<dyn SerialPort>, receiver: flu
let result = match command {
LoupedeckCommand::RequestSerialNumber => send(0x03, Bytes::new()),
LoupedeckCommand::RequestFirmwareVersion => send(0x07, Bytes::new()),
LoupedeckCommand::SetBrightness(value) => {
let raw_value = (value.clamp(0f32, 1f32) * 10.0) as u8;
send(0x09, Bytes::copy_from_slice(&[raw_value]))
}
LoupedeckCommand::SetBrightness(value) => send(0x09, Bytes::copy_from_slice(&[value])),
LoupedeckCommand::SetButtonColor { button, color } => send(0x02, Bytes::copy_from_slice(&[button.ordinal(), color.r, color.g, color.b])),
LoupedeckCommand::ReplaceFramebufferArea {
display_id,