diff src/video/x11/SDL_x11events.c @ 4645:0375d020e7e3

Auto-detects Wacom touch devices.
author Jim Grandpre <jim.tla@gmail.com>
date Mon, 31 May 2010 00:24:37 -0400
parents fb500b3e1717
children eea1bf53effa
line wrap: on
line diff
--- a/src/video/x11/SDL_x11events.c	Sat May 29 02:09:16 2010 -0400
+++ b/src/video/x11/SDL_x11events.c	Mon May 31 00:24:37 2010 -0400
@@ -109,7 +109,6 @@
 #endif
         }
         break;
-
         /* Losing mouse coverage? */
     case LeaveNotify:{
 #ifdef DEBUG_XEVENTS
@@ -422,23 +421,16 @@
     char name[256];
     struct input_event ev[64];
     int size = sizeof (struct input_event);
-    static int initd = 0; //TODO - HACK!
+
     for(i = 0;i < SDL_GetNumTouch();++i) {
 	SDL_Touch* touch = SDL_GetTouchIndex(i);
 	if(!touch) printf("Touch %i/%i DNE\n",i,SDL_GetNumTouch());
 	EventTouchData* data;
-	if(!initd){//data->eventStream <= 0) {
-	    touch->driverdata = SDL_malloc(sizeof(EventTouchData));
-	    data = (EventTouchData*)(touch->driverdata);
-	    printf("Openning device...\n");
-	    data->eventStream = open("/dev/input/wacom", 
-				     O_RDONLY | O_NONBLOCK);
-	    ioctl (data->eventStream, EVIOCGNAME (sizeof (name)), name);
-	    printf ("Reading From : %s\n", name);
-	    initd = 1;
+	data = (EventTouchData*)(touch->driverdata);
+	if(data == NULL) {
+	  printf("No driver data\n");
+	  continue;
 	}
-	else
-	 data = (EventTouchData*)(touch->driverdata);
 	if(data->eventStream <= 0) 
 	    printf("Error: Couldn't open stream\n");
 	rd = read(data->eventStream, ev, size * 64);
@@ -469,6 +461,7 @@
 			data->finger = ev[i].value;
 		    break;
 		case EV_SYN:
+  		    printf("Id: %i\n",touch->id); 
 		    if(data->x >= 0 || data->y >= 0)
 			SDL_SendTouchMotion(touch->id,data->finger, 
 					    SDL_FALSE,data->x,data->y,