steamosctl: Give human-readable results for property names

This commit is contained in:
Vicki Pfau 2024-05-13 18:33:47 -07:00
parent d027445d9d
commit 4f84b48225
2 changed files with 33 additions and 9 deletions

View file

@ -184,6 +184,13 @@ async fn main() -> Result<()> {
Commands::SetFanControlState { state } => { Commands::SetFanControlState { state } => {
proxy.set_fan_control_state(*state as u32).await?; proxy.set_fan_control_state(*state as u32).await?;
} }
Commands::GetFanControlState => {
let state = proxy.fan_control_state().await?;
match FanControlState::try_from(state) {
Ok(s) => println!("Fan control state: {}", s.to_string()),
Err(_) => println!("Got unknown value {state} from backend"),
}
}
Commands::SetGPUPerformanceLevel { level } => { Commands::SetGPUPerformanceLevel { level } => {
proxy.set_gpu_performance_level(*level as u32).await?; proxy.set_gpu_performance_level(*level as u32).await?;
} }
@ -216,10 +223,6 @@ async fn main() -> Result<()> {
let limit = proxy.tdp_limit().await?; let limit = proxy.tdp_limit().await?;
println!("TDP limit: {limit}"); println!("TDP limit: {limit}");
} }
Commands::GetFanControlState => {
let state = proxy.fan_control_state().await?;
println!("Fan control state: {state}");
}
Commands::GetTDPLimitMax => { Commands::GetTDPLimitMax => {
let value = proxy.tdp_limit_max().await?; let value = proxy.tdp_limit_max().await?;
println!("TDP limit max: {value}"); println!("TDP limit max: {value}");
@ -233,29 +236,40 @@ async fn main() -> Result<()> {
}, },
Commands::GetWifiBackend => { Commands::GetWifiBackend => {
let backend = proxy.wifi_backend().await?; let backend = proxy.wifi_backend().await?;
let backend_string = WifiBackend::try_from(backend).unwrap().to_string(); match WifiBackend::try_from(backend) {
println!("Wifi backend: {backend_string}"); Ok(be) => println!("Wifi backend: {}", be.to_string()),
Err(_) => println!("Got unknown value {backend} from backend"),
}
} }
Commands::SetWifiDebugMode { mode, buffer } => { Commands::SetWifiDebugMode { mode, buffer } => {
proxy.set_wifi_debug_mode(*mode as u32, *buffer).await?; proxy.set_wifi_debug_mode(*mode as u32, *buffer).await?;
} }
Commands::GetWifiDebugMode => { Commands::GetWifiDebugMode => {
let mode = proxy.wifi_debug_mode_state().await?; let mode = proxy.wifi_debug_mode_state().await?;
println!("Wifi debug mode: {mode}"); match WifiDebugMode::try_from(mode) {
Ok(m) => println!("Wifi debug mode: {}", m.to_string()),
Err(_) => println!("Got unknown value {mode} from backend"),
}
} }
Commands::SetWifiPowerManagementState { state } => { Commands::SetWifiPowerManagementState { state } => {
proxy.set_wifi_power_management_state(*state as u32).await?; proxy.set_wifi_power_management_state(*state as u32).await?;
} }
Commands::GetWifiPowerManagementState => { Commands::GetWifiPowerManagementState => {
let state = proxy.wifi_power_management_state().await?; let state = proxy.wifi_power_management_state().await?;
println!("Wifi power management state: {state}"); match WifiPowerManagement::try_from(state) {
Ok(s) => println!("Wifi power management state: {}", s.to_string()),
Err(_) => println!("Got unknown value {state} from backend"),
}
} }
Commands::SetHdmiCecState { state } => { Commands::SetHdmiCecState { state } => {
proxy.set_hdmi_cec_state(*state as u32).await?; proxy.set_hdmi_cec_state(*state as u32).await?;
} }
Commands::GetHdmiCecState => { Commands::GetHdmiCecState => {
let state = proxy.hdmi_cec_state().await?; let state = proxy.hdmi_cec_state().await?;
println!("HDMI-CEC state: {state}"); match HdmiCecState::try_from(state) {
Ok(s) => println!("HDMI-CEC state: {}", s.to_human_readable()),
Err(_) => println!("Got unknown value {state} from backend"),
}
} }
Commands::UpdateBios => { Commands::UpdateBios => {
let _ = proxy.update_bios().await?; let _ = proxy.update_bios().await?;

View file

@ -54,6 +54,16 @@ impl fmt::Display for HdmiCecState {
} }
} }
impl HdmiCecState {
pub fn to_human_readable(&self) -> &'static str {
match self {
HdmiCecState::Disabled => "disabled",
HdmiCecState::ControlOnly => "control-only",
HdmiCecState::ControlAndWake => "control-and-wake",
}
}
}
pub(crate) struct HdmiCecControl<'dbus> { pub(crate) struct HdmiCecControl<'dbus> {
plasma_rc_unit: SystemdUnit<'dbus>, plasma_rc_unit: SystemdUnit<'dbus>,
wakehook_unit: SystemdUnit<'dbus>, wakehook_unit: SystemdUnit<'dbus>,