2020-09-01 16:31:07 +02:00
|
|
|
#[macro_use(hookproc)]
|
|
|
|
extern crate jenslog_rs;
|
2020-08-25 16:37:58 +02:00
|
|
|
#[macro_use]
|
|
|
|
extern crate lazy_static;
|
|
|
|
|
|
|
|
use std::env::args;
|
2020-08-26 13:15:01 +02:00
|
|
|
use std::sync::Mutex;
|
2020-08-25 13:12:41 +02:00
|
|
|
|
2020-09-01 16:31:07 +02:00
|
|
|
use jenslog_rs::{key::keystate::KeyState, logging::logger::{get_logger, Logger}};
|
|
|
|
use jenslog_rs::key::keyhook::Keyhook;
|
2020-08-25 16:37:58 +02:00
|
|
|
|
|
|
|
lazy_static! {
|
2020-08-26 13:15:01 +02:00
|
|
|
static ref KEYSTATE: Mutex<Box<KeyState>> = Mutex::new(KeyState::new());
|
|
|
|
static ref LOGGER: Box<dyn Logger> = get_logger(&args().nth(1).unwrap_or_default());
|
2020-08-25 16:37:58 +02:00
|
|
|
}
|
2020-08-25 13:12:41 +02:00
|
|
|
|
|
|
|
fn main() {
|
2020-09-01 16:31:07 +02:00
|
|
|
let hook = Keyhook::new(hookproc!(|_, _, key| {
|
|
|
|
let mut state = KEYSTATE.lock().unwrap();
|
|
|
|
state.update(key);
|
|
|
|
//Check if keydown and not aux key
|
|
|
|
if state.is_down() && !state.is_aux_key() {
|
|
|
|
LOGGER.log(&state);
|
|
|
|
}
|
|
|
|
}));
|
|
|
|
hook.start();
|
2020-08-25 13:12:41 +02:00
|
|
|
}
|