Skip to content

Commit 22eceec

Browse files
committed
fp-brightness: Add fp-led-level for V1 command
Signed-off-by: Daniel Schaefer <dhs@frame.work>
1 parent 0b8763e commit 22eceec

File tree

3 files changed

+59
-14
lines changed

3 files changed

+59
-14
lines changed

framework_lib/src/commandline/clap_std.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,9 +137,13 @@ struct ClapCli {
137137
#[arg(long)]
138138
get_gpio: Option<String>,
139139

140-
/// Get or set fingerprint LED brightness
140+
/// Get or set fingerprint LED brightness level
141141
#[arg(long)]
142-
fp_brightness: Option<Option<FpBrightnessArg>>,
142+
fp_led_level: Option<Option<FpBrightnessArg>>,
143+
144+
/// Get or set fingerprint LED brightness percentage
145+
#[arg(long)]
146+
fp_brightness: Option<Option<u8>>,
143147

144148
/// Set keyboard backlight percentage or get, if no value provided
145149
#[arg(long)]
@@ -267,6 +271,7 @@ pub fn parse(args: &[String]) -> Cli {
267271
input_deck_mode: args.input_deck_mode,
268272
charge_limit: args.charge_limit,
269273
get_gpio: args.get_gpio,
274+
fp_led_level: args.fp_led_level,
270275
fp_brightness: args.fp_brightness,
271276
kblight: args.kblight,
272277
tablet_mode: args.tablet_mode,

framework_lib/src/commandline/mod.rs

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,8 @@ pub struct Cli {
163163
pub input_deck_mode: Option<InputDeckModeArg>,
164164
pub charge_limit: Option<Option<u8>>,
165165
pub get_gpio: Option<String>,
166-
pub fp_brightness: Option<Option<FpBrightnessArg>>,
166+
pub fp_led_level: Option<Option<FpBrightnessArg>>,
167+
pub fp_brightness: Option<Option<u8>>,
167168
pub kblight: Option<Option<u8>>,
168169
pub tablet_mode: Option<TabletModeArg>,
169170
pub console: Option<ConsoleArg>,
@@ -745,6 +746,8 @@ pub fn run_with_args(args: &Cli, _allupdate: bool) -> i32 {
745746
} else {
746747
println!("Not found");
747748
}
749+
} else if let Some(maybe_led_level) = &args.fp_led_level {
750+
print_err(handle_fp_led_level(&ec, *maybe_led_level));
748751
} else if let Some(maybe_brightness) = &args.fp_brightness {
749752
print_err(handle_fp_brightness(&ec, *maybe_brightness));
750753
} else if let Some(Some(kblight)) = args.kblight {
@@ -1359,9 +1362,25 @@ fn handle_charge_limit(ec: &CrosEc, maybe_limit: Option<u8>) -> EcResult<()> {
13591362
Ok(())
13601363
}
13611364

1362-
fn handle_fp_brightness(ec: &CrosEc, maybe_brightness: Option<FpBrightnessArg>) -> EcResult<()> {
1365+
fn handle_fp_led_level(ec: &CrosEc, maybe_led_level: Option<FpBrightnessArg>) -> EcResult<()> {
1366+
if let Some(led_level) = maybe_led_level {
1367+
ec.set_fp_led_level(led_level.into())?;
1368+
}
1369+
1370+
let (brightness, level) = ec.get_fp_led_level()?;
1371+
// TODO: Rename to power button
1372+
println!("Fingerprint LED Brightness");
1373+
if let Some(level) = level {
1374+
println!(" Requested: {:?}", level);
1375+
}
1376+
println!(" Brightness: {}%", brightness);
1377+
1378+
Ok(())
1379+
}
1380+
1381+
fn handle_fp_brightness(ec: &CrosEc, maybe_brightness: Option<u8>) -> EcResult<()> {
13631382
if let Some(brightness) = maybe_brightness {
1364-
ec.set_fp_led_level(brightness.into())?;
1383+
ec.set_fp_led_percentage(brightness)?;
13651384
}
13661385

13671386
let (brightness, level) = ec.get_fp_led_level()?;

framework_lib/src/commandline/uefi.rs

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ pub fn parse(args: &[String]) -> Cli {
8484
input_deck_mode: None,
8585
charge_limit: None,
8686
get_gpio: None,
87+
fp_led_level: None,
8788
fp_brightness: None,
8889
kblight: None,
8990
tablet_mode: None,
@@ -237,21 +238,41 @@ pub fn parse(args: &[String]) -> Cli {
237238
None
238239
};
239240
found_an_option = true;
240-
} else if arg == "--fp-brightness" {
241-
cli.fp_brightness = if args.len() > i + 1 {
242-
let fp_brightness_arg = &args[i + 1];
243-
if fp_brightness_arg == "high" {
241+
} else if arg == "--fp-led-level" {
242+
cli.fp_led_level = if args.len() > i + 1 {
243+
let fp_led_level_arg = &args[i + 1];
244+
if fp_led_level_arg == "high" {
244245
Some(Some(FpBrightnessArg::High))
245-
} else if fp_brightness_arg == "medium" {
246+
} else if fp_led_level_arg == "medium" {
246247
Some(Some(FpBrightnessArg::Medium))
247-
} else if fp_brightness_arg == "low" {
248+
} else if fp_led_level_arg == "low" {
248249
Some(Some(FpBrightnessArg::Low))
249-
} else if fp_brightness_arg == "ultra-low" {
250+
} else if fp_led_level_arg == "ultra-low" {
250251
Some(Some(FpBrightnessArg::UltraLow))
251-
} else if fp_brightness_arg == "auto" {
252+
} else if fp_led_level_arg == "auto" {
252253
Some(Some(FpBrightnessArg::Auto))
253254
} else {
254-
println!("Invalid value for --fp-brightness: {}", fp_brightness_arg);
255+
println!("Invalid value for --fp-led-level: {}", fp_led_level_arg);
256+
None
257+
}
258+
} else {
259+
Some(None)
260+
};
261+
found_an_option = true;
262+
} else if arg == "--fp-brightness" {
263+
cli.fp_brightness = if args.len() > i + 1 {
264+
if let Ok(fp_brightness_arg) = args[i + 1].parse::<u8>() {
265+
if fp_brightness_arg == 0 || fp_brightness_arg > 100 {
266+
println!(
267+
"Invalid value for --fp-brightness: {}. Must be in the range of 1-100",
268+
fp_brightness_arg
269+
);
270+
None
271+
} else {
272+
Some(Some(fp_brightness_arg))
273+
}
274+
} else {
275+
println!("Invalid value for --fp-brightness. Must be in the range of 1-100");
255276
None
256277
}
257278
} else {

0 commit comments

Comments
 (0)