From 2bb98ae1f837f4d09f282886b5d6d184e8726207 Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Wed, 8 Dec 2021 19:55:20 +0100 Subject: add KDGETLED subcommand to vtcol-bin Actually we add both subcommand and sub-subcommand. Example: [*] 15:52:40 phg@acheron vtcol $ vtcol leds get Caps: false, Num: true, Scroll: false --- src/lib.rs | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs index 681177c..2ef43e8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -165,7 +165,7 @@ pub struct KbLedState(u8); impl KbLedState { - fn new(cap: bool, num: bool, scr: bool) -> Self + pub fn new(cap: bool, num: bool, scr: bool) -> Self { let mut state = 0u8; @@ -175,6 +175,32 @@ impl KbLedState Self(state) } + + #[inline] + pub fn get(con: &Console) -> io::Result { ioctl::kdgetled(con) } + + #[inline] + pub fn cap(&self) -> bool { (self.0 & 0x4) != 0 } + + #[inline] + pub fn num(&self) -> bool { (self.0 & 0x2) != 0 } + + #[inline] + pub fn scr(&self) -> bool { (self.0 & 0x1) != 0 } +} + +impl fmt::Display for KbLedState +{ + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result + { + write!( + f, + "caps: {}, num: {}, scroll: {}", + self.cap(), + self.num(), + self.scr() + ) + } } impl From for KbLedState -- cgit v1.2.3