ref: loop vec for take all key-action pairs

v0.1.1
rrr-marble 5 years ago
parent c0e3204cfc
commit 31ad2af6b2

@ -12,7 +12,7 @@ fn main() -> () {
}
println!("{}", D.name().unwrap_or("Unknown device"));
let mut pedals = vec![
let pedals = vec![
Pedal {
key: evdev::Key::BTN_SIDE,
action: Box::new(|| println!("BTN_SIDE")),
@ -23,23 +23,21 @@ fn main() -> () {
},
];
let pedal = pedals.pop().unwrap();
let side_handle = std::thread::spawn(move || loop {
if D.get_key_state().unwrap().contains(pedal.key) {
(*pedal.action)();
}
std::thread::sleep(std::time::Duration::from_millis(100));
});
let mut handles: Vec<_> = Vec::new();
let extra_handle = std::thread::spawn(|| loop {
if D.get_key_state().unwrap().contains(evdev::Key::BTN_SIDE) {
println!("BTN_SIDE");
}
std::thread::sleep(std::time::Duration::from_millis(100));
});
for pedal in pedals {
let handle = std::thread::spawn(move || loop {
if D.get_key_state().unwrap().contains(pedal.key) {
(*pedal.action)();
}
std::thread::sleep(std::time::Duration::from_millis(100));
});
handles.push(handle);
}
extra_handle.join().expect("Couldn't join");
side_handle.join().expect("Couldn't join");
for handle in handles {
handle.join().expect("Couldn't join");
}
}
fn pick_device() -> evdev::Device {

Loading…
Cancel
Save