mirror of
https://gitlab.com/asus-linux/asusctl.git
synced 2026-01-22 17:33:19 +01:00
Rename and recreate the default Anime config if cache setup fails
This commit is contained in:
@@ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
- Add G513RS to laptop DB.
|
- Add G513RS to laptop DB.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Rename and recreate the default Anime config if cache setup fails
|
||||||
|
|
||||||
## [v6.0.8]
|
## [v6.0.8]
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ impl CtrlAnime {
|
|||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
let config = AnimeConfig::new().load();
|
let mut config = AnimeConfig::new().load();
|
||||||
let mut anime_type = get_anime_type()?;
|
let mut anime_type = get_anime_type()?;
|
||||||
if let AnimeType::Unknown = anime_type {
|
if let AnimeType::Unknown = anime_type {
|
||||||
if let Some(model) = config.model_override {
|
if let Some(model) = config.model_override {
|
||||||
@@ -101,7 +101,12 @@ impl CtrlAnime {
|
|||||||
|
|
||||||
info!("Device has an AniMe Matrix display: {anime_type:?}");
|
info!("Device has an AniMe Matrix display: {anime_type:?}");
|
||||||
let mut cache = AnimeConfigCached::default();
|
let mut cache = AnimeConfigCached::default();
|
||||||
cache.init_from_config(&config, anime_type)?;
|
if let Err(e) = cache.init_from_config(&config, anime_type) {
|
||||||
|
error!("Trying to cache the Anime Config failed, will reset to default config: {e:?}");
|
||||||
|
config.rename_file_old();
|
||||||
|
config = AnimeConfig::new();
|
||||||
|
config.write();
|
||||||
|
}
|
||||||
|
|
||||||
let ctrl = CtrlAnime {
|
let ctrl = CtrlAnime {
|
||||||
node,
|
node,
|
||||||
|
|||||||
@@ -146,11 +146,7 @@ where
|
|||||||
|
|
||||||
/// Renames the existing file to `<file>-old`
|
/// Renames the existing file to `<file>-old`
|
||||||
fn rename_file_old(&self) {
|
fn rename_file_old(&self) {
|
||||||
warn!(
|
warn!("Renaming {} to {}-old", self.file_name(), self.file_name());
|
||||||
"Renaming {} to {}-old and recreating config",
|
|
||||||
self.file_name(),
|
|
||||||
self.file_name()
|
|
||||||
);
|
|
||||||
let mut cfg_old = self.file_path().to_string_lossy().to_string();
|
let mut cfg_old = self.file_path().to_string_lossy().to_string();
|
||||||
cfg_old.push_str("-old");
|
cfg_old.push_str("-old");
|
||||||
std::fs::rename(self.file_path(), cfg_old).unwrap_or_else(|err| {
|
std::fs::rename(self.file_path(), cfg_old).unwrap_or_else(|err| {
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
|
use log::error;
|
||||||
|
|
||||||
use crate::data::AnimeDataBuffer;
|
use crate::data::AnimeDataBuffer;
|
||||||
use crate::error::{AnimeError, Result};
|
use crate::error::{AnimeError, Result};
|
||||||
use crate::AnimeType;
|
use crate::AnimeType;
|
||||||
@@ -49,7 +51,10 @@ impl AnimeDiagonal {
|
|||||||
bright: f32,
|
bright: f32,
|
||||||
anime_type: AnimeType,
|
anime_type: AnimeType,
|
||||||
) -> Result<Self> {
|
) -> Result<Self> {
|
||||||
let data = std::fs::read(path)?;
|
let data = std::fs::read(path).map_err(|e| {
|
||||||
|
error!("Could not open {path:?}: {e:?}");
|
||||||
|
e
|
||||||
|
})?;
|
||||||
let data = std::io::Cursor::new(data);
|
let data = std::io::Cursor::new(data);
|
||||||
let decoder = png_pong::Decoder::new(data)?.into_steps();
|
let decoder = png_pong::Decoder::new(data)?.into_steps();
|
||||||
let png_pong::Step { raster, delay: _ } = decoder.last().ok_or(AnimeError::NoFrames)??;
|
let png_pong::Step { raster, delay: _ } = decoder.last().ok_or(AnimeError::NoFrames)??;
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ use std::path::Path;
|
|||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
use glam::Vec2;
|
use glam::Vec2;
|
||||||
|
use log::error;
|
||||||
use serde_derive::{Deserialize, Serialize};
|
use serde_derive::{Deserialize, Serialize};
|
||||||
|
|
||||||
use crate::error::{AnimeError, Result};
|
use crate::error::{AnimeError, Result};
|
||||||
@@ -107,7 +108,10 @@ impl AnimeGif {
|
|||||||
// Configure the decoder such that it will expand the image to RGBA.
|
// Configure the decoder such that it will expand the image to RGBA.
|
||||||
decoder.set_color_output(gif::ColorOutput::RGBA);
|
decoder.set_color_output(gif::ColorOutput::RGBA);
|
||||||
// Read the file header
|
// Read the file header
|
||||||
let file = File::open(file_name)?;
|
let file = File::open(file_name).map_err(|e| {
|
||||||
|
error!("Could not open {file_name:?}: {e:?}");
|
||||||
|
e
|
||||||
|
})?;
|
||||||
let mut decoder = decoder.read_info(file)?;
|
let mut decoder = decoder.read_info(file)?;
|
||||||
|
|
||||||
let mut frames = Vec::default();
|
let mut frames = Vec::default();
|
||||||
@@ -186,12 +190,14 @@ impl AnimeGif {
|
|||||||
anime_type: AnimeType,
|
anime_type: AnimeType,
|
||||||
) -> Result<Self> {
|
) -> Result<Self> {
|
||||||
let mut frames = Vec::new();
|
let mut frames = Vec::new();
|
||||||
|
|
||||||
let mut decoder = gif::DecodeOptions::new();
|
let mut decoder = gif::DecodeOptions::new();
|
||||||
// Configure the decoder such that it will expand the image to RGBA.
|
// Configure the decoder such that it will expand the image to RGBA.
|
||||||
decoder.set_color_output(gif::ColorOutput::RGBA);
|
decoder.set_color_output(gif::ColorOutput::RGBA);
|
||||||
// Read the file header
|
// Read the file header
|
||||||
let file = File::open(file_name)?;
|
let file = File::open(file_name).map_err(|e| {
|
||||||
|
error!("Could not open {file_name:?}: {e:?}");
|
||||||
|
e
|
||||||
|
})?;
|
||||||
let mut decoder = decoder.read_info(file)?;
|
let mut decoder = decoder.read_info(file)?;
|
||||||
|
|
||||||
let height = decoder.height();
|
let height = decoder.height();
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ use std::path::Path;
|
|||||||
|
|
||||||
pub use glam::Vec2;
|
pub use glam::Vec2;
|
||||||
use glam::{Mat3, Vec3};
|
use glam::{Mat3, Vec3};
|
||||||
|
use log::error;
|
||||||
|
|
||||||
use crate::data::AnimeDataBuffer;
|
use crate::data::AnimeDataBuffer;
|
||||||
use crate::error::{AnimeError, Result};
|
use crate::error::{AnimeError, Result};
|
||||||
@@ -421,7 +422,10 @@ impl AnimeImage {
|
|||||||
bright: f32,
|
bright: f32,
|
||||||
anime_type: AnimeType,
|
anime_type: AnimeType,
|
||||||
) -> Result<Self> {
|
) -> Result<Self> {
|
||||||
let data = std::fs::read(path)?;
|
let data = std::fs::read(path).map_err(|e| {
|
||||||
|
error!("Could not open {path:?}: {e:?}");
|
||||||
|
e
|
||||||
|
})?;
|
||||||
let data = std::io::Cursor::new(data);
|
let data = std::io::Cursor::new(data);
|
||||||
let decoder = png_pong::Decoder::new(data)?.into_steps();
|
let decoder = png_pong::Decoder::new(data)?.into_steps();
|
||||||
let png_pong::Step { raster, delay: _ } = decoder.last().ok_or(AnimeError::NoFrames)??;
|
let png_pong::Step { raster, delay: _ } = decoder.last().ok_or(AnimeError::NoFrames)??;
|
||||||
|
|||||||
Reference in New Issue
Block a user