]> git.scottworley.com Git - keystroke-timestamps/blobdiff - keystroke-timestamps.c
Allow multiple keystrokes at the same time
[keystroke-timestamps] / keystroke-timestamps.c
index 73ce86ebecd3b393beac5a323d608f46b33294be..31086788cf34bec292b0b53512e05315fd569eb1 100644 (file)
@@ -9,6 +9,12 @@
 #include <sys/select.h>
 #include <unistd.h>
 
 #include <sys/select.h>
 #include <unistd.h>
 
+// This constant is defined in include/uapi/linux/input-event-codes.h
+#ifndef EV_KEY
+#define EV_KEY      0x01
+#endif
+
+
 int main (int argc, char **argv)
 {
   int print_usec = 0;
 int main (int argc, char **argv)
 {
   int print_usec = 0;
@@ -73,7 +79,7 @@ int main (int argc, char **argv)
   struct input_event i;
   while (1) {
     fd_set ready_inputs = all_inputs;
   struct input_event i;
   while (1) {
     fd_set ready_inputs = all_inputs;
-    if (select(maxfd+1, &ready_inputs, NULL, NULL, NULL) != 1) {
+    if (select(maxfd+1, &ready_inputs, NULL, NULL, NULL) < 1) {
       err(EX_IOERR, "select");
     }
     for (int fd=0; fd <= maxfd; fd++) {
       err(EX_IOERR, "select");
     }
     for (int fd=0; fd <= maxfd; fd++) {
@@ -85,7 +91,7 @@ int main (int argc, char **argv)
         if (read_return != sizeof(i)) {
           errx(EX_IOERR, "Unexpected EOF");
         }
         if (read_return != sizeof(i)) {
           errx(EX_IOERR, "Unexpected EOF");
         }
-        if (i.type == 1 && i.value == 1) {
+        if (i.type == EV_KEY && i.value == 1) {
           if (print_usec) {
             fprintf(output_file, "%ld.%06ld\n", i.time.tv_sec, i.time.tv_usec);
           } else {
           if (print_usec) {
             fprintf(output_file, "%ld.%06ld\n", i.time.tv_sec, i.time.tv_usec);
           } else {