Combination for power state leds boot/sleep/all/keys/side LEDS

This commit is contained in:
mpiffault
2022-06-19 22:03:23 +00:00
committed by Luke Jones
parent 9a50278b98
commit a0a0efabbb
8 changed files with 308 additions and 94 deletions

View File

@@ -23,8 +23,10 @@ impl AuraConfigV320 {
current_mode: self.current_mode,
builtins: self.builtins,
multizone: self.multizone,
awake_enabled: true,
boot_anim_enabled: true,
sleep_anim_enabled: true,
all_leds_enabled: true,
keys_leds_enabled: true,
side_leds_enabled: true,
}
}
@@ -45,15 +47,17 @@ impl AuraConfigV352 {
current_mode: self.current_mode,
builtins: self.builtins,
multizone: self.multizone,
awake_enabled: true,
boot_anim_enabled: true,
sleep_anim_enabled: true,
all_leds_enabled: true,
keys_leds_enabled: true,
side_leds_enabled: true,
}
}
}
#[derive(Deserialize, Serialize)]
pub struct AuraConfig {
pub struct AuraConfigV407 {
pub brightness: LedBrightness,
pub current_mode: AuraModeNum,
pub builtins: BTreeMap<AuraModeNum, AuraEffect>,
@@ -63,6 +67,36 @@ pub struct AuraConfig {
pub side_leds_enabled: bool,
}
impl AuraConfigV407 {
pub(crate) fn into_current(self) -> AuraConfig {
AuraConfig {
brightness: self.brightness,
current_mode: self.current_mode,
builtins: self.builtins,
multizone: self.multizone,
boot_anim_enabled: true,
sleep_anim_enabled: self.sleep_anim_enabled,
all_leds_enabled: self.awake_enabled,
keys_leds_enabled: self.awake_enabled,
side_leds_enabled: self.side_leds_enabled,
}
}
}
#[derive(Deserialize, Serialize)]
pub struct AuraConfig {
pub brightness: LedBrightness,
pub current_mode: AuraModeNum,
pub builtins: BTreeMap<AuraModeNum, AuraEffect>,
pub multizone: Option<AuraMultiZone>,
pub boot_anim_enabled: bool,
pub sleep_anim_enabled: bool,
pub all_leds_enabled: bool,
pub keys_leds_enabled: bool,
pub side_leds_enabled: bool
}
impl Default for AuraConfig {
fn default() -> Self {
AuraConfig {
@@ -70,8 +104,10 @@ impl Default for AuraConfig {
current_mode: AuraModeNum::Static,
builtins: BTreeMap::new(),
multizone: None,
awake_enabled: true,
boot_anim_enabled: true,
sleep_anim_enabled: true,
all_leds_enabled: true,
keys_leds_enabled: true,
side_leds_enabled: true,
}
}
@@ -108,6 +144,11 @@ impl AuraConfig {
config.write();
info!("Updated AuraConfig version");
return config;
} else if let Ok(data) = serde_json::from_str::<AuraConfigV407>(&buf) {
let config = data.into_current();
config.write();
info!("Updated AuraConfig version");
return config;
}
warn!(
"Could not deserialise {}.\nWill rename to {}-old and recreate config",