Skip to content

Commit 124c146

Browse files
committed
fix: revert led not working properly
1 parent d1d78dd commit 124c146

File tree

2 files changed

+17
-16
lines changed

2 files changed

+17
-16
lines changed

server/src/ps_move/controller.rs

+16-15
Original file line numberDiff line numberDiff line change
@@ -103,14 +103,29 @@ impl PsMoveController {
103103
self.last_led_effect = current_effect;
104104
self.setting.last_led = current_led;
105105

106+
let last_led_effect = &mut self.last_led_effect;
107+
108+
if let Some(duration) = last_led_effect.duration {
109+
if last_led_effect.start.elapsed() >= duration {
110+
info!("Last led effect '{}' of '{}' has already expired, setting to off", last_led_effect, self.bt_address);
111+
let off_effect = LedEffect::off();
112+
113+
self.led_effect = off_effect;
114+
self.setting.led = off_effect.kind.get_initial_hsv()
115+
}
116+
}
117+
106118
info!("Reverted '{:?}' to '{}'", self.bt_address, self.led_effect);
107119
}
108120

109121
pub fn set_led_effect(&mut self, effect: LedEffect) {
122+
self.last_led_effect = self.led_effect;
123+
self.setting.last_led = self.setting.led;
124+
110125
let mut kind = effect.kind;
111126

112-
self.setting.led = kind.get_updated_hsv(self.setting.led);
113127
self.led_effect = effect;
128+
self.setting.led = kind.get_updated_hsv(self.setting.led);
114129
}
115130

116131
pub fn set_led_effect_with_hsv(&mut self, effect: LedEffect, hsv: Hsv) {
@@ -185,20 +200,6 @@ impl PsMoveController {
185200
}
186201

187202
pub fn transform_led(&mut self) {
188-
let last_led_effect = &mut self.last_led_effect;
189-
190-
if last_led_effect.duration.is_some() {
191-
let duration = last_led_effect.duration.unwrap();
192-
193-
if last_led_effect.start.elapsed() >= duration {
194-
info!("Last led effect '{}' of '{}' expired", last_led_effect, self.bt_address);
195-
let off_effect = LedEffect::off();
196-
197-
self.last_led_effect = off_effect;
198-
self.setting.last_led = off_effect.kind.get_initial_hsv()
199-
}
200-
};
201-
202203
let led_effect = &mut self.led_effect;
203204
let current_hsv = self.setting.led;
204205

server/src/tasks/controllers_list_update.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ pub async fn run(
7979
get_on_connected_effect()
8080
} else {
8181
tracing::info!(
82-
"Setting current initial effect on '{}'. ({initial_effect})",
82+
"Setting current effect on '{}'. ({initial_effect})",
8383
controller.bt_address
8484
);
8585
initial_effect

0 commit comments

Comments
 (0)