mirror of
https://gitlab.com/asus-linux/asusctl.git
synced 2026-02-06 00:15:04 +01:00
rog-control-center: ensure brightness slider works correctly
This commit is contained in:
@@ -5,8 +5,7 @@ use std::time::SystemTime;
|
||||
|
||||
use egui::Vec2;
|
||||
use log::error;
|
||||
use rog_anime::usb::Brightness;
|
||||
use rog_anime::Animations;
|
||||
use rog_anime::{Animations, DeviceState};
|
||||
use rog_aura::layouts::KeyLayout;
|
||||
use rog_aura::usb::AuraPowerDev;
|
||||
use rog_aura::{AuraEffect, AuraModeNum};
|
||||
@@ -193,7 +192,7 @@ impl AuraState {
|
||||
#[derive(Clone, Debug, Default)]
|
||||
pub struct AnimeState {
|
||||
pub display_enabled: bool,
|
||||
pub display_brightness: Brightness,
|
||||
pub display_brightness: u8,
|
||||
pub builtin_anims_enabled: bool,
|
||||
pub builtin_anims: Animations,
|
||||
}
|
||||
@@ -204,7 +203,7 @@ impl AnimeState {
|
||||
let device_state = dbus.proxies().anime().device_state()?;
|
||||
Ok(Self {
|
||||
display_enabled: device_state.display_enabled,
|
||||
display_brightness: device_state.display_brightness,
|
||||
display_brightness: device_state.display_brightness as u8,
|
||||
builtin_anims_enabled: device_state.builtin_anims_enabled,
|
||||
builtin_anims: device_state.builtin_anims,
|
||||
})
|
||||
@@ -214,6 +213,17 @@ impl AnimeState {
|
||||
}
|
||||
}
|
||||
|
||||
impl From<DeviceState> for AnimeState {
|
||||
fn from(dev: DeviceState) -> Self {
|
||||
Self {
|
||||
display_enabled: dev.display_enabled,
|
||||
display_brightness: dev.display_brightness as u8,
|
||||
builtin_anims_enabled: dev.builtin_anims_enabled,
|
||||
builtin_anims: dev.builtin_anims,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct GfxState {
|
||||
pub has_supergfx: bool,
|
||||
|
||||
@@ -23,7 +23,7 @@ use supergfxctl::actions::UserActionRequired as GfxUserAction;
|
||||
use supergfxctl::pci_device::{GfxMode, GfxPower};
|
||||
use supergfxctl::zbus_proxy::DaemonProxy as SuperProxy;
|
||||
use tokio::time::sleep;
|
||||
use zbus::export::futures_util::{future, StreamExt};
|
||||
use zbus::export::futures_util::StreamExt;
|
||||
|
||||
use crate::config::Config;
|
||||
use crate::error::Result;
|
||||
@@ -314,15 +314,15 @@ pub fn start_notifications(
|
||||
e
|
||||
})
|
||||
.unwrap();
|
||||
if let Ok(p) = proxy.receive_device_state().await {
|
||||
if let Ok(mut p) = proxy.receive_device_state().await {
|
||||
info!("Started zbus signal thread: receive_device_state");
|
||||
p.for_each(|_| {
|
||||
if let Ok(_lock) = page_states1.lock() {
|
||||
// TODO: lock.anime.
|
||||
while let Some(e) = p.next().await {
|
||||
if let Ok(out) = e.args() {
|
||||
if let Ok(mut lock) = page_states1.lock() {
|
||||
lock.anime = out.data.into();
|
||||
}
|
||||
}
|
||||
future::ready(())
|
||||
})
|
||||
.await;
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
|
||||
@@ -8,8 +8,6 @@ pub fn anime_power_group(_supported: &SupportedFunctions, states: &mut SystemSta
|
||||
ui.heading("AniMe Matrix Settings");
|
||||
ui.label("Options are incomplete. Awake + Boot should work");
|
||||
|
||||
let mut brightness = states.anime.display_brightness as u8;
|
||||
|
||||
ui.horizontal_wrapped(|ui| {
|
||||
ui.vertical(|ui| {
|
||||
let h = 16.0;
|
||||
@@ -30,12 +28,14 @@ pub fn anime_power_group(_supported: &SupportedFunctions, states: &mut SystemSta
|
||||
ui.vertical(|ui| {
|
||||
ui.set_row_height(22.0);
|
||||
ui.horizontal_wrapped(|ui| {
|
||||
if ui.add(egui::Slider::new(&mut brightness, 0..=3)).changed() {
|
||||
let slider =
|
||||
egui::Slider::new(&mut states.anime.display_brightness, 0..=3).step_by(1.0);
|
||||
if ui.add(slider).drag_released() {
|
||||
states
|
||||
.asus_dbus
|
||||
.proxies()
|
||||
.anime()
|
||||
.set_brightness(Brightness::from(brightness))
|
||||
.set_brightness(Brightness::from(states.anime.display_brightness))
|
||||
.map_err(|err| {
|
||||
states.error = Some(err.to_string());
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user