Base work on graphics api

This commit is contained in:
Lucy 2022-02-15 10:59:57 -05:00
parent b8d17f2b2f
commit f4b895d61d
No known key found for this signature in database
GPG key ID: EBC517FAD666BBF1
4 changed files with 45 additions and 0 deletions

View file

@ -1,3 +1,4 @@
// SPDX-License-Identifier: LGPL-3.0-or-later
//! # DBus interface proxy for: `com.system76.PowerDaemon`
//!
//! This code was generated by `zbus-xmlgen` `2.0.1` from DBus introspection data.

View file

@ -0,0 +1,42 @@
// SPDX-License-Identifier: LGPL-3.0-or-later
use crate::dbus::PowerDaemonProxy;
use zbus::Result;
pub enum Graphics {
Integrated,
Hybrid,
External,
Compute,
}
pub async fn get_current_graphics(daemon: &PowerDaemonProxy<'_>) -> Result<Graphics> {
let graphics = daemon.get_graphics().await?;
match graphics.as_str() {
"integrated" => Ok(Graphics::Integrated),
"hybrid" => Ok(Graphics::Hybrid),
"external" => Ok(Graphics::External),
"compute" => Ok(Graphics::Compute),
_ => panic!("Unknown graphics profile: {}", graphics),
}
}
pub async fn get_default_graphics(daemon: &PowerDaemonProxy<'_>) -> Result<Graphics> {
let graphics = daemon.get_default_graphics().await?;
match graphics.as_str() {
"integrated" => Ok(Graphics::Integrated),
"hybrid" => Ok(Graphics::Hybrid),
"external" => Ok(Graphics::External),
"compute" => Ok(Graphics::Compute),
_ => panic!("Unknown graphics profile: {}", graphics),
}
}
pub async fn set_graphics(daemon: &PowerDaemonProxy<'_>, graphics: Graphics) -> Result<()> {
let graphics_str = match graphics {
Graphics::Integrated => "integrated",
Graphics::Hybrid => "hybrid",
Graphics::External => "external",
Graphics::Compute => "compute",
};
daemon.set_graphics(graphics_str).await
}

View file

@ -4,6 +4,7 @@
extern crate relm4_macros;
pub mod dbus;
pub mod graphics;
pub mod profile;
use gtk4::{gio::ApplicationFlags, prelude::*, Orientation};

View file

@ -1,3 +1,4 @@
// SPDX-License-Identifier: LGPL-3.0-or-later
use crate::dbus::PowerDaemonProxy;
use zbus::Result;