mirror of
https://gitlab.com/asus-linux/asusctl.git
synced 2026-02-06 00:15:04 +01:00
Merge branch 'fluke/extras' into 'main'
bugfix: fix profile cycling See merge request asus-linux/asusctl!60
This commit is contained in:
@@ -6,7 +6,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
# [3.6.0] - 2021-05-15
|
# [3.6.1] - 2021-05-25
|
||||||
|
### Changed
|
||||||
|
- Bugfix for cycling through profiles
|
||||||
|
|
||||||
|
# [3.6.0] - 2021-05-24
|
||||||
### Changed
|
### Changed
|
||||||
- Add GX550L led modes
|
- Add GX550L led modes
|
||||||
- Don't save compute/vfio modes. Option in config for this is removed.
|
- Don't save compute/vfio modes. Option in config for this is removed.
|
||||||
|
|||||||
2
Cargo.lock
generated
2
Cargo.lock
generated
@@ -207,7 +207,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "daemon"
|
name = "daemon"
|
||||||
version = "3.6.0"
|
version = "3.6.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"env_logger",
|
"env_logger",
|
||||||
"log",
|
"log",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "daemon"
|
name = "daemon"
|
||||||
version = "3.6.0"
|
version = "3.6.1"
|
||||||
license = "MPL-2.0"
|
license = "MPL-2.0"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
authors = ["Luke <luke@ljones.dev>"]
|
authors = ["Luke <luke@ljones.dev>"]
|
||||||
|
|||||||
@@ -43,39 +43,39 @@ impl CtrlFanAndCpu {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Toggle to next profile in list
|
/// Toggle to next profile in list
|
||||||
pub(super) fn do_next_profile(&mut self, config: &mut Config) -> Result<(), RogError> {
|
pub(super) fn do_next_profile(&mut self) -> Result<(), RogError> {
|
||||||
config.read();
|
if let Ok(mut config) = self.config.clone().try_lock() {
|
||||||
|
config.read();
|
||||||
|
|
||||||
let mut i = config
|
let mut i = config
|
||||||
.toggle_profiles
|
.toggle_profiles
|
||||||
.iter()
|
.binary_search(&config.active_profile)
|
||||||
.position(|x| x == &config.active_profile)
|
.unwrap_or(0)
|
||||||
.map(|i| i + 1)
|
+ 1;
|
||||||
.unwrap_or(0);
|
if i >= config.toggle_profiles.len() {
|
||||||
if i >= config.toggle_profiles.len() {
|
i = 0;
|
||||||
i = 0;
|
}
|
||||||
|
|
||||||
|
let profile = config.toggle_profiles[i].clone();
|
||||||
|
|
||||||
|
if let Some(existing) = config.power_profiles.get(&profile) {
|
||||||
|
existing.set_system_all()?;
|
||||||
|
config.active_profile = existing.name.clone();
|
||||||
|
config.write();
|
||||||
|
info!("Profile was changed to: {}", profile);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let new_profile = config
|
|
||||||
.toggle_profiles
|
|
||||||
.get(i)
|
|
||||||
.unwrap_or(&config.active_profile)
|
|
||||||
.clone();
|
|
||||||
|
|
||||||
self.set_active(&new_profile)?;
|
|
||||||
|
|
||||||
info!("Profile was changed: {}", &new_profile);
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(super) fn set_active(&mut self, profile: &str) -> Result<(), RogError> {
|
pub(super) fn set_active(&mut self, profile: &str) -> Result<(), RogError> {
|
||||||
if let Ok(mut cfg) = self.config.clone().try_lock() {
|
if let Ok(mut cfg) = self.config.clone().try_lock() {
|
||||||
cfg.read();
|
cfg.read();
|
||||||
|
if let Some(existing) = cfg.power_profiles.get(profile) {
|
||||||
if let Some(existing) = cfg.power_profiles.get_mut(profile) {
|
|
||||||
existing.set_system_all()?;
|
existing.set_system_all()?;
|
||||||
cfg.active_profile = existing.name.clone();
|
cfg.active_profile = existing.name.clone();
|
||||||
cfg.write();
|
cfg.write();
|
||||||
|
info!("Profile was changed to: {}", profile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|||||||
@@ -25,15 +25,8 @@ impl FanAndCpuZbus {
|
|||||||
if let Ok(mut ctrl) = self.inner.try_lock() {
|
if let Ok(mut ctrl) = self.inner.try_lock() {
|
||||||
ctrl.set_active(&profile)
|
ctrl.set_active(&profile)
|
||||||
.unwrap_or_else(|err| warn!("{}", err));
|
.unwrap_or_else(|err| warn!("{}", err));
|
||||||
// Do notification
|
|
||||||
if let Ok(cfg) = ctrl.config.clone().try_lock() {
|
|
||||||
// Do notify
|
|
||||||
if let Some(profile) = cfg.power_profiles.get(&cfg.active_profile) {
|
|
||||||
self.notify_profile(&profile)
|
|
||||||
.unwrap_or_else(|err| warn!("{}", err));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
self.do_notification();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// New or modify profile details and make active, will create if it does not exist
|
/// New or modify profile details and make active, will create if it does not exist
|
||||||
@@ -41,30 +34,17 @@ impl FanAndCpuZbus {
|
|||||||
if let Ok(mut ctrl) = self.inner.try_lock() {
|
if let Ok(mut ctrl) = self.inner.try_lock() {
|
||||||
ctrl.new_or_modify(&profile)
|
ctrl.new_or_modify(&profile)
|
||||||
.unwrap_or_else(|err| warn!("{}", err));
|
.unwrap_or_else(|err| warn!("{}", err));
|
||||||
// Do notification
|
|
||||||
if let Ok(cfg) = ctrl.config.clone().try_lock() {
|
|
||||||
// Do notify
|
|
||||||
if let Some(profile) = cfg.power_profiles.get(&cfg.active_profile) {
|
|
||||||
self.notify_profile(&profile)
|
|
||||||
.unwrap_or_else(|err| warn!("{}", err));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
self.do_notification();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Fetch the active profile name
|
/// Fetch the active profile name
|
||||||
fn next_profile(&mut self) {
|
fn next_profile(&mut self) {
|
||||||
if let Ok(mut ctrl) = self.inner.try_lock() {
|
if let Ok(mut ctrl) = self.inner.try_lock() {
|
||||||
if let Ok(mut cfg) = ctrl.config.clone().try_lock() {
|
ctrl.do_next_profile()
|
||||||
cfg.read();
|
.unwrap_or_else(|err| warn!("{}", err));
|
||||||
ctrl.do_next_profile(&mut cfg)
|
|
||||||
.unwrap_or_else(|err| warn!("{}", err));
|
|
||||||
if let Some(profile) = cfg.power_profiles.get(&cfg.active_profile) {
|
|
||||||
self.notify_profile(&profile)
|
|
||||||
.unwrap_or_else(|err| warn!("{}", err));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
self.do_notification();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Fetch the active profile name
|
/// Fetch the active profile name
|
||||||
@@ -154,6 +134,19 @@ impl FanAndCpuZbus {
|
|||||||
fn notify_profile(&self, profile: &Profile) -> zbus::Result<()> {}
|
fn notify_profile(&self, profile: &Profile) -> zbus::Result<()> {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl FanAndCpuZbus {
|
||||||
|
fn do_notification(&self) {
|
||||||
|
if let Ok(ctrl) = self.inner.try_lock() {
|
||||||
|
if let Ok(cfg) = ctrl.config.clone().try_lock() {
|
||||||
|
if let Some(profile) = cfg.power_profiles.get(&cfg.active_profile) {
|
||||||
|
self.notify_profile(&profile)
|
||||||
|
.unwrap_or_else(|err| warn!("{}", err));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl crate::ZbusAdd for FanAndCpuZbus {
|
impl crate::ZbusAdd for FanAndCpuZbus {
|
||||||
fn add_to_server(self, server: &mut zbus::ObjectServer) {
|
fn add_to_server(self, server: &mut zbus::ObjectServer) {
|
||||||
server
|
server
|
||||||
|
|||||||
Reference in New Issue
Block a user