diff touchTest/testIn.c~ @ 4639:f5cd4b6231ba

Added Test Directory. Touch input works in touchSimp for wacom bamboo fun on Ubuntu linux. Not yet integrated into library. Should support other touch devices and other linux distros, but not tested on anything else.
author Jim Grandpre <jim.tla@gmail.com>
date Mon, 24 May 2010 23:44:24 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/touchTest/testIn.c~	Mon May 24 23:44:24 2010 -0400
@@ -0,0 +1,69 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <dirent.h>
+#include <linux/input.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/select.h>
+#include <sys/time.h>
+#include <termios.h>
+#include <signal.h>
+
+void handler (int sig)
+{
+  printf ("\nexiting...(%d)\n", sig);
+  exit (0);
+}
+
+void perror_exit (char *error)
+{
+  perror (error);
+  handler (9);
+}
+
+int main (int argc, char *argv[])
+{
+  struct input_event ev[64];
+  int fd, rd, value, size = sizeof (struct input_event);
+  char name[256] = "Unknown";
+  char *device = NULL;
+
+  //Setup check
+  if (argv[1] == NULL){
+      printf("Please specify (on the command line) the path to the dev event interface device\n");
+      exit (0);
+    }
+
+  if ((getuid ()) != 0)
+    printf ("You are not root! This may not work...\n");
+
+  if (argc > 1)
+    device = argv[1];
+
+  //Open Device
+  if ((fd = open (device, O_RDONLY)) == -1)
+    printf ("%s is not a vaild device.\n", device);
+
+  //Print Device Name
+  ioctl (fd, EVIOCGNAME (sizeof (name)), name);
+  printf ("Reading From : %s (%s)\n", device, name);
+
+  while (1){
+      
+    if ((rd = read (fd, ev, size * 64)) < size)
+      perror_exit ("read()");          
+    printf("time: %i\n type: %X\n code: %X\n value: %i\n ",ev[0].time,ev[0].type,ev[0].value,ev[0].value);
+
+      value = ev[0].value;
+
+      if (value != ' ' && ev[1].value == 1 && ev[1].type == 1){ // Only read the key press event
+	   printf ("Code[%d]\n", (ev[1].code));
+      }
+  }
+
+  return 0;
+}