diff --git a/CHANGELOG.md b/CHANGELOG.md index ef55cbfc..3063e632 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Fixes to asusd to ensure fan curve defaults are loaded if the config file fails - Further refine the asusctl CLI for fan-curve control - Fixes to AniMe detection +- Fixes to aura config creation/loading ### Added - Support for GV601V LED modes diff --git a/Cargo.lock b/Cargo.lock index 0e57556e..5b237914 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -199,7 +199,7 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "asusctl" -version = "4.7.0" +version = "4.7.1" dependencies = [ "asusd", "cargo-husky", @@ -218,7 +218,7 @@ dependencies = [ [[package]] name = "asusd" -version = "4.7.0" +version = "4.7.1" dependencies = [ "async-trait", "cargo-husky", @@ -242,7 +242,7 @@ dependencies = [ [[package]] name = "asusd-user" -version = "4.7.0" +version = "4.7.1" dependencies = [ "cargo-husky", "config-traits", @@ -782,7 +782,7 @@ dependencies = [ [[package]] name = "config-traits" -version = "4.7.0" +version = "4.7.1" dependencies = [ "cargo-husky", "log", @@ -2687,7 +2687,7 @@ checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" [[package]] name = "rog-control-center" -version = "4.7.0" +version = "4.7.1" dependencies = [ "asusd", "cargo-husky", @@ -2720,7 +2720,7 @@ dependencies = [ [[package]] name = "rog_anime" -version = "4.7.0" +version = "4.7.1" dependencies = [ "cargo-husky", "gif", @@ -2737,7 +2737,7 @@ dependencies = [ [[package]] name = "rog_aura" -version = "4.7.0" +version = "4.7.1" dependencies = [ "cargo-husky", "log", @@ -2751,7 +2751,7 @@ dependencies = [ [[package]] name = "rog_dbus" -version = "4.7.0" +version = "4.7.1" dependencies = [ "cargo-husky", "rog_anime", @@ -2763,7 +2763,7 @@ dependencies = [ [[package]] name = "rog_platform" -version = "4.7.0" +version = "4.7.1" dependencies = [ "cargo-husky", "concat-idents", @@ -2782,7 +2782,7 @@ dependencies = [ [[package]] name = "rog_profiles" -version = "4.7.0" +version = "4.7.1" dependencies = [ "cargo-husky", "log", @@ -2795,7 +2795,7 @@ dependencies = [ [[package]] name = "rog_simulators" -version = "4.7.0" +version = "4.7.1" dependencies = [ "glam", "log", diff --git a/Cargo.toml b/Cargo.toml index fea3d790..e24e373f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ members = ["asusctl", "asusd", "asusd-user", "config-traits", "rog-platform", "r default-members = ["asusctl", "asusd", "asusd-user", "rog-control-center"] [workspace.package] -version = "4.7.0" +version = "4.7.1" [workspace.dependencies] async-trait = "^0.1" diff --git a/asusd/src/ctrl_aura/config.rs b/asusd/src/ctrl_aura/config.rs index 23e35fdf..a198145c 100644 --- a/asusd/src/ctrl_aura/config.rs +++ b/asusd/src/ctrl_aura/config.rs @@ -1,7 +1,7 @@ use std::collections::{BTreeMap, HashSet}; use config_traits::{StdConfig, StdConfigLoad}; -use log::warn; +use log::{debug, warn}; use rog_aura::aura_detection::{LaptopLedData, ASUS_KEYBOARD_DEVICES}; use rog_aura::power::AuraPower; use rog_aura::usb::{AuraDevRog1, AuraDevTuf, AuraDevice, AuraPowerDev}; @@ -21,12 +21,6 @@ pub enum AuraPowerConfig { AuraDevRog2(AuraPower), } -impl Default for AuraPowerConfig { - fn default() -> Self { - Self::AuraDevRog2(AuraPower::default()) - } -} - impl AuraPowerConfig { /// Invalid for TUF laptops pub fn to_bytes(control: &Self) -> [u8; 4] { @@ -110,7 +104,7 @@ impl From<&AuraPowerConfig> for AuraPowerDev { } } -#[derive(Deserialize, Serialize, Debug, Clone, Default)] +#[derive(Deserialize, Serialize, Debug, Clone)] // #[serde(default)] pub struct AuraConfig { pub brightness: LedBrightness, @@ -122,6 +116,7 @@ pub struct AuraConfig { } impl StdConfig for AuraConfig { + /// Detect the keyboard type and load from default DB if data available fn new() -> Self { warn!("AuraConfig: creating new config"); let mut prod_id = AuraDevice::Unknown; @@ -176,6 +171,7 @@ impl AuraConfig { }; for n in &support_data.basic_modes { + debug!("AuraConfig: creating default for {n}"); config .builtins .insert(*n, AuraEffect::default_with_mode(*n)); diff --git a/asusd/src/ctrl_aura/controller.rs b/asusd/src/ctrl_aura/controller.rs index 5c2ec3c9..6ae19222 100644 --- a/asusd/src/ctrl_aura/controller.rs +++ b/asusd/src/ctrl_aura/controller.rs @@ -112,15 +112,17 @@ impl CtrlKbdLed { LEDNode::None }; - let mut config_init = AuraConfig::default(); + // New loads data fromt he DB also + let mut config_init = AuraConfig::new(); let mut config_loaded = config_init.clone().load(); - + // update the initialised data with what we loaded from disk for mode in &mut config_init.builtins { // update init values from loaded values if they exist if let Some(loaded) = config_loaded.builtins.get(mode.0) { *mode.1 = loaded.clone(); } } + // Then replace just incase the initialised data contains new modes added config_loaded.builtins = config_init.builtins; if let (Some(mut multizone_init), Some(multizone_loaded)) = diff --git a/asusd/src/ctrl_aura/trait_impls.rs b/asusd/src/ctrl_aura/trait_impls.rs index b5c8d6e4..99632f2d 100644 --- a/asusd/src/ctrl_aura/trait_impls.rs +++ b/asusd/src/ctrl_aura/trait_impls.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use async_trait::async_trait; use config_traits::StdConfig; -use log::{error, info, warn}; +use log::{debug, error, info, warn}; use rog_aura::advanced::UsbPackets; use rog_aura::usb::{AuraDevice, AuraPowerDev}; use rog_aura::{AuraEffect, AuraModeNum, LedBrightness}; @@ -302,7 +302,9 @@ impl CtrlTask for CtrlKbdLedZbus { impl crate::Reloadable for CtrlKbdLedZbus { async fn reload(&mut self) -> Result<(), RogError> { let mut ctrl = self.0.lock().await; + debug!("CtrlKbdLedZbus: reloading keyboard mode"); ctrl.write_current_config_mode()?; + debug!("CtrlKbdLedZbus: reloading power states"); ctrl.set_power_states().map_err(|err| warn!("{err}")).ok(); Ok(()) } diff --git a/rog-aura/src/power.rs b/rog-aura/src/power.rs index fe7f83ac..c3c26ad9 100644 --- a/rog-aura/src/power.rs +++ b/rog-aura/src/power.rs @@ -19,6 +19,7 @@ pub struct KbAuraPowerState { } impl Default for KbAuraPowerState { + /// Defaults all to off fn default() -> Self { Self { zone: PowerZones::Keyboard,