From bd765930588963cfb7b0d7ceb1f82c52fa4cd041 Mon Sep 17 00:00:00 2001 From: mrbesen Date: Sat, 19 Jan 2019 18:54:41 +0100 Subject: [PATCH] added -q option --- src/args.cc | 6 ++++-- src/logkeys.cc | 16 ++++++++++------ src/usage.cc | 1 + 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/args.cc b/src/args.cc index cadd379..a5ba58e 100644 --- a/src/args.cc +++ b/src/args.cc @@ -19,6 +19,7 @@ struct arguments bool kill; // stop keylogger, -k switch bool us_keymap; // use default US keymap, -u switch bool precise; // log with ms, -p switch + bool onlyms; std::string logfile; // user-specified log filename, -o switch std::string keymap; // user-specified keymap file, -m switch or --export-keymap std::string device; // user-specified input event device, given with -d switch @@ -64,7 +65,7 @@ void process_command_line_arguments(int argc, char **argv) int c; int option_index; - while ((c = getopt_long(argc, argv, "sm:o:ukpd:?", long_options, &option_index)) != -1) + while ((c = getopt_long(argc, argv, "sm:o:ukpqd:?", long_options, &option_index)) != -1) { switch (c) { @@ -75,7 +76,8 @@ void process_command_line_arguments(int argc, char **argv) case 'k': args.kill = true; break; case 'd': args.device = optarg; break; case 'p': args.precise = true; break; - + case 'q': args.precise = args.onlyms = true; break; + case 0 : args.flags |= flags; switch (flags) diff --git a/src/logkeys.cc b/src/logkeys.cc index e4d1b08..5fc6106 100644 --- a/src/logkeys.cc +++ b/src/logkeys.cc @@ -25,7 +25,6 @@ #include #include #include // for precise time messureing -#include //debug #ifdef HAVE_CONFIG_H # include // include config produced from ./configure @@ -456,11 +455,16 @@ void init() { std::string createStamp() { std::chrono::time_point < std::chrono::system_clock > time = std::chrono::system_clock::now(); - time_t cur_time = std::chrono::system_clock::to_time_t(time); - auto time_ms = std::chrono::duration_cast < std::chrono::milliseconds > (time - std::chrono::system_clock::from_time_t(cur_time)); - char timestamp[32]; - strftime(timestamp, sizeof(timestamp), TIME_FORMAT, localtime(&cur_time)); - return std::string(timestamp) + std::to_string(time_ms.count()) + "ms : "; + auto time_ms = std::chrono::duration_cast < std::chrono::milliseconds > (time.time_since_epoch()); + std::string out = ""; + if(!args.onlyms) { + time_t cur_time = std::chrono::system_clock::to_time_t(time); + time_ms = std::chrono::duration_cast < std::chrono::milliseconds > (time - std::chrono::system_clock::from_time_t(cur_time)); + char timestamp[32]; + strftime(timestamp, sizeof(timestamp), TIME_FORMAT, localtime(&cur_time)); + out = std::string(timestamp); + } + return out + std::to_string(time_ms.count()) + "ms : "; } int printBeginStamp(FILE* out) { diff --git a/src/usage.cc b/src/usage.cc index 6271353..f2f7be0 100644 --- a/src/usage.cc +++ b/src/usage.cc @@ -24,6 +24,7 @@ void usage() " -k, --kill kill running logkeys process\n" " -d, --device=FILE input event device [eventX from " INPUT_EVENT_PATH "]\n" " -p, --precise add milliseconds to the timestamp and add a timestamp to every press\n" +" -q, only log the ms to create a esaier format for other programs to process" " -?, --help print this help screen\n" " --export-keymap=FILE export configured keymap to FILE and exit\n" " --no-func-keys log only character keys\n"