From b8d17f2b2f29a8c2a0371a304095cd60c7a06381 Mon Sep 17 00:00:00 2001 From: Lucy Date: Tue, 15 Feb 2022 10:42:49 -0500 Subject: [PATCH] Add profile configuration functions --- applets/cosmic-applet-graphics/src/main.rs | 2 ++ applets/cosmic-applet-graphics/src/profile.rs | 26 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 applets/cosmic-applet-graphics/src/profile.rs diff --git a/applets/cosmic-applet-graphics/src/main.rs b/applets/cosmic-applet-graphics/src/main.rs index f816defa..1f1cf47f 100644 --- a/applets/cosmic-applet-graphics/src/main.rs +++ b/applets/cosmic-applet-graphics/src/main.rs @@ -4,6 +4,8 @@ extern crate relm4_macros; pub mod dbus; +pub mod profile; + use gtk4::{gio::ApplicationFlags, prelude::*, Orientation}; use once_cell::sync::Lazy; use tokio::runtime::Runtime; diff --git a/applets/cosmic-applet-graphics/src/profile.rs b/applets/cosmic-applet-graphics/src/profile.rs new file mode 100644 index 00000000..6f819640 --- /dev/null +++ b/applets/cosmic-applet-graphics/src/profile.rs @@ -0,0 +1,26 @@ +use crate::dbus::PowerDaemonProxy; +use zbus::Result; + +pub enum Profile { + Performance, + Balanced, + Battery, +} + +pub async fn get_current_profile(daemon: &PowerDaemonProxy<'_>) -> Result { + let profile = daemon.get_profile().await?; + match profile.as_str() { + "Performance" => Ok(Profile::Performance), + "Balanced" => Ok(Profile::Balanced), + "Battery" => Ok(Profile::Battery), + _ => panic!("Unknown profile: {}", profile), + } +} + +pub async fn set_profile(daemon: &PowerDaemonProxy<'_>, profile: Profile) -> zbus::Result<()> { + match profile { + Profile::Performance => daemon.performance().await, + Profile::Balanced => daemon.balanced().await, + Profile::Battery => daemon.battery().await, + } +}