From d93311a4fb8a9bb3b749d1ea0d47be54d1a13ba5 Mon Sep 17 00:00:00 2001 From: Pariring Date: Sat, 26 Nov 2022 18:41:06 +0900 Subject: [PATCH] fix: use two numbers to send current time --- src/lib.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 18ba7f7..8b0be24 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -16,7 +16,8 @@ pub enum NativeEventType { #[repr(C)] pub struct NativeEvent { - pub time: usize, + pub time_sec: u64, + pub time_nsec: u32, pub event_type: NativeEventType, pub vkey: u16, pub keycode: u16, @@ -43,18 +44,22 @@ pub extern "C" fn start_hook(callback: extern "C" fn(NativeEvent)) -> *const c_c } if let Err(e) = skyhook::run(move |event| { + let (sec, nsec) = get_time(event.time); + let event = match event.data { skyhook::types::EventData::KeyPress(label, key) => NativeEvent { - time: get_time(event.time), event_type: NativeEventType::KeyPressed, vkey: label as u16, keycode: key, + time_sec: sec, + time_nsec: nsec, }, skyhook::types::EventData::KeyRelease(label, key) => NativeEvent { - time: get_time(event.time), event_type: NativeEventType::KeyReleased, vkey: label as u16, keycode: key, + time_sec: sec, + time_nsec: nsec, }, }; send_callback(event);