From 663f87d5e23f961171b17a4433de23b0258e6ea2 Mon Sep 17 00:00:00 2001 From: Luke Jones Date: Sat, 8 Feb 2025 23:06:02 +1300 Subject: [PATCH] Checkpoint --- CHANGELOG.md | 3 + Cargo.lock | 30 ++++---- Cargo.toml | 15 ++-- asusd/Cargo.toml | 1 + asusd/src/asus_armoury.rs | 4 +- asusd/src/aura_anime/mod.rs | 4 +- asusd/src/aura_anime/trait_impls.rs | 14 ++-- asusd/src/aura_laptop/mod.rs | 2 +- asusd/src/aura_laptop/trait_impls.rs | 4 +- asusd/src/aura_manager.rs | 2 +- asusd/src/aura_scsi/mod.rs | 2 +- asusd/src/aura_scsi/trait_impls.rs | 2 +- asusd/src/aura_slash/mod.rs | 2 +- asusd/src/aura_types.rs | 2 +- asusd/src/ctrl_fancurves.rs | 2 +- asusd/src/ctrl_platform.rs | 4 +- asusd/src/daemon.rs | 2 +- asusd/src/lib.rs | 2 +- rog-control-center/Cargo.toml | 1 + rog-control-center/src/ui/setup_system.rs | 17 ++++- .../translations/en/rog-control-center.po | 76 +++++++++---------- rog-control-center/ui/pages/system.slint | 19 ++++- rog-control-center/ui/widgets/common.slint | 2 +- rog-platform/src/asus_armoury.rs | 12 ++- 24 files changed, 131 insertions(+), 93 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6dbb8933..60b02934 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,11 @@ ## [Unreleased] +## [v6.1.1] + ### Changed - Fix aura data matching +- Fix charge control slider ## [v6.1.0] diff --git a/Cargo.lock b/Cargo.lock index 58a72147..0e45f89a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -158,7 +158,7 @@ checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" [[package]] name = "asusctl" -version = "6.1.0" +version = "6.1.1" dependencies = [ "dmi_id", "env_logger", @@ -177,7 +177,7 @@ dependencies = [ [[package]] name = "asusd" -version = "6.1.0" +version = "6.1.1" dependencies = [ "cargo-husky", "concat-idents", @@ -185,6 +185,7 @@ dependencies = [ "dmi_id", "env_logger", "futures-lite", + "futures-util", "inotify", "log", "logind-zbus", @@ -203,7 +204,7 @@ dependencies = [ [[package]] name = "asusd-user" -version = "6.1.0" +version = "6.1.1" dependencies = [ "config-traits", "dirs", @@ -940,7 +941,7 @@ dependencies = [ [[package]] name = "config-traits" -version = "6.1.0" +version = "6.1.1" dependencies = [ "log", "ron", @@ -1332,7 +1333,7 @@ dependencies = [ [[package]] name = "dmi_id" -version = "6.1.0" +version = "6.1.1" dependencies = [ "log", "udev 0.8.0", @@ -4570,7 +4571,7 @@ dependencies = [ [[package]] name = "rog-control-center" -version = "6.1.0" +version = "6.1.1" dependencies = [ "asusd", "concat-idents", @@ -4579,6 +4580,7 @@ dependencies = [ "dirs", "dmi_id", "env_logger", + "futures-util", "gumdrop", "image", "ksni", @@ -4600,7 +4602,7 @@ dependencies = [ [[package]] name = "rog_anime" -version = "6.1.0" +version = "6.1.1" dependencies = [ "dmi_id", "gif 0.12.0", @@ -4614,7 +4616,7 @@ dependencies = [ [[package]] name = "rog_aura" -version = "6.1.0" +version = "6.1.1" dependencies = [ "dmi_id", "log", @@ -4625,7 +4627,7 @@ dependencies = [ [[package]] name = "rog_dbus" -version = "6.1.0" +version = "6.1.1" dependencies = [ "asusd", "rog_anime", @@ -4639,7 +4641,7 @@ dependencies = [ [[package]] name = "rog_platform" -version = "6.1.0" +version = "6.1.1" dependencies = [ "concat-idents", "inotify", @@ -4652,7 +4654,7 @@ dependencies = [ [[package]] name = "rog_profiles" -version = "6.1.0" +version = "6.1.1" dependencies = [ "log", "rog_platform", @@ -4663,7 +4665,7 @@ dependencies = [ [[package]] name = "rog_scsi" -version = "6.1.0" +version = "6.1.1" dependencies = [ "ron", "serde", @@ -4673,7 +4675,7 @@ dependencies = [ [[package]] name = "rog_simulators" -version = "6.1.0" +version = "6.1.1" dependencies = [ "log", "rog_anime", @@ -4683,7 +4685,7 @@ dependencies = [ [[package]] name = "rog_slash" -version = "6.1.0" +version = "6.1.1" dependencies = [ "dmi_id", "serde", diff --git a/Cargo.toml b/Cargo.toml index e8ea8771..bfb508a2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace.package] -version = "6.1.0" +version = "6.1.1" rust-version = "1.82" license = "MPL-2.0" readme = "README.md" @@ -43,7 +43,8 @@ dirs = "^4.0" smol = "^2.0" mio = "0.8.11" -zbus = "5.1" +futures-util = "0.3.31" +zbus = "5.1.1" logind-zbus = { version = "5.0.0" } #, default-features = false, features = ["non_blocking"] } serde = { version = "^1.0", features = ["serde_derive"] } @@ -65,26 +66,26 @@ gif = "^0.12.0" versions = "6.2" -notify-rust = { version = "4.11.0", features = ["z", "async"] } +notify-rust = { version = "4.11.4", features = ["z", "async"] } sg = { git = "https://github.com/flukejones/sg-rs.git" } [profile.release] # thin = 57s, asusd = 9.0M # fat = 72s, asusd = 6.4M -lto = "fat" +lto = "thin" debug = false opt-level = 3 panic = "abort" -codegen-units = 1 +# codegen-units = 1 [profile.dev] opt-level = 1 -codegen-units = 16 +# codegen-units = 1 [profile.dev.package."*"] opt-level = 1 -codegen-units = 16 +# codegen-units = 1 [profile.bench] debug = false diff --git a/asusd/Cargo.toml b/asusd/Cargo.toml index 837dffe2..6105a7bf 100644 --- a/asusd/Cargo.toml +++ b/asusd/Cargo.toml @@ -34,6 +34,7 @@ tokio.workspace = true log.workspace = true env_logger.workspace = true +futures-util.workspace = true zbus.workspace = true logind-zbus.workspace = true diff --git a/asusd/src/asus_armoury.rs b/asusd/src/asus_armoury.rs index 80d2af0d..95e13f8e 100644 --- a/asusd/src/asus_armoury.rs +++ b/asusd/src/asus_armoury.rs @@ -1,7 +1,7 @@ use std::sync::Arc; -use ::zbus::export::futures_util::lock::Mutex; use config_traits::StdConfig; +use futures_util::lock::Mutex; use log::{debug, error, info}; use rog_platform::asus_armoury::{AttrValue, Attribute, FirmwareAttribute, FirmwareAttributes}; use rog_platform::platform::{PlatformProfile, RogPlatform}; @@ -66,7 +66,7 @@ impl AsusArmouryAttribute { &mut self, signal_ctxt: SignalEmitter<'static> ) -> Result<(), RogError> { - use zbus::export::futures_util::StreamExt; + use futures_util::StreamExt; let name = self.name(); macro_rules! watch_value_notify { diff --git a/asusd/src/aura_anime/mod.rs b/asusd/src/aura_anime/mod.rs index 33713230..b3f911b3 100644 --- a/asusd/src/aura_anime/mod.rs +++ b/asusd/src/aura_anime/mod.rs @@ -8,6 +8,7 @@ use std::sync::Arc; use std::thread::sleep; use config_traits::StdConfig; +use futures_util::lock::Mutex; use log::{debug, error, info, warn}; use rog_anime::usb::{ pkt_flush, pkt_set_brightness, pkt_set_enable_display, pkt_set_enable_powersave_anim, @@ -16,7 +17,6 @@ use rog_anime::usb::{ use rog_anime::{ActionData, AnimeDataBuffer, AnimePacketType}; use rog_platform::hid_raw::HidRaw; use rog_platform::usb_raw::USBRaw; -use tokio::sync::Mutex; use self::config::{AniMeConfig, AniMeConfigCached}; use crate::error::RogError; @@ -51,7 +51,7 @@ impl AniMe { /// Will fail if something is already holding the config lock async fn do_init_cache(&mut self) { - if let Ok(mut config) = self.config.try_lock() { + if let Some(mut config) = self.config.try_lock() { if let Err(e) = self.cache.init_from_config(&config, config.anime_type) { error!( "Trying to cache the Anime Config failed, will reset to default config: {e:?}" diff --git a/asusd/src/aura_anime/trait_impls.rs b/asusd/src/aura_anime/trait_impls.rs index ed351a25..b1c0053e 100644 --- a/asusd/src/aura_anime/trait_impls.rs +++ b/asusd/src/aura_anime/trait_impls.rs @@ -81,7 +81,7 @@ impl AniMeZbus { /// Set base brightness level #[zbus(property)] async fn brightness(&self) -> Brightness { - if let Ok(config) = self.0.config.try_lock() { + if let Some(config) = self.0.config.try_lock() { return config.display_brightness; } Brightness::Off @@ -113,7 +113,7 @@ impl AniMeZbus { #[zbus(property)] async fn builtins_enabled(&self) -> bool { - if let Ok(config) = self.0.config.try_lock() { + if let Some(config) = self.0.config.try_lock() { return config.builtin_anims_enabled; } false @@ -158,7 +158,7 @@ impl AniMeZbus { #[zbus(property)] async fn builtin_animations(&self) -> Animations { - if let Ok(config) = self.0.config.try_lock() { + if let Some(config) = self.0.config.try_lock() { return config.builtin_anims; } Animations::default() @@ -191,7 +191,7 @@ impl AniMeZbus { #[zbus(property)] async fn enable_display(&self) -> bool { - if let Ok(config) = self.0.config.try_lock() { + if let Some(config) = self.0.config.try_lock() { return config.display_enabled; } false @@ -214,7 +214,7 @@ impl AniMeZbus { #[zbus(property)] async fn off_when_unplugged(&self) -> bool { - if let Ok(config) = self.0.config.try_lock() { + if let Some(config) = self.0.config.try_lock() { return config.off_when_unplugged; } false @@ -241,7 +241,7 @@ impl AniMeZbus { #[zbus(property)] async fn off_when_suspended(&self) -> bool { - if let Ok(config) = self.0.config.try_lock() { + if let Some(config) = self.0.config.try_lock() { return config.off_when_suspended; } false @@ -257,7 +257,7 @@ impl AniMeZbus { #[zbus(property)] async fn off_when_lid_closed(&self) -> bool { - if let Ok(config) = self.0.config.try_lock() { + if let Some(config) = self.0.config.try_lock() { return config.off_when_lid_closed; } false diff --git a/asusd/src/aura_laptop/mod.rs b/asusd/src/aura_laptop/mod.rs index 601b939d..6d5fe073 100644 --- a/asusd/src/aura_laptop/mod.rs +++ b/asusd/src/aura_laptop/mod.rs @@ -2,13 +2,13 @@ use std::sync::Arc; use config::AuraConfig; use config_traits::StdConfig; +use futures_util::lock::{Mutex, MutexGuard}; use log::info; use rog_aura::keyboard::{AuraLaptopUsbPackets, LedUsbPackets}; use rog_aura::usb::{AURA_LAPTOP_LED_APPLY, AURA_LAPTOP_LED_SET}; use rog_aura::{AuraDeviceType, AuraEffect, LedBrightness, PowerZones, AURA_LAPTOP_LED_MSG_LEN}; use rog_platform::hid_raw::HidRaw; use rog_platform::keyboard_led::KeyboardBacklight; -use tokio::sync::{Mutex, MutexGuard}; use crate::error::RogError; diff --git a/asusd/src/aura_laptop/trait_impls.rs b/asusd/src/aura_laptop/trait_impls.rs index bcb56ec6..76acfab3 100644 --- a/asusd/src/aura_laptop/trait_impls.rs +++ b/asusd/src/aura_laptop/trait_impls.rs @@ -112,7 +112,7 @@ impl AuraZbus { // entirely possible to deadlock here, so use try instead of lock() // let ctrl = self.0.lock().await; // Ok(config.current_mode) - if let Ok(config) = self.0.config.try_lock() { + if let Some(config) = self.0.config.try_lock() { Ok(config.current_mode) } else { Err(ZbErr::Failed("Aura control couldn't lock self".to_string())) @@ -140,7 +140,7 @@ impl AuraZbus { #[zbus(property)] async fn led_mode_data(&self) -> Result { // entirely possible to deadlock here, so use try instead of lock() - if let Ok(config) = self.0.config.try_lock() { + if let Some(config) = self.0.config.try_lock() { let mode = config.current_mode; match config.builtins.get(&mode) { Some(effect) => Ok(effect.clone()), diff --git a/asusd/src/aura_manager.rs b/asusd/src/aura_manager.rs index 6746a941..b9042545 100644 --- a/asusd/src/aura_manager.rs +++ b/asusd/src/aura_manager.rs @@ -8,11 +8,11 @@ use std::sync::Arc; use dmi_id::DMIID; use futures_lite::future::block_on; +use futures_util::lock::Mutex; use log::{debug, error, info, warn}; use mio::{Events, Interest, Poll, Token}; use rog_platform::error::PlatformError; use rog_platform::hid_raw::HidRaw; -use tokio::sync::Mutex; use udev::{Device, MonitorBuilder}; use zbus::zvariant::{ObjectPath, OwnedObjectPath}; use zbus::Connection; diff --git a/asusd/src/aura_scsi/mod.rs b/asusd/src/aura_scsi/mod.rs index 73f05a18..fca16916 100644 --- a/asusd/src/aura_scsi/mod.rs +++ b/asusd/src/aura_scsi/mod.rs @@ -1,8 +1,8 @@ use std::sync::Arc; use config::ScsiConfig; +use futures_util::lock::{Mutex, MutexGuard}; use rog_scsi::{AuraEffect, Device, Task}; -use tokio::sync::{Mutex, MutexGuard}; use crate::error::RogError; diff --git a/asusd/src/aura_scsi/trait_impls.rs b/asusd/src/aura_scsi/trait_impls.rs index 20fa31de..e819f1ed 100644 --- a/asusd/src/aura_scsi/trait_impls.rs +++ b/asusd/src/aura_scsi/trait_impls.rs @@ -83,7 +83,7 @@ impl ScsiZbus { #[zbus(property)] async fn led_mode_data(&self) -> Result { // entirely possible to deadlock here, so use try instead of lock() - if let Ok(config) = self.0.config.try_lock() { + if let Some(config) = self.0.config.try_lock() { let mode = config.current_mode; match config.modes.get(&mode) { Some(effect) => Ok(effect.clone()), diff --git a/asusd/src/aura_slash/mod.rs b/asusd/src/aura_slash/mod.rs index 8d66e503..51fff253 100644 --- a/asusd/src/aura_slash/mod.rs +++ b/asusd/src/aura_slash/mod.rs @@ -1,11 +1,11 @@ use std::sync::Arc; use config::SlashConfig; +use futures_util::lock::{Mutex, MutexGuard}; use rog_platform::hid_raw::HidRaw; use rog_platform::usb_raw::USBRaw; use rog_slash::usb::{get_options_packet, pkt_set_mode, pkts_for_init}; use rog_slash::SlashType; -use tokio::sync::{Mutex, MutexGuard}; use crate::error::RogError; diff --git a/asusd/src/aura_types.rs b/asusd/src/aura_types.rs index 03525b5c..c0896a8e 100644 --- a/asusd/src/aura_types.rs +++ b/asusd/src/aura_types.rs @@ -1,6 +1,7 @@ use std::sync::Arc; use config_traits::{StdConfig, StdConfigLoad}; +use futures_util::lock::Mutex; use log::{debug, error, info}; use rog_anime::error::AnimeError; use rog_anime::usb::get_anime_type; @@ -12,7 +13,6 @@ use rog_platform::usb_raw::USBRaw; use rog_scsi::{open_device, ScsiType}; use rog_slash::error::SlashError; use rog_slash::SlashType; -use tokio::sync::Mutex; use crate::aura_anime::config::AniMeConfig; use crate::aura_anime::AniMe; diff --git a/asusd/src/ctrl_fancurves.rs b/asusd/src/ctrl_fancurves.rs index cafdf97a..1281a8cc 100644 --- a/asusd/src/ctrl_fancurves.rs +++ b/asusd/src/ctrl_fancurves.rs @@ -3,13 +3,13 @@ use std::sync::Arc; use config_traits::{StdConfig, StdConfigLoad}; use futures_lite::StreamExt; +use futures_util::lock::Mutex; use log::{debug, error, info, warn}; use rog_platform::platform::{PlatformProfile, RogPlatform}; use rog_profiles::error::ProfileError; use rog_profiles::fan_curve_set::CurveData; use rog_profiles::{find_fan_curve_node, FanCurvePU, FanCurveProfiles}; use serde::{Deserialize, Serialize}; -use tokio::sync::Mutex; use zbus::object_server::SignalEmitter; use zbus::{interface, Connection}; diff --git a/asusd/src/ctrl_platform.rs b/asusd/src/ctrl_platform.rs index c38e4a6d..03e02004 100644 --- a/asusd/src/ctrl_platform.rs +++ b/asusd/src/ctrl_platform.rs @@ -3,12 +3,12 @@ use std::process::Command; use std::sync::Arc; use config_traits::StdConfig; +use futures_util::lock::Mutex; use log::{debug, error, info, warn}; use rog_platform::asus_armoury::{AttrValue, FirmwareAttribute, FirmwareAttributes}; use rog_platform::cpu::{CPUControl, CPUGovernor, CPUEPP}; use rog_platform::platform::{PlatformProfile, Properties, RogPlatform}; use rog_platform::power::AsusPower; -use zbus::export::futures_util::lock::Mutex; use zbus::fdo::Error as FdoErr; use zbus::object_server::SignalEmitter; use zbus::{interface, Connection}; @@ -72,7 +72,7 @@ impl CtrlPlatform { let mut inotify_self = ret_self.clone(); tokio::spawn(async move { - use zbus::export::futures_util::StreamExt; + use futures_util::StreamExt; info!("Starting inotify watch for asusd config file"); let mut buffer = [0; 32]; diff --git a/asusd/src/daemon.rs b/asusd/src/daemon.rs index adbd70e7..8fbd592a 100644 --- a/asusd/src/daemon.rs +++ b/asusd/src/daemon.rs @@ -2,7 +2,6 @@ use std::env; use std::error::Error; use std::sync::Arc; -use ::zbus::export::futures_util::lock::Mutex; use ::zbus::Connection; use asusd::asus_armoury::start_attributes_zbus; use asusd::aura_manager::DeviceManager; @@ -11,6 +10,7 @@ use asusd::ctrl_fancurves::CtrlFanCurveZbus; use asusd::ctrl_platform::CtrlPlatform; use asusd::{print_board_info, start_tasks, CtrlTask, DBUS_NAME}; use config_traits::{StdConfig, StdConfigLoad1}; +use futures_util::lock::Mutex; use log::{error, info}; use rog_platform::asus_armoury::FirmwareAttributes; use rog_platform::platform::RogPlatform; diff --git a/asusd/src/lib.rs b/asusd/src/lib.rs index acb26613..77e6d7af 100644 --- a/asusd/src/lib.rs +++ b/asusd/src/lib.rs @@ -67,7 +67,7 @@ macro_rules! task_watch_item { &self, signal_ctxt: SignalEmitter<'static>, ) -> Result<(), RogError> { - use zbus::export::futures_util::StreamExt; + use futures_util::StreamExt; let ctrl = self.clone(); concat_idents::concat_idents!(watch_fn = monitor_, $name { diff --git a/rog-control-center/Cargo.toml b/rog-control-center/Cargo.toml index 61433ffa..2b269eb7 100644 --- a/rog-control-center/Cargo.toml +++ b/rog-control-center/Cargo.toml @@ -41,6 +41,7 @@ zbus.workspace = true dirs.workspace = true notify-rust.workspace = true concat-idents.workspace = true +futures-util.workspace = true versions.workspace = true diff --git a/rog-control-center/src/ui/setup_system.rs b/rog-control-center/src/ui/setup_system.rs index 0529e751..bd8cc424 100644 --- a/rog-control-center/src/ui/setup_system.rs +++ b/rog-control-center/src/ui/setup_system.rs @@ -40,6 +40,9 @@ pub fn setup_system_page(ui: &MainWindow, _config: Arc>) { ui.global::().set_ppt_platform_sppt(MINMAX); ui.global::().set_nv_dynamic_boost(MINMAX); ui.global::().set_nv_temp_target(MINMAX); + ui.global::().set_ppt_enabled(false); + ui.global::() + .set_ppt_enabled_available(false); let sys_props = platform.supported_properties().unwrap(); log::debug!("Available system properties: {sys_props:?}"); @@ -156,7 +159,7 @@ macro_rules! setup_external { concat_idents!(setter = set_, $property { tokio::spawn(async move { let mut x = proxy_copy.receive_current_value_changed().await; - use zbus::export::futures_util::StreamExt; + use futures_util::StreamExt; while let Some(e) = x.next().await { if let Ok(out) = e.get().await { handle_copy @@ -182,7 +185,7 @@ macro_rules! setup_value_watch { let mut x = concat_idents!(recv = receive_, $value_type, _value_changed { proxy_copy.recv().await }); - use zbus::export::futures_util::StreamExt; + use futures_util::StreamExt; while let Some(e) = x.next().await { if let Ok(out) = e.get().await { concat_idents!(getter = get_, $property { @@ -214,7 +217,7 @@ macro_rules! setup_minmax_external { let platform_proxy_copy = $platform.clone(); tokio::spawn(async move { let mut x = platform_proxy_copy.receive_platform_profile_changed().await; - use zbus::export::futures_util::StreamExt; + use futures_util::StreamExt; while let Some(e) = x.next().await { if let Ok(_) = e.get().await { debug!("receive_platform_profile_changed, getting new {}", stringify!(attr)); @@ -400,6 +403,14 @@ pub fn setup_system_page_callbacks(ui: &MainWindow, _states: Arc>) FirmwareAttribute::ApuMem => {} FirmwareAttribute::CoresPerformance => {} FirmwareAttribute::CoresEfficiency => {} + FirmwareAttribute::PptEnabled => { + init_property!(ppt_enabled, handle, value, bool); + setup_callback!(ppt_enabled, handle, attr, bool); + setup_external!(ppt_enabled, bool, handle, attr, value); + handle + .global::() + .set_ppt_enabled_available(true); + } FirmwareAttribute::PptPl1Spl => { init_minmax_property!(ppt_pl1_spl, handle, attr); setup_callback!(ppt_pl1_spl, handle, attr, i32); diff --git a/rog-control-center/translations/en/rog-control-center.po b/rog-control-center/translations/en/rog-control-center.po index 6c85da22..2c5ffbe4 100644 --- a/rog-control-center/translations/en/rog-control-center.po +++ b/rog-control-center/translations/en/rog-control-center.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2025-02-06 20:42+0000\n" +"POT-Creation-Date: 2025-02-08 10:05+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -47,203 +47,203 @@ msgctxt "SystemPageData" msgid "Power" msgstr "" -#: rog-control-center/ui/pages/system.slint:142 +#: rog-control-center/ui/pages/system.slint:146 msgctxt "PageSystem" msgid "Power settings" msgstr "" -#: rog-control-center/ui/pages/system.slint:147 +#: rog-control-center/ui/pages/system.slint:151 msgctxt "PageSystem" msgid "Charge limit" msgstr "" -#: rog-control-center/ui/pages/system.slint:161 +#: rog-control-center/ui/pages/system.slint:165 msgctxt "PageSystem" msgid "Platform Profile" msgstr "" -#: rog-control-center/ui/pages/system.slint:171 +#: rog-control-center/ui/pages/system.slint:175 msgctxt "PageSystem" msgid "Advanced" msgstr "" -#: rog-control-center/ui/pages/system.slint:189 +#: rog-control-center/ui/pages/system.slint:193 msgctxt "PageSystem" msgid "Armoury settings" msgstr "" -#: rog-control-center/ui/pages/system.slint:199 +#: rog-control-center/ui/pages/system.slint:203 msgctxt "no_asus_armoury_driver_1" msgid "The asus-armoury driver is not loaded" msgstr "" -#: rog-control-center/ui/pages/system.slint:205 +#: rog-control-center/ui/pages/system.slint:209 msgctxt "no_asus_armoury_driver_2" msgid "For advanced features you will require a kernel with this driver added." msgstr "" -#: rog-control-center/ui/pages/system.slint:216 +#: rog-control-center/ui/pages/system.slint:220 msgctxt "PageSystem" msgid "Panel Overdrive" msgstr "" -#: rog-control-center/ui/pages/system.slint:224 +#: rog-control-center/ui/pages/system.slint:228 msgctxt "PageSystem" msgid "MiniLED Mode" msgstr "" -#: rog-control-center/ui/pages/system.slint:232 +#: rog-control-center/ui/pages/system.slint:236 msgctxt "PageSystem" msgid "POST boot sound" msgstr "" -#: rog-control-center/ui/pages/system.slint:248 +#: rog-control-center/ui/pages/system.slint:252 msgctxt "ppt_warning" msgid "The following settings are not applied until the toggle is enabled." msgstr "" -#: rog-control-center/ui/pages/system.slint:253 +#: rog-control-center/ui/pages/system.slint:257 rog-control-center/ui/pages/system.slint:264 msgctxt "ppt_group_enabled" msgid "Enable Tuning" msgstr "" -#: rog-control-center/ui/pages/system.slint:262 rog-control-center/ui/pages/system.slint:263 +#: rog-control-center/ui/pages/system.slint:275 rog-control-center/ui/pages/system.slint:276 msgctxt "ppt_pl1_spl" msgid "CPU Sustained Power Limit" msgstr "" -#: rog-control-center/ui/pages/system.slint:264 +#: rog-control-center/ui/pages/system.slint:277 msgctxt "ppt_pl1_spl_help" msgid "" "Long-term CPU power limit that affects sustained workload performance. " "Higher values may increase heat and power consumption." msgstr "" -#: rog-control-center/ui/pages/system.slint:280 rog-control-center/ui/pages/system.slint:281 +#: rog-control-center/ui/pages/system.slint:293 rog-control-center/ui/pages/system.slint:294 msgctxt "ppt_pl2_sppt" msgid "CPU Turbo Power Limit" msgstr "" -#: rog-control-center/ui/pages/system.slint:282 +#: rog-control-center/ui/pages/system.slint:295 msgctxt "ppt_pl2_sppt_help" msgid "" "Short-term CPU power limit for boost periods. Controls maximum power during " "brief high-performance bursts." msgstr "" -#: rog-control-center/ui/pages/system.slint:298 rog-control-center/ui/pages/system.slint:299 +#: rog-control-center/ui/pages/system.slint:311 rog-control-center/ui/pages/system.slint:312 msgctxt "ppt_pl3_fppt" msgid "CPU Fast Burst Power Limit" msgstr "" -#: rog-control-center/ui/pages/system.slint:300 +#: rog-control-center/ui/pages/system.slint:313 msgctxt "ppt_pl3_fppt_help" msgid "" "Ultra-short duration power limit for instantaneous CPU bursts. Affects " "responsiveness during sudden workload spikes." msgstr "" -#: rog-control-center/ui/pages/system.slint:315 rog-control-center/ui/pages/system.slint:316 +#: rog-control-center/ui/pages/system.slint:328 rog-control-center/ui/pages/system.slint:329 msgctxt "ppt_fppt" msgid "Fast Package Power Limit" msgstr "" -#: rog-control-center/ui/pages/system.slint:317 +#: rog-control-center/ui/pages/system.slint:330 msgctxt "ppt_fppt_help" msgid "" "Ultra-short duration power limit for system package. Controls maximum power " "during millisecond-scale load spikes." msgstr "" -#: rog-control-center/ui/pages/system.slint:333 rog-control-center/ui/pages/system.slint:334 +#: rog-control-center/ui/pages/system.slint:346 rog-control-center/ui/pages/system.slint:347 msgctxt "ppt_apu_sppt" msgid "APU Sustained Power Limit" msgstr "" -#: rog-control-center/ui/pages/system.slint:335 +#: rog-control-center/ui/pages/system.slint:348 msgctxt "ppt_apu_sppt_help" msgid "" "Long-term power limit for integrated graphics and CPU combined. Affects " "sustained performance of APU-based workloads." msgstr "" -#: rog-control-center/ui/pages/system.slint:351 rog-control-center/ui/pages/system.slint:352 +#: rog-control-center/ui/pages/system.slint:364 rog-control-center/ui/pages/system.slint:365 msgctxt "ppt_platform_sppt" msgid "Platform Sustained Power Limit" msgstr "" -#: rog-control-center/ui/pages/system.slint:353 +#: rog-control-center/ui/pages/system.slint:366 msgctxt "ppt_platform_sppt_help" msgid "" "Overall system power limit for sustained operations. Controls total platform " "power consumption over extended periods." msgstr "" -#: rog-control-center/ui/pages/system.slint:369 rog-control-center/ui/pages/system.slint:370 +#: rog-control-center/ui/pages/system.slint:382 rog-control-center/ui/pages/system.slint:383 msgctxt "nv_dynamic_boost" msgid "GPU Power Boost" msgstr "" -#: rog-control-center/ui/pages/system.slint:371 +#: rog-control-center/ui/pages/system.slint:384 msgctxt "nv_dynamic_boost_help" msgid "" "Additional power allocation for GPU dynamic boost. Higher values increase " "GPU performance but generate more heat." msgstr "" -#: rog-control-center/ui/pages/system.slint:387 rog-control-center/ui/pages/system.slint:388 +#: rog-control-center/ui/pages/system.slint:400 rog-control-center/ui/pages/system.slint:401 msgctxt "nv_temp_target" msgid "GPU Temperature Limit" msgstr "" -#: rog-control-center/ui/pages/system.slint:389 +#: rog-control-center/ui/pages/system.slint:402 msgctxt "nv_temp_target_help" msgid "" "Maximum GPU temperature threshold in Celsius. GPU will throttle to maintain " "temperature below this limit." msgstr "" -#: rog-control-center/ui/pages/system.slint:441 +#: rog-control-center/ui/pages/system.slint:454 msgctxt "PageSystem" msgid "Energy Performance Preference linked to Throttle Policy" msgstr "" -#: rog-control-center/ui/pages/system.slint:445 +#: rog-control-center/ui/pages/system.slint:458 msgctxt "PageSystem" msgid "Change EPP based on Throttle Policy" msgstr "" -#: rog-control-center/ui/pages/system.slint:453 +#: rog-control-center/ui/pages/system.slint:466 msgctxt "PageSystem" msgid "EPP for Balanced Policy" msgstr "" -#: rog-control-center/ui/pages/system.slint:463 +#: rog-control-center/ui/pages/system.slint:476 msgctxt "PageSystem" msgid "EPP for Performance Policy" msgstr "" -#: rog-control-center/ui/pages/system.slint:473 +#: rog-control-center/ui/pages/system.slint:486 msgctxt "PageSystem" msgid "EPP for Quiet Policy" msgstr "" -#: rog-control-center/ui/pages/system.slint:491 +#: rog-control-center/ui/pages/system.slint:504 msgctxt "PageSystem" msgid "Throttle Policy for power state" msgstr "" -#: rog-control-center/ui/pages/system.slint:497 +#: rog-control-center/ui/pages/system.slint:510 msgctxt "PageSystem" msgid "Throttle Policy on Battery" msgstr "" -#: rog-control-center/ui/pages/system.slint:507 rog-control-center/ui/pages/system.slint:528 +#: rog-control-center/ui/pages/system.slint:520 rog-control-center/ui/pages/system.slint:541 msgctxt "PageSystem" msgid "Enabled" msgstr "" -#: rog-control-center/ui/pages/system.slint:518 +#: rog-control-center/ui/pages/system.slint:531 msgctxt "PageSystem" msgid "Throttle Policy on AC" msgstr "" diff --git a/rog-control-center/ui/pages/system.slint b/rog-control-center/ui/pages/system.slint index 1c218d21..3f4fab27 100644 --- a/rog-control-center/ui/pages/system.slint +++ b/rog-control-center/ui/pages/system.slint @@ -115,8 +115,12 @@ export global SystemPageData { callback cb_nv_temp_target(int); callback cb_default_nv_temp_target(); - in-out property enable_ppt_group; + in-out property enable_ppt_group: false; callback cb_enable_ppt_group(bool); + + in-out property ppt_enabled_available; + in-out property ppt_enabled; + callback cb_ppt_enabled(bool); } export component PageSystem inherits Rectangle { @@ -249,13 +253,22 @@ export component PageSystem inherits Rectangle { } } - Switch { - text: @tr("ppt_group_enabled" => "Enable Tuning"); + if !SystemPageData.ppt_enabled_available: Switch { + text: @tr("ppt_group_enabled" => "Enable Tuning"); checked <=> SystemPageData.enable_ppt_group; toggled => { SystemPageData.cb_enable_ppt_group(SystemPageData.enable_ppt_group) } } + if SystemPageData.ppt_enabled_available: Switch { + text: @tr("ppt_group_enabled" => "Enable Tuning"); + checked <=> SystemPageData.ppt_enabled; + toggled => { + SystemPageData.enable_ppt_group = self.checked; + SystemPageData.cb_ppt_enabled(SystemPageData.ppt_enabled) + } + } + } if SystemPageData.ppt_pl1_spl.current != -1: SystemSlider { diff --git a/rog-control-center/ui/widgets/common.slint b/rog-control-center/ui/widgets/common.slint index 88b2b951..d804499c 100644 --- a/rog-control-center/ui/widgets/common.slint +++ b/rog-control-center/ui/widgets/common.slint @@ -12,7 +12,7 @@ export component RogItem inherits Rectangle { export component SystemSlider inherits RogItem { in property title; in property text; - in-out property enabled; + in-out property enabled: true; in-out property value; in-out property minimum; in-out property maximum; diff --git a/rog-platform/src/asus_armoury.rs b/rog-platform/src/asus_armoury.rs index 3e31a612..2557e77f 100644 --- a/rog-platform/src/asus_armoury.rs +++ b/rog-platform/src/asus_armoury.rs @@ -2,7 +2,7 @@ use std::fs::{read_dir, File, OpenOptions}; use std::io::{Read, Write}; use std::path::{Path, PathBuf}; -use log::debug; +use log::{debug, error}; use serde::{Deserialize, Serialize}; use zbus::zvariant::{OwnedValue, Type, Value}; @@ -304,7 +304,8 @@ pub enum FirmwareAttribute { GpuMuxMode = 21, MiniLedMode = 22, PendingReboot = 23, - None = 24 + PptEnabled = 24, + None = 25 } impl FirmwareAttribute { @@ -336,6 +337,7 @@ impl From<&str> for FirmwareAttribute { "apu_mem" => Self::ApuMem, "cores_performance" => Self::CoresPerformance, "cores_efficiency" => Self::CoresEfficiency, + "ppt_enabled" => Self::PptEnabled, "ppt_pl1_spl" => Self::PptPl1Spl, "ppt_pl2_sppt" => Self::PptPl2Sppt, "ppt_pl3_fppt" => Self::PptPl3Fppt, @@ -357,7 +359,10 @@ impl From<&str> for FirmwareAttribute { "gpu_mux_mode" => Self::GpuMuxMode, "mini_led_mode" => Self::MiniLedMode, "pending_reboot" => Self::PendingReboot, - _ => panic!("Invalid firmware attribute: {}", s) + _ => { + error!("Invalid firmware attribute: {}", s); + Self::None + } } } } @@ -368,6 +373,7 @@ impl From for &str { FirmwareAttribute::ApuMem => "apu_mem", FirmwareAttribute::CoresPerformance => "cores_performance", FirmwareAttribute::CoresEfficiency => "cores_efficiency", + FirmwareAttribute::PptEnabled => "ppt_enabled", FirmwareAttribute::PptPl1Spl => "ppt_pl1_spl", FirmwareAttribute::PptPl2Sppt => "ppt_pl2_sppt", FirmwareAttribute::PptPl3Fppt => "ppt_pl3_fppt",