ROGCC: share PageState so tray can use it. zbus notifs update this

This commit is contained in:
Luke D. Jones
2022-11-15 11:08:40 +13:00
parent b41fdf5cfe
commit 762bfea102
18 changed files with 315 additions and 406 deletions

View File

@@ -1,12 +1,11 @@
use egui::{RichText, Ui};
use rog_platform::supported::SupportedFunctions;
use crate::{page_states::PageDataStates, RogDbusClientBlocking};
use crate::page_states::PageDataStates;
pub fn anime_power_group(
_supported: &SupportedFunctions,
states: &mut PageDataStates,
dbus: &mut RogDbusClientBlocking,
ui: &mut Ui,
) {
ui.heading("AniMe Matrix Settings");
@@ -43,7 +42,9 @@ pub fn anime_power_group(
});
ui.horizontal_wrapped(|ui| {
if ui.checkbox(&mut states.anime.boot, "Enable").changed() {
dbus.proxies()
states
.asus_dbus
.proxies()
.anime()
.set_boot_on_off(states.anime.boot)
.map_err(|err| {
@@ -54,7 +55,9 @@ pub fn anime_power_group(
});
ui.horizontal_wrapped(|ui| {
if ui.checkbox(&mut states.anime.awake, "Enable").changed() {
dbus.proxies()
states
.asus_dbus
.proxies()
.anime()
.set_on_off(states.anime.awake)
.map_err(|err| {

View File

@@ -7,16 +7,12 @@ use egui::{RichText, Ui};
use rog_aura::{AuraEffect, AuraModeNum, AuraZone, Colour, Speed};
use rog_platform::supported::SupportedFunctions;
use crate::{
page_states::{AuraState, PageDataStates},
RogDbusClientBlocking,
};
use crate::page_states::{AuraState, PageDataStates};
pub fn aura_modes_group(
supported: &SupportedFunctions,
states: &mut PageDataStates,
freq: &mut Arc<AtomicU8>,
dbus: &mut RogDbusClientBlocking,
ui: &mut Ui,
) {
let mut changed = false;
@@ -172,8 +168,7 @@ pub fn aura_modes_group(
ui.separator();
ui.with_layout(egui::Layout::right_to_left(egui::Align::TOP), |ui| {
if ui.add(egui::Button::new("Cancel")).clicked() {
let notif = states.aura.was_notified.clone();
match AuraState::new(notif, supported, dbus) {
match AuraState::new(supported, &states.asus_dbus) {
Ok(a) => states.aura.modes = a.modes,
Err(e) => states.error = Some(e.to_string()),
}
@@ -202,7 +197,9 @@ pub fn aura_modes_group(
if changed {
states.aura.current_mode = selected;
dbus.proxies()
states
.asus_dbus
.proxies()
.led()
.set_led_mode(states.aura.modes.get(&selected).unwrap())
.map_err(|err| {

View File

@@ -5,32 +5,22 @@ use rog_aura::{
};
use rog_platform::supported::SupportedFunctions;
use crate::{page_states::PageDataStates, RogDbusClientBlocking};
use crate::page_states::PageDataStates;
pub fn aura_power_group(
supported: &SupportedFunctions,
states: &mut PageDataStates,
dbus: &mut RogDbusClientBlocking,
ui: &mut Ui,
) {
pub fn aura_power_group(supported: &SupportedFunctions, states: &mut PageDataStates, ui: &mut Ui) {
ui.heading("LED settings");
match supported.keyboard_led.prod_id {
AuraDevice::X1854 | AuraDevice::X1869 | AuraDevice::X1866 => {
aura_power1(supported, states, dbus, ui)
aura_power1(supported, states, ui)
}
AuraDevice::X19B6 => aura_power2(supported, states, dbus, ui),
AuraDevice::Tuf => aura_power1(supported, states, dbus, ui),
AuraDevice::X19B6 => aura_power2(supported, states, ui),
AuraDevice::Tuf => aura_power1(supported, states, ui),
AuraDevice::Unknown => {}
}
}
fn aura_power1(
supported: &SupportedFunctions,
states: &mut PageDataStates,
dbus: &mut RogDbusClientBlocking,
ui: &mut Ui,
) {
fn aura_power1(supported: &SupportedFunctions, states: &mut PageDataStates, ui: &mut Ui) {
let enabled_states = &mut states.aura.enabled;
let mut boot = enabled_states.x1866.contains(&AuraDev1866::Boot);
let mut sleep = enabled_states.x1866.contains(&AuraDev1866::Sleep);
@@ -144,7 +134,9 @@ fn aura_power1(
x19b6: vec![],
};
// build data to send
dbus.proxies()
states
.asus_dbus
.proxies()
.led()
.set_leds_power(options, enable)
.map_err(|err| {
@@ -193,7 +185,9 @@ fn aura_power1(
x19b6: vec![],
};
// build data to send
dbus.proxies()
states
.asus_dbus
.proxies()
.led()
.set_leds_power(options, enable)
.map_err(|err| {
@@ -207,12 +201,7 @@ fn aura_power1(
}
}
fn aura_power2(
supported: &SupportedFunctions,
states: &mut PageDataStates,
dbus: &mut RogDbusClientBlocking,
ui: &mut Ui,
) {
fn aura_power2(supported: &SupportedFunctions, states: &mut PageDataStates, ui: &mut Ui) {
let enabled_states = &mut states.aura.enabled;
let has_logo = supported
.keyboard_led
@@ -331,7 +320,9 @@ fn aura_power2(
x19b6: data,
};
// build data to send
dbus.proxies()
states
.asus_dbus
.proxies()
.led()
.set_leds_power(options, enable)
.map_err(|err| {

View File

@@ -136,8 +136,7 @@ pub fn fan_graphs(
})
.ok();
let notif = curves.was_notified.clone();
match FanCurvesState::new(notif, supported, dbus) {
match FanCurvesState::new(supported, dbus) {
Ok(f) => *curves = f,
Err(e) => *do_error = Some(e.to_string()),
}

View File

@@ -1,9 +1,9 @@
use crate::{page_states::PageDataStates, RogDbusClientBlocking};
use crate::page_states::PageDataStates;
use egui::Ui;
use rog_platform::{platform::GpuMode, supported::SupportedFunctions};
use rog_profiles::Profile;
pub fn platform_profile(states: &mut PageDataStates, dbus: &RogDbusClientBlocking, ui: &mut Ui) {
pub fn platform_profile(states: &mut PageDataStates, ui: &mut Ui) {
ui.heading("Platform profile");
let mut changed = false;
@@ -23,7 +23,9 @@ pub fn platform_profile(states: &mut PageDataStates, dbus: &RogDbusClientBlockin
});
if changed {
dbus.proxies()
states
.asus_dbus
.proxies()
.profile()
.set_active_profile(states.profiles.current)
.map_err(|err| {
@@ -33,19 +35,16 @@ pub fn platform_profile(states: &mut PageDataStates, dbus: &RogDbusClientBlockin
};
}
pub fn rog_bios_group(
supported: &SupportedFunctions,
states: &mut PageDataStates,
dbus: &mut RogDbusClientBlocking,
ui: &mut Ui,
) {
pub fn rog_bios_group(supported: &SupportedFunctions, states: &mut PageDataStates, ui: &mut Ui) {
ui.heading("Bios options");
let slider = egui::Slider::new(&mut states.charge_limit, 20..=100)
.text("Charging limit")
.step_by(1.0);
if ui.add(slider).drag_released() {
dbus.proxies()
states
.asus_dbus
.proxies()
.charge()
.set_charge_control_end_threshold(states.charge_limit as u8)
.map_err(|err| {
@@ -62,7 +61,9 @@ pub fn rog_bios_group(
))
.changed()
{
dbus.proxies()
states
.asus_dbus
.proxies()
.rog_bios()
.set_post_boot_sound(states.bios.post_sound)
.map_err(|err| {
@@ -79,7 +80,9 @@ pub fn rog_bios_group(
))
.changed()
{
dbus.proxies()
states
.asus_dbus
.proxies()
.rog_bios()
.set_panel_od(states.bios.panel_overdrive)
.map_err(|err| {
@@ -114,7 +117,9 @@ pub fn rog_bios_group(
});
if changed {
dbus.proxies()
states
.asus_dbus
.proxies()
.rog_bios()
.set_gpu_mux_mode(states.bios.dedicated_gfx)
.map_err(|err| {

View File

@@ -1,6 +1,6 @@
use crate::{Page, RogApp};
impl<'a> RogApp<'a> {
impl RogApp {
pub fn side_panel(&mut self, ctx: &egui::Context) {
egui::SidePanel::left("side_panel")
.resizable(false)

View File

@@ -2,7 +2,7 @@ use egui::{vec2, Align2, FontId, Id, Sense};
use crate::{RogApp, VERSION};
impl<'a> RogApp<'a> {
impl RogApp {
pub fn top_bar(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame) {
egui::TopBottomPanel::top("top_panel").show(ctx, |ui| {
// The top panel is often a good place for a menu bar: