mirror of
https://gitlab.com/asus-linux/asusctl.git
synced 2026-02-06 00:15:04 +01:00
50 lines
1.6 KiB
Rust
50 lines
1.6 KiB
Rust
use async_trait::async_trait;
|
|
use serde_derive::{Deserialize, Serialize};
|
|
use zbus::zvariant::Type;
|
|
use zbus::{dbus_interface, Connection};
|
|
|
|
use crate::ctrl_anime::CtrlAnime;
|
|
use crate::ctrl_aura::controller::CtrlKbdLed;
|
|
use crate::ctrl_platform::CtrlPlatform;
|
|
use crate::ctrl_power::CtrlPower;
|
|
use crate::ctrl_profiles::controller::CtrlPlatformProfile;
|
|
use crate::GetSupported;
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Type)]
|
|
pub struct SupportedFunctions(rog_platform::supported::SupportedFunctions);
|
|
|
|
#[dbus_interface(name = "org.asuslinux.Daemon")]
|
|
impl SupportedFunctions {
|
|
pub fn supported_functions(
|
|
&self,
|
|
) -> zbus::fdo::Result<&rog_platform::supported::SupportedFunctions> {
|
|
Ok(&self.0)
|
|
}
|
|
|
|
#[dbus_interface(out_args("answer", "question"))]
|
|
fn meaning_of_life(&self) -> zbus::fdo::Result<(i32, String)> {
|
|
Ok((42, String::from("Meaning of life")))
|
|
}
|
|
}
|
|
|
|
#[async_trait]
|
|
impl crate::ZbusRun for SupportedFunctions {
|
|
async fn add_to_server(self, server: &mut Connection) {
|
|
Self::add_to_server_helper(self, "/org/asuslinux/Supported", server).await;
|
|
}
|
|
}
|
|
|
|
impl GetSupported for SupportedFunctions {
|
|
type A = SupportedFunctions;
|
|
|
|
fn get_supported() -> Self::A {
|
|
Self(rog_platform::supported::SupportedFunctions {
|
|
anime_ctrl: CtrlAnime::get_supported(),
|
|
keyboard_led: CtrlKbdLed::get_supported(),
|
|
charge_ctrl: CtrlPower::get_supported(),
|
|
platform_profile: CtrlPlatformProfile::get_supported(),
|
|
rog_bios_ctrl: CtrlPlatform::get_supported(),
|
|
})
|
|
}
|
|
}
|