changeset 4681:5378f2d0754f

Fixed some Gesture bugs
author Jim Grandpre <jim.tla@gmail.com>
date Mon, 02 Aug 2010 00:14:53 -0400
parents 229529693289
children 4ba1048a324c
files configure.in src/events/SDL_gesture.c src/events/SDL_touch.c src/video/x11/SDL_eventtouch.c src/video/x11/SDL_x11events.c touchTest/gestureSDLTest.c
diffstat 6 files changed, 18 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/configure.in	Sat Jul 31 20:55:33 2010 -0700
+++ b/configure.in	Mon Aug 02 00:14:53 2010 -0400
@@ -285,8 +285,6 @@
     AC_DEFINE(uintptr_t, unsigned long)
 fi
 
-AC_CHECK_HEADER(Linux/input.h,AC_DEFINE(HAVE_LINUX_INPUT_H))
-
 # Standard C sources
 SOURCES="$SOURCES $srcdir/src/*.c"
 SOURCES="$SOURCES $srcdir/src/audio/*.c"
@@ -1007,6 +1005,8 @@
 dnl Find the X11 include and library directories
 CheckX11()
 {
+
+
     AC_ARG_ENABLE(video-x11,
 AC_HELP_STRING([--enable-video-x11], [use X11 video driver [[default=yes]]]),
                   , enable_video_x11=yes)
--- a/src/events/SDL_gesture.c	Sat Jul 31 20:55:33 2010 -0700
+++ b/src/events/SDL_gesture.c	Mon Aug 02 00:14:53 2010 -0400
@@ -27,7 +27,7 @@
 #include "SDL_gesture_c.h"
 
 //TODO: Replace with malloc
-#define MAXFINGERS 3
+#define MAXFINGERS 5
 #define MAXTOUCHES 2
 #define MAXTEMPLATES 4
 #define MAXPATHSIZE 1024
@@ -496,6 +496,7 @@
 	  }
 	} 
 	inTouch->gestureLast[j] = inTouch->gestureLast[inTouch->numDownFingers];
+	j = -1;
 	break;
       }
       else {
--- a/src/events/SDL_touch.c	Sat Jul 31 20:55:33 2010 -0700
+++ b/src/events/SDL_touch.c	Mon Aug 02 00:14:53 2010 -0400
@@ -392,8 +392,7 @@
     //scale to Integer coordinates
     Uint16 x = (xin+touch->x_min)*(touch->xres)/(touch->native_xres);
     Uint16 y = (yin+touch->y_min)*(touch->yres)/(touch->native_yres);
-	Uint16 pressure = (yin+touch->pressure_min)*(touch->pressureres)/(touch->native_pressureres);
-	printf("(%f,%f) --> (%i,%i)\n",xin,yin,x,y);
+    Uint16 pressure = (yin+touch->pressure_min)*(touch->pressureres)/(touch->native_pressureres);
     if(touch->flush_motion) {
 	return 0;
     }
--- a/src/video/x11/SDL_eventtouch.c	Sat Jul 31 20:55:33 2010 -0700
+++ b/src/video/x11/SDL_eventtouch.c	Mon Aug 02 00:14:53 2010 -0400
@@ -24,7 +24,8 @@
 #include "SDL_eventtouch.h"
 #include "../../events/SDL_touch_c.h"
 
-#ifdef HAVE_LINUX_INPUT_H
+
+#ifdef SDL_INPUT_LINUXEV
 #include <linux/input.h>
 #include <fcntl.h>
 #endif
@@ -32,7 +33,7 @@
 void
 X11_InitTouch(_THIS)
 {
-#ifdef HAVE_LINUX_INPUT_H
+#ifdef SDL_INPUT_LINUXEV
   printf("Initializing touch...\n");
 
   FILE *fd;
--- a/src/video/x11/SDL_x11events.c	Sat Jul 31 20:55:33 2010 -0700
+++ b/src/video/x11/SDL_x11events.c	Mon Aug 02 00:14:53 2010 -0400
@@ -37,7 +37,7 @@
 
 #include <stdio.h>
 
-#ifdef HAVE_LINUX_INPUT_H
+#ifdef SDL_INPUT_LINUXEV
 //Touch Input/event* includes
 #include <linux/input.h>
 #include <fcntl.h>
@@ -402,7 +402,7 @@
         X11_DispatchEvent(_this);
     }
 
-#ifdef HAVE_LINUX_INPUT_H
+#ifdef SDL_INPUT_LINUXEV
     /* Process Touch events - TODO When X gets touch support, use that instead*/
     int i = 0,rd;
     char name[256];
--- a/touchTest/gestureSDLTest.c	Sat Jul 31 20:55:33 2010 -0700
+++ b/touchTest/gestureSDLTest.c	Mon Aug 02 00:14:53 2010 -0400
@@ -131,7 +131,7 @@
   
   memcpy(&colour,pixmem32,screen->format->BytesPerPixel);
 
-  SDL_GetRGB(colour,screen->format,&r,&g,&b); //Always returns 0xFFFFFF?
+  SDL_GetRGB(colour,screen->format,&r,&g,&b);
   //r = 0;g = 0; b = 0;
   a = (col>>24)&0xFF;
   if(a == 0) a = 0xFF; //Hack, to make things easier.
@@ -400,8 +400,7 @@
 	    
 	    break;	    
 	  case SDL_FINGERDOWN:
-	    printf("Finger: %"PRIs64" down - x: %i, y: %i\n",event.tfinger.fingerId,
-		   event.tfinger.x,event.tfinger.y);
+	    //printf("Finger: %"PRIs64" down - x: %i, y: %i\n",event.tfinger.fingerId,event.tfinger.x,event.tfinger.y);
 
 	    for(i = 0;i<MAXFINGERS;i++) 
 	      if(index2fingerid[i] == -1) {
@@ -412,8 +411,7 @@
 	    finger[i].p.y = event.tfinger.y;
 	    break;
 	  case SDL_FINGERUP:
-	    printf("Finger: %"PRIs64" up - x: %i, y: %i\n",event.tfinger.fingerId,
-	           event.tfinger.x,event.tfinger.y);
+	    //printf("Finger: %"PRIs64" up - x: %i, y: %i\n",event.tfinger.fingerId,event.tfinger.x,event.tfinger.y);
 	    for(i = 0;i<MAXFINGERS;i++) 
 	      if(index2fingerid[i] == event.tfinger.fingerId) {
 		index2fingerid[i] = -1;
@@ -423,6 +421,11 @@
 	    finger[i].p.y = -1;
 	    break;
 	  case SDL_MULTIGESTURE:
+	    printf("Multi Gesture: x = %f, y = %f, dAng = %f, dR = %f\n",
+		   event.mgesture.x,
+		   event.mgesture.y,
+		   event.mgesture.dTheta,
+		   event.mgesture.dDist);
 	    knob.p.x = event.mgesture.x;
 	    knob.p.y = event.mgesture.y;
 	    knob.ang += event.mgesture.dTheta;