From b9770f43f110661d2fcfc1ae80e2bdd0dd142a1f Mon Sep 17 00:00:00 2001 From: Gabriel <68819302+obsidianical@users.noreply.github.com> Date: Thu, 21 Jul 2022 10:54:56 +0200 Subject: [PATCH] cleaned up stuff --- Cargo.toml | 1 - src/bin/easymacrorec.rs | 169 ++++++---------------------------------- src/ev_callback_data.rs | 86 ++++++++++++++++++++ src/lib.rs | 13 +++- src/macro_writer.rs | 33 ++++++++ src/x11_safe_wrapper.rs | 74 +++++++++--------- 6 files changed, 191 insertions(+), 185 deletions(-) create mode 100644 src/ev_callback_data.rs create mode 100644 src/macro_writer.rs diff --git a/Cargo.toml b/Cargo.toml index d517ec4..3e5702c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,6 @@ [package] name = "easymacros" version = "0.1.0" -author = "obsidianical" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/src/bin/easymacrorec.rs b/src/bin/easymacrorec.rs index 1b74121..9d91d88 100644 --- a/src/bin/easymacrorec.rs +++ b/src/bin/easymacrorec.rs @@ -1,27 +1,18 @@ extern crate core; -use std::os::raw::{c_char, c_uchar, c_uint}; -use std::process::{exit, ExitCode}; -use std::ptr::{addr_of, slice_from_raw_parts}; -use std::{io, slice, thread}; -use std::borrow::BorrowMut; -use std::cmp::max; -use std::env::args; -use std::io::Write; use std::ffi::c_void; -use std::fmt::format; -use std::fs::{File, OpenOptions}; -use std::mem::size_of; -use std::time::{Duration, SystemTime, UNIX_EPOCH}; -use clap::Parser; -use x11::keysym::XK_Escape; -use x11::xinput2::XIGrabModeSync; -use x11::xlib::{ButtonPress, ButtonRelease, CurrentTime, GrabModeAsync, GrabModeSync, GrabSuccess, KeyCode, KeyPress, KeyPressMask, KeyRelease, MotionNotify, SyncPointer, Time, XEvent, XFree, XKeyEvent, XKeyPressedEvent, XPointer}; -use x11::xrecord::{XRecordAllocRange, XRecordContext, XRecordCreateContext, XRecordDisableContext, XRecordEndOfData, XRecordFreeData, XRecordInterceptData, XRecordStartOfData}; -use easymacros::{Instructions, Position}; -use easymacros::x11_safe_wrapper::{Keycode, XDisplay}; +use std::os::raw::{c_char}; +use std::process::{exit}; +use std::ptr::addr_of; -const DELAY_DEFAULT_MS: u16 = 10; +use clap::Parser; +use x11::xlib::{CurrentTime, GrabModeAsync, GrabModeSync, GrabSuccess, KeyPressMask, SyncPointer, Time, XFree, XKeyEvent}; +use x11::xrecord::{XRecordAllocRange, XRecordEndOfData, XRecordFreeData, XRecordInterceptData, XRecordStartOfData}; + +use easymacros::{BUTTONPRESS_U8, BUTTONRELEASE_U8, Instructions, KEYPRESS_U8, KEYRELEASE_U8, MOTIONNOTIFY_U8, Position}; +use easymacros::ev_callback_data::EvCallbackData; +use easymacros::macro_writer::MacroWriter; +use easymacros::x11_safe_wrapper::{Keycode, XDisplay}; /// Macro recording module for easymacros. Outputs are partially compatible with xmacro. #[derive(Parser, Debug)] @@ -54,7 +45,7 @@ fn main() { recorded_display, stop_key, writer, - args.max_delay + args.max_delay, ); display.close(); @@ -73,7 +64,7 @@ fn get_stop_key(display: XDisplay) -> Keycode { println!("Press the key you want to use to stop recording the macro."); - let mut stop_key: Keycode = XK_Escape; + let stop_key; loop { display.allow_events(SyncPointer, CurrentTime); let ev = XKeyEvent::from(display.window_event(root, KeyPressMask)); @@ -92,14 +83,13 @@ fn event_loop( recdpy: XDisplay, stop_key: Keycode, mut writer: MacroWriter, - max_delay: Option