termux_api/api/
brightness.rs1use std::process::Command;
2
3use super::errors::TermuxError;
4
5pub enum Brightness {
6 Level(u8),
7 Auto,
8}
9
10pub struct TermuxBrightness {
11 level: Brightness,
12}
13impl TermuxBrightness {
14 pub fn new() -> Self {
15 Self {
16 level: Brightness::Auto,
17 }
18 }
19 pub fn set(mut self, brightness: Brightness) -> Self {
20 self.level = brightness;
21 self
22 }
23 pub fn run(&self) -> Result<(), TermuxError> {
24 let mut command = Command::new("termux-brightness");
25 match self.level {
26 Brightness::Level(lvl) => {
27 command.arg(format!("{lvl}"));
28 }
29 Brightness::Auto => {
30 command.arg("auto".to_string());
31 }
32 }
33 let output = command.output();
34 match output {
35 Ok(output) => {
36 if output.status.success() {
37 return Ok(());
38 }
39 Err(TermuxError::Output(output))
40 }
41 Err(e) => Err(TermuxError::IOError(e)),
42 }
43 }
44}