adds support to enable/disable side leds

This commit is contained in:
Martin Piffault
2022-05-31 17:00:21 +02:00
parent b6934bbf63
commit c6caafdcb7
8 changed files with 100 additions and 1 deletions

View File

@@ -11,7 +11,7 @@ use logind_zbus::ManagerProxy;
use rog_aura::{
usb::{
LED_APPLY, LED_AWAKE_OFF_SLEEP_OFF, LED_AWAKE_OFF_SLEEP_ON, LED_AWAKE_ON_SLEEP_OFF,
LED_AWAKE_ON_SLEEP_ON, LED_SET,
LED_AWAKE_ON_SLEEP_ON, LED_SET, SIDE_LEDS_OFF, SIDE_LEDS_ON,
},
AuraEffect, LedBrightness, LED_MSG_LEN,
};
@@ -148,6 +148,10 @@ impl crate::Reloadable for CtrlKbdLedReloader {
ctrl.set_states_enabled(ctrl.config.awake_enabled, ctrl.config.sleep_anim_enabled)
.map_err(|err| warn!("{}", err))
.ok();
ctrl.set_side_leds_states(ctrl.config.side_leds_enabled)
.map_err(|err| warn!("{}", err))
.ok();
}
Ok(())
}
@@ -283,6 +287,19 @@ impl CtrlKbdLed {
Ok(())
}
pub(super) fn set_side_leds_states(&self, activated: bool) -> Result<(), RogError> {
let bytes: [u8; LED_MSG_LEN] = if activated {
SIDE_LEDS_ON
} else {
SIDE_LEDS_OFF
};
self.write_bytes(&bytes)?;
self.write_bytes(&LED_SET)?;
// Changes won't persist unless apply is set
self.write_bytes(&LED_APPLY)?;
Ok(())
}
fn find_led_node(id_product: &str) -> Result<String, RogError> {
let mut enumerator = udev::Enumerator::new().map_err(|err| {
warn!("{}", err);