Commit 36b60b6f authored by jimtla's avatar jimtla

Fixed windo build errors. Should now be compilable.

parent 2ab139c2
...@@ -27,6 +27,8 @@ ...@@ -27,6 +27,8 @@
#include "SDL_events_c.h" #include "SDL_events_c.h"
#include "../video/SDL_sysvideo.h" #include "../video/SDL_sysvideo.h"
#include <stdio.h>
static int SDL_num_touch = 0; static int SDL_num_touch = 0;
static SDL_Touch **SDL_touchPads = NULL; static SDL_Touch **SDL_touchPads = NULL;
...@@ -99,9 +101,7 @@ int ...@@ -99,9 +101,7 @@ int
SDL_AddTouch(const SDL_Touch * touch, char *name) SDL_AddTouch(const SDL_Touch * touch, char *name)
{ {
SDL_Touch **touchPads; SDL_Touch **touchPads;
int selected_touch; int index,length;
int index;
size_t length;
if (SDL_GetTouchIndexId(touch->id) != -1) { if (SDL_GetTouchIndexId(touch->id) != -1) {
SDL_SetError("Touch ID already in use"); SDL_SetError("Touch ID already in use");
...@@ -252,7 +252,6 @@ SDL_AddFinger(SDL_Touch* touch,SDL_Finger* finger) ...@@ -252,7 +252,6 @@ SDL_AddFinger(SDL_Touch* touch,SDL_Finger* finger)
{ {
int index; int index;
SDL_Finger **fingers; SDL_Finger **fingers;
size_t length;
//printf("Adding Finger...\n"); //printf("Adding Finger...\n");
if (SDL_GetFingerIndexId(touch,finger->id) != -1) { if (SDL_GetFingerIndexId(touch,finger->id) != -1) {
SDL_SetError("Finger ID already in use"); SDL_SetError("Finger ID already in use");
...@@ -260,19 +259,18 @@ SDL_AddFinger(SDL_Touch* touch,SDL_Finger* finger) ...@@ -260,19 +259,18 @@ SDL_AddFinger(SDL_Touch* touch,SDL_Finger* finger)
/* Add the touch to the list of touch */ /* Add the touch to the list of touch */
if(touch->num_fingers >= touch->max_fingers){ if(touch->num_fingers >= touch->max_fingers){
printf("Making room for it!\n"); //printf("Making room for it!\n");
fingers = (SDL_Finger **) SDL_realloc(touch->fingers, fingers = (SDL_Finger **) SDL_realloc(touch->fingers,
(touch->num_fingers + 1) * sizeof(SDL_Finger *)); (touch->num_fingers + 1) * sizeof(SDL_Finger *));
touch->max_fingers = touch->num_fingers+1; touch->max_fingers = touch->num_fingers+1;
if (!fingers) { if (!fingers) {
SDL_OutOfMemory(); SDL_OutOfMemory();
return -1; return -1;
} } else {
else { touch->max_fingers = touch->num_fingers+1;
touch->max_fingers = touch->num_fingers+1; touch->fingers = fingers;
touch->fingers = fingers; }
} }
}
index = touch->num_fingers; index = touch->num_fingers;
//printf("Max_Fingers: %i Index: %i\n",touch->max_fingers,index); //printf("Max_Fingers: %i Index: %i\n",touch->max_fingers,index);
...@@ -295,13 +293,14 @@ SDL_DelFinger(SDL_Touch* touch,int fingerid) ...@@ -295,13 +293,14 @@ SDL_DelFinger(SDL_Touch* touch,int fingerid)
SDL_Finger* finger = SDL_GetFinger(touch,fingerid); SDL_Finger* finger = SDL_GetFinger(touch,fingerid);
if (!finger) { if (!finger) {
return; return -1;
} }
SDL_free(finger); SDL_free(finger);
touch->num_fingers--; touch->num_fingers--;
touch->fingers[index] = touch->fingers[touch->num_fingers]; touch->fingers[index] = touch->fingers[touch->num_fingers];
return 0;
} }
...@@ -370,79 +369,80 @@ SDL_SendTouchMotion(int id, int fingerid, int relative, ...@@ -370,79 +369,80 @@ SDL_SendTouchMotion(int id, int fingerid, int relative,
return 0; return 0;
} }
if(finger == NULL) if(finger == NULL) {
SDL_SendFingerDown(id,fingerid,SDL_TRUE,x,y,pressure); SDL_SendFingerDown(id,fingerid,SDL_TRUE,x,y,pressure);
else { return 0;
/* the relative motion is calculated regarding the last position */
if (relative) {
xrel = x;
yrel = y;
x = (finger->last_x + x);
y = (finger->last_y + y);
} else { } else {
if(x < 0) x = finger->last_x; /*If movement is only in one axis,*/ /* the relative motion is calculated regarding the last position */
if(y < 0) y = finger->last_y; /*The other is marked as -1*/ if (relative) {
if(pressure < 0) pressure = finger->last_pressure; xrel = x;
xrel = x - finger->last_x; yrel = y;
yrel = y - finger->last_y; x = (finger->last_x + x);
} y = (finger->last_y + y);
} else {
/* Drop events that don't change state */ if(x < 0) x = finger->last_x; /*If movement is only in one axis,*/
if (!xrel && !yrel) { if(y < 0) y = finger->last_y; /*The other is marked as -1*/
#if 0 if(pressure < 0) pressure = finger->last_pressure;
printf("Touch event didn't change state - dropped!\n"); xrel = x - finger->last_x;
#endif yrel = y - finger->last_y;
return 0; }
}
/* Drop events that don't change state */
/* Update internal touch coordinates */ if (!xrel && !yrel) {
#if 0
finger->x = x; printf("Touch event didn't change state - dropped!\n");
finger->y = y; #endif
return 0;
/*Should scale to window? Normalize? Maintain Aspect?*/ }
//SDL_GetWindowSize(touch->focus, &x_max, &y_max);
/* Update internal touch coordinates */
/* make sure that the pointers find themselves inside the windows */
/* only check if touch->xmax is set ! */ finger->x = x;
/* finger->y = y;
if (x_max && touch->x > x_max) {
touch->x = x_max; /*Should scale to window? Normalize? Maintain Aspect?*/
} else if (touch->x < 0) { //SDL_GetWindowSize(touch->focus, &x_max, &y_max);
touch->x = 0;
} /* make sure that the pointers find themselves inside the windows */
/* only check if touch->xmax is set ! */
if (y_max && touch->y > y_max) { /*
touch->y = y_max; if (x_max && touch->x > x_max) {
} else if (touch->y < 0) { touch->x = x_max;
touch->y = 0; } else if (touch->x < 0) {
} touch->x = 0;
*/ }
finger->xdelta = xrel;
finger->ydelta = yrel; if (y_max && touch->y > y_max) {
finger->pressure = pressure; touch->y = y_max;
} else if (touch->y < 0) {
touch->y = 0;
}
/* Post the event, if desired */ */
posted = 0; finger->xdelta = xrel;
if (SDL_GetEventState(SDL_FINGERMOTION) == SDL_ENABLE) { finger->ydelta = yrel;
SDL_Event event; finger->pressure = pressure;
event.tfinger.type = SDL_FINGERMOTION;
event.tfinger.touchId = (Uint8) id;
event.tfinger.fingerId = (Uint8) fingerid;
event.tfinger.x = x; /* Post the event, if desired */
event.tfinger.y = y; posted = 0;
event.tfinger.pressure = pressure; if (SDL_GetEventState(SDL_FINGERMOTION) == SDL_ENABLE) {
event.tfinger.state = touch->buttonstate; SDL_Event event;
event.tfinger.windowID = touch->focus ? touch->focus->id : 0; event.tfinger.type = SDL_FINGERMOTION;
posted = (SDL_PushEvent(&event) > 0); event.tfinger.touchId = (Uint8) id;
event.tfinger.fingerId = (Uint8) fingerid;
event.tfinger.x = x;
event.tfinger.y = y;
event.tfinger.pressure = pressure;
event.tfinger.state = touch->buttonstate;
event.tfinger.windowID = touch->focus ? touch->focus->id : 0;
posted = (SDL_PushEvent(&event) > 0);
}
finger->last_x = finger->x;
finger->last_y = finger->y;
finger->last_pressure = finger->pressure;
return posted;
} }
finger->last_x = finger->x;
finger->last_y = finger->y;
finger->last_pressure = finger->pressure;
return posted;
}
} }
int int
SDL_SendTouchButton(int id, Uint8 state, Uint8 button) SDL_SendTouchButton(int id, Uint8 state, Uint8 button)
...@@ -483,7 +483,7 @@ SDL_SendTouchButton(int id, Uint8 state, Uint8 button) ...@@ -483,7 +483,7 @@ SDL_SendTouchButton(int id, Uint8 state, Uint8 button)
if (SDL_GetEventState(type) == SDL_ENABLE) { if (SDL_GetEventState(type) == SDL_ENABLE) {
SDL_Event event; SDL_Event event;
event.type = type; event.type = type;
event.tbutton.touchId = (Uint8) index; event.tbutton.touchId = (Uint8) touch->id;
event.tbutton.state = state; event.tbutton.state = state;
event.tbutton.button = button; event.tbutton.button = button;
event.tbutton.windowID = touch->focus ? touch->focus->id : 0; event.tbutton.windowID = touch->focus ? touch->focus->id : 0;
......
...@@ -65,7 +65,7 @@ extern int SDL_SendTouchButton(int id, Uint8 state, Uint8 button); ...@@ -65,7 +65,7 @@ extern int SDL_SendTouchButton(int id, Uint8 state, Uint8 button);
extern void SDL_TouchQuit(void); extern void SDL_TouchQuit(void);
/* Get the index of a touch device */ /* Get the index of a touch device */
extern int SDL_GetTouchIndexId(int id) extern int SDL_GetTouchIndexId(int id);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment