From 442da63c90b20ef771653180ea4c1793133be3b6 Mon Sep 17 00:00:00 2001 From: Vinzenz Schroeter Date: Sat, 8 Feb 2025 13:57:05 +0100 Subject: [PATCH] set screen brightness --- src/cli.rs | 10 ++++++++-- src/execute.rs | 16 ++++++++++++++-- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/cli.rs b/src/cli.rs index 43b19bf..8826a7d 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -1,5 +1,5 @@ #[derive(clap::Parser, std::fmt::Debug)] -#[clap(version)] +#[clap(version, arg_required_else_help = true)] pub struct Cli { #[arg( short, @@ -19,7 +19,7 @@ pub struct Cli { #[clap(subcommand)] pub command: Mode, #[clap(short, long, help = "verbose logging")] - pub verbose: bool + pub verbose: bool, } #[derive(clap::Parser, std::fmt::Debug)] @@ -48,6 +48,12 @@ pub enum PixelCommand { pub enum BrightnessCommand { #[command(visible_alias = "r")] Reset, + #[command(visible_alias = "s")] + Set { + brightness: u8, + }, + Min, + Max, } #[derive(clap::ValueEnum, Clone, Debug)] diff --git a/src/execute.rs b/src/execute.rs index f89629c..8301470 100644 --- a/src/execute.rs +++ b/src/execute.rs @@ -1,6 +1,6 @@ +use crate::cli::{BrightnessCommand, Mode, PixelCommand}; use log::info; use servicepoint::{Brightness, Command, Connection}; -use crate::cli::{BrightnessCommand, Mode, PixelCommand}; pub fn execute_mode(mode: Mode, connection: Connection) { match mode { @@ -22,6 +22,11 @@ fn pixels(connection: &Connection, pixel_command: PixelCommand) { fn brightness(connection: &Connection, brightness_command: BrightnessCommand) { match brightness_command { BrightnessCommand::Reset => brightness_reset(&connection), + BrightnessCommand::Min => brightness_set(&connection, Brightness::MIN), + BrightnessCommand::Max => brightness_set(&connection, Brightness::MAX), + BrightnessCommand::Set { brightness } => { + brightness_set(&connection, Brightness::saturating_from(brightness)) + } } } @@ -37,4 +42,11 @@ fn brightness_reset(connection: &Connection) { .send(Command::Brightness(Brightness::MAX)) .expect("Failed to reset brightness to maximum"); info!("Reset brightness"); -} \ No newline at end of file +} + +fn brightness_set(connection: &&Connection, brightness: Brightness) { + connection + .send(Command::Brightness(brightness)) + .expect("Failed to set brightness"); + info!("set brightness to {brightness:?}"); +}