Skip to content

Commit 9756494

Browse files
committed
chore: Use &Mode instead of u8 in backend UI
1 parent 0e0c3ae commit 9756494

File tree

3 files changed

+12
-12
lines changed

3 files changed

+12
-12
lines changed

backend/src/layer.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use std::cell::Cell;
22

3-
use crate::{DaemonBoard, DaemonBoardWeak, Hs};
3+
use crate::{DaemonBoard, DaemonBoardWeak, Hs, Mode};
44

55
#[derive(Debug)]
66
pub struct Layer {
@@ -62,17 +62,18 @@ impl Layer {
6262
self.board.upgrade().unwrap()
6363
}
6464

65-
pub fn mode(&self) -> Option<(u8, u8)> {
66-
self.mode.get()
65+
pub fn mode(&self) -> Option<(&'static Mode, u8)> {
66+
let (index, speed) = self.mode.get()?;
67+
Some((Mode::from_index(index)?, speed))
6768
}
6869

69-
pub fn set_mode(&self, mode: u8, speed: u8) -> Result<(), String> {
70+
pub fn set_mode(&self, mode: &Mode, speed: u8) -> Result<(), String> {
7071
let board = self.board();
7172
board
7273
.0
7374
.daemon
74-
.set_mode(board.0.board, self.layer, mode, speed)?;
75-
self.mode.set(Some((mode, speed)));
75+
.set_mode(board.0.board, self.layer, mode.index, speed)?;
76+
self.mode.set(Some((mode.index, speed)));
7677
board.0.leds_changed.set(true);
7778
Ok(())
7879
}

src/application/backlight.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ impl Backlight {
287287

288288
let speed = self.inner().speed_scale.get_value();
289289
let layer = &self.board().layers()[self.inner().layer.get() as usize];
290-
if let Err(err) = layer.set_mode(self.mode().index, speed as u8) {
290+
if let Err(err) = layer.set_mode(self.mode(), speed as u8) {
291291
error!("Error setting keyboard mode: {}", err);
292292
}
293293
}
@@ -310,13 +310,12 @@ impl Backlight {
310310

311311
let layer = &self.board().layers()[layer as usize];
312312

313-
let (mode, speed) = layer.mode().unwrap_or((0, 128));
314-
let mode = Mode::from_index(mode).map(|x| x.id);
313+
let (mode, speed) = layer.mode().unwrap_or((&Mode::all()[0], 128));
315314
let brightness = layer.brightness() as f64;
316315

317316
self.inner().do_not_set.set(true);
318317

319-
self.inner().mode_combobox.set_active_id(mode);
318+
self.inner().mode_combobox.set_active_id(Some(mode.id));
320319
self.inner().speed_scale.set_value(speed.into());
321320
self.inner().brightness_scale.set_value(brightness);
322321
if !self.mode().is_per_key() {

src/choose_color.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use glib::clone;
33
use gtk::prelude::*;
44

55
use crate::ColorWheel;
6-
use backend::{DaemonBoard, Hs};
6+
use backend::{DaemonBoard, Hs, Mode};
77

88
pub fn choose_color<W: IsA<gtk::Widget>, F: Fn(Option<Hs>) + 'static>(
99
board: DaemonBoard,
@@ -17,7 +17,7 @@ pub fn choose_color<W: IsA<gtk::Widget>, F: Fn(Option<Hs>) + 'static>(
1717
let original_mode = layer.mode();
1818

1919
if original_mode.is_some() {
20-
if let Err(err) = layer.set_mode(0, 0) {
20+
if let Err(err) = layer.set_mode(&Mode::all()[0], 0) {
2121
error!("Failed to set keyboard mode: {}", err);
2222
}
2323
}

0 commit comments

Comments
 (0)