From 4fa69afa9e175c414fa37882decea116135e8c50 Mon Sep 17 00:00:00 2001 From: rrr-marble Date: Sun, 27 Jun 2021 08:29:26 +0300 Subject: [PATCH] add: struct holding a key and an action --- src/main.rs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index 82a5804..df5666c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,11 +11,17 @@ fn main() -> () { } println!("{}", D.name().unwrap_or("Unknown device")); - let side_handle = std::thread::spawn(|| loop { - if D.get_key_state().unwrap().contains(evdev::Key::BTN_SIDE) { - println!("BTN_SIDE"); + let side_handle = std::thread::spawn(|| { + let pedal = Pedal { + key: evdev::Key::BTN_SIDE, + action: Box::new(|| println!("BTN_SIDE")), + }; + loop { + if D.get_key_state().unwrap().contains(pedal.key) { + (*pedal.action)(); + } + std::thread::sleep(std::time::Duration::from_millis(100)); } - std::thread::sleep(std::time::Duration::from_millis(100)); }); let extra_handle = std::thread::spawn(|| loop { @@ -49,3 +55,8 @@ fn pick_device() -> evdev::Device { devices.into_iter().nth(n).unwrap() } } + +struct Pedal { + key: evdev::Key, + action: Box ()>, +}