Fixes: bugfixes in aura config loading

This commit is contained in:
Luke D. Jones
2023-08-26 21:34:02 +12:00
parent ea0eaef8a6
commit 423bd54f79
7 changed files with 25 additions and 23 deletions

View File

@@ -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

22
Cargo.lock generated
View File

@@ -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",

View File

@@ -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"

View File

@@ -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));

View File

@@ -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)) =

View File

@@ -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(())
}

View File

@@ -19,6 +19,7 @@ pub struct KbAuraPowerState {
}
impl Default for KbAuraPowerState {
/// Defaults all to off
fn default() -> Self {
Self {
zone: PowerZones::Keyboard,