From 4b38e5daa6a97d0fbd8394efbf276b4de2c0cf4d Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sat, 23 Mar 2024 13:07:20 +1300 Subject: [PATCH] Further adjustments to aura --- asusd/src/ctrl_aura/manager.rs | 10 ++++++---- rog-aura/src/usb.rs | 2 +- .../translations/en/rog-control-center.po | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/asusd/src/ctrl_aura/manager.rs b/asusd/src/ctrl_aura/manager.rs index 21a737aa..e2dfd6ca 100644 --- a/asusd/src/ctrl_aura/manager.rs +++ b/asusd/src/ctrl_aura/manager.rs @@ -26,18 +26,20 @@ use crate::{CtrlTask, Reloadable}; pub struct AuraManager { _connection: Connection, - interfaces: Arc>>, + interfaces: Arc>>, } impl AuraManager { pub async fn new(mut connection: Connection) -> Result { let conn_copy = connection.clone(); let data = LaptopLedData::get_data(); + let mut interfaces = HashMap::new(); // Do the initial keyboard detection: let all = CtrlKbdLed::find_all(&data)?; for ctrl in all { let path = ctrl.dbus_path.clone(); + interfaces.insert(ctrl.led_prod, path.clone()); // ensure we record the initial stuff let sig_ctx = CtrlAuraZbus::signal_context(&connection)?; let sig_ctx2 = sig_ctx.clone(); let zbus = CtrlAuraZbus::new(ctrl, sig_ctx); @@ -49,7 +51,7 @@ impl AuraManager { let manager = Self { _connection: connection, - interfaces: Default::default(), + interfaces: Arc::new(Mutex::new(interfaces)), }; let interfaces_copy = manager.interfaces.clone(); @@ -75,7 +77,7 @@ impl AuraManager { if action == "remove" { if let Some(id_product) = parent.attribute_value("idProduct") { - let id_product = id_product.to_string_lossy().to_string(); + let id_product = AuraDevice::from(id_product.to_str().unwrap()); let interfaces_copy = interfaces_copy.clone(); let conn_copy = conn_copy.clone(); tokio::spawn(async move { @@ -141,7 +143,7 @@ impl AuraManager { // tokio::spawn(async move { let mut interfaces = interfaces_copy.lock().await; - interfaces.insert(id_product, path.clone()); + interfaces.insert(aura_device, path.clone()); let sig_ctx = CtrlAuraZbus::signal_context(&conn_copy)?; let zbus = CtrlAuraZbus::new(ctrl, sig_ctx); // Now add it to device list diff --git a/rog-aura/src/usb.rs b/rog-aura/src/usb.rs index 552418e4..19944b41 100644 --- a/rog-aura/src/usb.rs +++ b/rog-aura/src/usb.rs @@ -31,7 +31,7 @@ pub const fn aura_brightness_bytes(brightness: u8) -> [u8; 17] { derive(Type, Value, OwnedValue), zvariant(signature = "s") )] -#[derive(Copy, Clone, PartialEq, Eq, Serialize, Deserialize, Default)] +#[derive(Copy, Clone, PartialEq, Eq, Hash, Serialize, Deserialize, Default)] pub enum AuraDevice { Tuf = 0, X1854 = 1, diff --git a/rog-control-center/translations/en/rog-control-center.po b/rog-control-center/translations/en/rog-control-center.po index 93cb683b..8670e830 100644 --- a/rog-control-center/translations/en/rog-control-center.po +++ b/rog-control-center/translations/en/rog-control-center.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2024-03-22 22:27+0000\n" +"POT-Creation-Date: 2024-03-22 22:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n"