]> git.scottworley.com Git - keystroke-timestamps/commitdiff
Specify keyboard device as an option
authorScott Worley <scottworley@scottworley.com>
Thu, 26 Dec 2013 07:54:06 +0000 (23:54 -0800)
committerScott Worley <scottworley@scottworley.com>
Thu, 26 Dec 2013 07:54:06 +0000 (23:54 -0800)
keystroke-timestamps.c

index 2ab4c42938a2cb3177bd1f00c1a2f413d8ba712c..fd7de5d785bbd52f2482cf1c1d718d9cbd3c40f6 100644 (file)
 int main (int argc, char **argv)
 {
   int print_usec = 0;
 int main (int argc, char **argv)
 {
   int print_usec = 0;
+  char* device = strdup("/dev/input/by-path/platform-i8042-serio-0-event-kbd");
   struct option long_options[] = {
   struct option long_options[] = {
+    {"device", required_argument, 0,            'd' },
     {"usec",   no_argument,       &print_usec,  1   },
     {0,        0,                 0,            0   },
   };
   while (1) {
     int c = getopt_long(argc, argv, "", long_options, NULL);
     if (c == -1) break;
     {"usec",   no_argument,       &print_usec,  1   },
     {0,        0,                 0,            0   },
   };
   while (1) {
     int c = getopt_long(argc, argv, "", long_options, NULL);
     if (c == -1) break;
+    if (c == 'd') {
+      free(device);
+      device = strdup(optarg);
+      continue;
+    }
     if (c != 0) exit(EX_USAGE);
   }
 
     if (c != 0) exit(EX_USAGE);
   }
 
-  int fd = open("/dev/input/by-path/platform-i8042-serio-0-event-kbd", O_RDONLY);
+  int fd = open(device, O_RDONLY);
   if (fd < 0) {
     err(EX_NOINPUT, "Could not open keyboard event file");
   }
   if (fd < 0) {
     err(EX_NOINPUT, "Could not open keyboard event file");
   }
+  free(device);
   struct input_event i;
   while (read(fd, &i, sizeof(i)) == sizeof(i)) {
     if (i.type == 1 && i.value == 1) {
   struct input_event i;
   while (read(fd, &i, sizeof(i)) == sizeof(i)) {
     if (i.type == 1 && i.value == 1) {