Mercurial > sdl-ios-xcode
annotate src/events/SDL_touch.c @ 4654:7dbcd71216df
Added $1 gesture recognition.
Functional.
author | Jim Grandpre <jim.tla@gmail.com> |
---|---|
date | Thu, 17 Jun 2010 03:41:27 -0400 |
parents | 0350b634c044 |
children | 4c94f2023d62 |
rev | line source |
---|---|
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
1 /* |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
2 SDL - Simple DirectMedia Layer |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
3 Copyright (C) 1997-2010 Sam Lantinga |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
4 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
5 This library is free software; you can redistribute it and/or |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
6 modify it under the terms of the GNU Lesser General Public |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
7 License as published by the Free Software Foundation; either |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
8 version 2.1 of the License, or (at your option) any later version. |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
9 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
10 This library is distributed in the hope that it will be useful, |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
11 but WITHOUT ANY WARRANTY; without even the implied warranty of |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
13 Lesser General Public License for more details. |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
14 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
15 You should have received a copy of the GNU Lesser General Public |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
16 License along with this library; if not, write to the Free Software |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
18 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
19 Sam Lantinga |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
20 slouken@libsdl.org |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
21 */ |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
22 #include "SDL_config.h" |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
23 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
24 /* General touch handling code for SDL */ |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
25 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
26 #include "SDL_events.h" |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
27 #include "SDL_events_c.h" |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
28 #include "../video/SDL_sysvideo.h" |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
29 |
4648
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
30 #include <stdio.h> |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
31 |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
32 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
33 static int SDL_num_touch = 0; |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
34 static SDL_Touch **SDL_touchPads = NULL; |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
35 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
36 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
37 /* Public functions */ |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
38 int |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
39 SDL_TouchInit(void) |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
40 { |
4642
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
41 |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
42 return (0); |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
43 } |
4642
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
44 |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
45 SDL_Touch * |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
46 SDL_GetTouch(int id) |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
47 { |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
48 int index = SDL_GetTouchIndexId(id); |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
49 if (index < 0 || index >= SDL_num_touch) { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
50 return NULL; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
51 } |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
52 return SDL_touchPads[index]; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
53 } |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
54 |
4642
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
55 SDL_Touch * |
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
56 SDL_GetTouchIndex(int index) |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
57 { |
4642
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
58 if (index < 0 || index >= SDL_num_touch) { |
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
59 return NULL; |
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
60 } |
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
61 return SDL_touchPads[index]; |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
62 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
63 |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
64 int |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
65 SDL_GetFingerIndexId(SDL_Touch* touch,int fingerid) |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
66 { |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
67 int i; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
68 for(i = 0;i < touch->num_fingers;i++) |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
69 if(touch->fingers[i]->id == fingerid) |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
70 return i; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
71 return -1; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
72 } |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
73 |
4642
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
74 |
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
75 SDL_Finger * |
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
76 SDL_GetFinger(SDL_Touch* touch,int id) |
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
77 { |
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
78 int index = SDL_GetFingerIndexId(touch,id); |
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
79 if(index < 0 || index >= touch->num_fingers) |
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
80 return NULL; |
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
81 return touch->fingers[index]; |
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
82 } |
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
83 |
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
84 |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
85 int |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
86 SDL_GetTouchIndexId(int id) |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
87 { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
88 int index; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
89 SDL_Touch *touch; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
90 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
91 for (index = 0; index < SDL_num_touch; ++index) { |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
92 touch = SDL_touchPads[index]; |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
93 if (touch->id == id) { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
94 return index; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
95 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
96 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
97 return -1; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
98 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
99 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
100 int |
4642
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
101 SDL_AddTouch(const SDL_Touch * touch, char *name) |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
102 { |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
103 SDL_Touch **touchPads; |
4648
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
104 int index,length; |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
105 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
106 if (SDL_GetTouchIndexId(touch->id) != -1) { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
107 SDL_SetError("Touch ID already in use"); |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
108 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
109 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
110 /* Add the touch to the list of touch */ |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
111 touchPads = (SDL_Touch **) SDL_realloc(SDL_touchPads, |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
112 (SDL_num_touch + 1) * sizeof(*touch)); |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
113 if (!touchPads) { |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
114 SDL_OutOfMemory(); |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
115 return -1; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
116 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
117 |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
118 SDL_touchPads = touchPads; |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
119 index = SDL_num_touch++; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
120 |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
121 SDL_touchPads[index] = (SDL_Touch *) SDL_malloc(sizeof(*SDL_touchPads[index])); |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
122 if (!SDL_touchPads[index]) { |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
123 SDL_OutOfMemory(); |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
124 return -1; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
125 } |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
126 *SDL_touchPads[index] = *touch; |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
127 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
128 /* we're setting the touch properties */ |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
129 length = 0; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
130 length = SDL_strlen(name); |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
131 SDL_touchPads[index]->focus = 0; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
132 SDL_touchPads[index]->name = SDL_malloc((length + 2) * sizeof(char)); |
4642
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
133 SDL_strlcpy(SDL_touchPads[index]->name, name, length + 1); |
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
134 |
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
135 SDL_touchPads[index]->num_fingers = 0; |
4646
eea1bf53effa
Added include/touch.h Now reading in resolution of touch pad.
Jim Grandpre <jim.tla@gmail.com>
parents:
4645
diff
changeset
|
136 SDL_touchPads[index]->max_fingers = 1; |
eea1bf53effa
Added include/touch.h Now reading in resolution of touch pad.
Jim Grandpre <jim.tla@gmail.com>
parents:
4645
diff
changeset
|
137 SDL_touchPads[index]->fingers = (SDL_Finger **) SDL_malloc(sizeof(SDL_Finger*)); |
eea1bf53effa
Added include/touch.h Now reading in resolution of touch pad.
Jim Grandpre <jim.tla@gmail.com>
parents:
4645
diff
changeset
|
138 SDL_touchPads[index]->fingers[0] = NULL; |
4642
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
139 SDL_touchPads[index]->buttonstate = 0; |
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
140 SDL_touchPads[index]->relative_mode = SDL_FALSE; |
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
141 SDL_touchPads[index]->flush_motion = SDL_FALSE; |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
142 |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
143 return index; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
144 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
145 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
146 void |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
147 SDL_DelTouch(int id) |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
148 { |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
149 int index = SDL_GetTouchIndexId(id); |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
150 SDL_Touch *touch = SDL_GetTouch(id); |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
151 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
152 if (!touch) { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
153 return; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
154 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
155 |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
156 |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
157 SDL_free(touch->name); |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
158 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
159 if (touch->FreeTouch) { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
160 touch->FreeTouch(touch); |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
161 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
162 SDL_free(touch); |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
163 |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
164 SDL_num_touch--; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
165 SDL_touchPads[index] = SDL_touchPads[SDL_num_touch]; |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
166 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
167 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
168 void |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
169 SDL_TouchQuit(void) |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
170 { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
171 int i; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
172 |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
173 for (i = SDL_num_touch-1; i > 0 ; --i) { |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
174 SDL_DelTouch(i); |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
175 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
176 SDL_num_touch = 0; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
177 |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
178 if (SDL_touchPads) { |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
179 SDL_free(SDL_touchPads); |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
180 SDL_touchPads = NULL; |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
181 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
182 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
183 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
184 int |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
185 SDL_GetNumTouch(void) |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
186 { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
187 return SDL_num_touch; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
188 } |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
189 SDL_Window * |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
190 SDL_GetTouchFocusWindow(int id) |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
191 { |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
192 SDL_Touch *touch = SDL_GetTouch(id); |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
193 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
194 if (!touch) { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
195 return 0; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
196 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
197 return touch->focus; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
198 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
199 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
200 void |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
201 SDL_SetTouchFocus(int id, SDL_Window * window) |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
202 { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
203 int index = SDL_GetTouchIndexId(id); |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
204 SDL_Touch *touch = SDL_GetTouch(id); |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
205 int i; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
206 SDL_bool focus; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
207 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
208 if (!touch || (touch->focus == window)) { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
209 return; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
210 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
211 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
212 /* See if the current window has lost focus */ |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
213 if (touch->focus) { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
214 focus = SDL_FALSE; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
215 for (i = 0; i < SDL_num_touch; ++i) { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
216 SDL_Touch *check; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
217 if (i != index) { |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
218 check = SDL_touchPads[i]; |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
219 if (check && check->focus == touch->focus) { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
220 focus = SDL_TRUE; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
221 break; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
222 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
223 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
224 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
225 if (!focus) { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
226 SDL_SendWindowEvent(touch->focus, SDL_WINDOWEVENT_LEAVE, 0, 0); |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
227 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
228 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
229 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
230 touch->focus = window; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
231 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
232 if (touch->focus) { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
233 focus = SDL_FALSE; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
234 for (i = 0; i < SDL_num_touch; ++i) { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
235 SDL_Touch *check; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
236 if (i != index) { |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
237 check = SDL_touchPads[i]; |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
238 if (check && check->focus == touch->focus) { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
239 focus = SDL_TRUE; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
240 break; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
241 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
242 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
243 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
244 if (!focus) { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
245 SDL_SendWindowEvent(touch->focus, SDL_WINDOWEVENT_ENTER, 0, 0); |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
246 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
247 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
248 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
249 |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
250 int |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
251 SDL_AddFinger(SDL_Touch* touch,SDL_Finger* finger) |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
252 { |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
253 int index; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
254 SDL_Finger **fingers; |
4646
eea1bf53effa
Added include/touch.h Now reading in resolution of touch pad.
Jim Grandpre <jim.tla@gmail.com>
parents:
4645
diff
changeset
|
255 //printf("Adding Finger...\n"); |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
256 if (SDL_GetFingerIndexId(touch,finger->id) != -1) { |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
257 SDL_SetError("Finger ID already in use"); |
4642
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
258 } |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
259 |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
260 /* Add the touch to the list of touch */ |
4646
eea1bf53effa
Added include/touch.h Now reading in resolution of touch pad.
Jim Grandpre <jim.tla@gmail.com>
parents:
4645
diff
changeset
|
261 if(touch->num_fingers >= touch->max_fingers){ |
4648
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
262 //printf("Making room for it!\n"); |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
263 fingers = (SDL_Finger **) SDL_realloc(touch->fingers, |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
264 (touch->num_fingers + 1) * sizeof(SDL_Finger *)); |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
265 touch->max_fingers = touch->num_fingers+1; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
266 if (!fingers) { |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
267 SDL_OutOfMemory(); |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
268 return -1; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
269 } else { |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
270 touch->max_fingers = touch->num_fingers+1; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
271 touch->fingers = fingers; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
272 } |
4646
eea1bf53effa
Added include/touch.h Now reading in resolution of touch pad.
Jim Grandpre <jim.tla@gmail.com>
parents:
4645
diff
changeset
|
273 } |
4645
0375d020e7e3
Auto-detects Wacom touch devices.
Jim Grandpre <jim.tla@gmail.com>
parents:
4644
diff
changeset
|
274 |
4646
eea1bf53effa
Added include/touch.h Now reading in resolution of touch pad.
Jim Grandpre <jim.tla@gmail.com>
parents:
4645
diff
changeset
|
275 index = touch->num_fingers; |
eea1bf53effa
Added include/touch.h Now reading in resolution of touch pad.
Jim Grandpre <jim.tla@gmail.com>
parents:
4645
diff
changeset
|
276 //printf("Max_Fingers: %i Index: %i\n",touch->max_fingers,index); |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
277 |
4646
eea1bf53effa
Added include/touch.h Now reading in resolution of touch pad.
Jim Grandpre <jim.tla@gmail.com>
parents:
4645
diff
changeset
|
278 touch->fingers[index] = (SDL_Finger *) SDL_malloc(sizeof(SDL_Finger)); |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
279 if (!touch->fingers[index]) { |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
280 SDL_OutOfMemory(); |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
281 return -1; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
282 } |
4646
eea1bf53effa
Added include/touch.h Now reading in resolution of touch pad.
Jim Grandpre <jim.tla@gmail.com>
parents:
4645
diff
changeset
|
283 *(touch->fingers[index]) = *finger; |
eea1bf53effa
Added include/touch.h Now reading in resolution of touch pad.
Jim Grandpre <jim.tla@gmail.com>
parents:
4645
diff
changeset
|
284 touch->num_fingers++; |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
285 |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
286 return index; |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
287 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
288 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
289 int |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
290 SDL_DelFinger(SDL_Touch* touch,int fingerid) |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
291 { |
4642
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
292 int index = SDL_GetFingerIndexId(touch,fingerid); |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
293 SDL_Finger* finger = SDL_GetFinger(touch,fingerid); |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
294 |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
295 if (!finger) { |
4648
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
296 return -1; |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
297 } |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
298 |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
299 |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
300 SDL_free(finger); |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
301 touch->num_fingers--; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
302 touch->fingers[index] = touch->fingers[touch->num_fingers]; |
4648
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
303 return 0; |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
304 } |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
305 |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
306 |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
307 int |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
308 SDL_SendFingerDown(int id, int fingerid, SDL_bool down, int x, int y, int pressure) |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
309 { |
4643
8806b78988f7
Bug fixes. Basic touch events (finger up, finger down, finger move) supported.
Jim Grandpre <jim.tla@gmail.com>
parents:
4642
diff
changeset
|
310 int posted; |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
311 SDL_Touch* touch = SDL_GetTouch(id); |
4643
8806b78988f7
Bug fixes. Basic touch events (finger up, finger down, finger move) supported.
Jim Grandpre <jim.tla@gmail.com>
parents:
4642
diff
changeset
|
312 |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
313 if(down) { |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
314 SDL_Finger nf; |
4643
8806b78988f7
Bug fixes. Basic touch events (finger up, finger down, finger move) supported.
Jim Grandpre <jim.tla@gmail.com>
parents:
4642
diff
changeset
|
315 nf.id = fingerid; |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
316 nf.x = x; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
317 nf.y = y; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
318 nf.pressure = pressure; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
319 nf.xdelta = 0; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
320 nf.ydelta = 0; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
321 nf.last_x = x; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
322 nf.last_y = y; |
4646
eea1bf53effa
Added include/touch.h Now reading in resolution of touch pad.
Jim Grandpre <jim.tla@gmail.com>
parents:
4645
diff
changeset
|
323 nf.last_pressure = pressure; |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
324 SDL_AddFinger(touch,&nf); |
4654
7dbcd71216df
Added $1 gesture recognition.
Jim Grandpre <jim.tla@gmail.com>
parents:
4648
diff
changeset
|
325 //if(x < 0 || y < 0) return 0; //should defer if only a partial input |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
326 posted = 0; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
327 if (SDL_GetEventState(SDL_FINGERDOWN) == SDL_ENABLE) { |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
328 SDL_Event event; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
329 event.tfinger.type = SDL_FINGERDOWN; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
330 event.tfinger.touchId = (Uint8) id; |
4642
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
331 event.tfinger.x = x; |
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
332 event.tfinger.y = y; |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
333 event.tfinger.state = touch->buttonstate; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
334 event.tfinger.windowID = touch->focus ? touch->focus->id : 0; |
4643
8806b78988f7
Bug fixes. Basic touch events (finger up, finger down, finger move) supported.
Jim Grandpre <jim.tla@gmail.com>
parents:
4642
diff
changeset
|
335 event.tfinger.fingerId = fingerid; |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
336 posted = (SDL_PushEvent(&event) > 0); |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
337 } |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
338 return posted; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
339 } |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
340 else { |
4643
8806b78988f7
Bug fixes. Basic touch events (finger up, finger down, finger move) supported.
Jim Grandpre <jim.tla@gmail.com>
parents:
4642
diff
changeset
|
341 SDL_DelFinger(touch,fingerid); |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
342 posted = 0; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
343 if (SDL_GetEventState(SDL_FINGERUP) == SDL_ENABLE) { |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
344 SDL_Event event; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
345 event.tfinger.type = SDL_FINGERUP; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
346 event.tfinger.touchId = (Uint8) id; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
347 event.tfinger.state = touch->buttonstate; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
348 event.tfinger.windowID = touch->focus ? touch->focus->id : 0; |
4643
8806b78988f7
Bug fixes. Basic touch events (finger up, finger down, finger move) supported.
Jim Grandpre <jim.tla@gmail.com>
parents:
4642
diff
changeset
|
349 event.tfinger.fingerId = fingerid; |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
350 posted = (SDL_PushEvent(&event) > 0); |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
351 } |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
352 return posted; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
353 } |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
354 } |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
355 |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
356 int |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
357 SDL_SendTouchMotion(int id, int fingerid, int relative, |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
358 int x, int y, int pressure) |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
359 { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
360 int index = SDL_GetTouchIndexId(id); |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
361 SDL_Touch *touch = SDL_GetTouch(id); |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
362 SDL_Finger *finger = SDL_GetFinger(touch,fingerid); |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
363 int posted; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
364 int xrel; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
365 int yrel; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
366 int x_max = 0, y_max = 0; |
4654
7dbcd71216df
Added $1 gesture recognition.
Jim Grandpre <jim.tla@gmail.com>
parents:
4648
diff
changeset
|
367 |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
368 if (!touch || touch->flush_motion) { |
4654
7dbcd71216df
Added $1 gesture recognition.
Jim Grandpre <jim.tla@gmail.com>
parents:
4648
diff
changeset
|
369 return 0; |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
370 } |
4654
7dbcd71216df
Added $1 gesture recognition.
Jim Grandpre <jim.tla@gmail.com>
parents:
4648
diff
changeset
|
371 |
7dbcd71216df
Added $1 gesture recognition.
Jim Grandpre <jim.tla@gmail.com>
parents:
4648
diff
changeset
|
372 if(finger == NULL) { |
7dbcd71216df
Added $1 gesture recognition.
Jim Grandpre <jim.tla@gmail.com>
parents:
4648
diff
changeset
|
373 return SDL_SendFingerDown(id,fingerid,SDL_TRUE,x,y,pressure); |
7dbcd71216df
Added $1 gesture recognition.
Jim Grandpre <jim.tla@gmail.com>
parents:
4648
diff
changeset
|
374 } else { |
4648
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
375 /* the relative motion is calculated regarding the last position */ |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
376 if (relative) { |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
377 xrel = x; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
378 yrel = y; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
379 x = (finger->last_x + x); |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
380 y = (finger->last_y + y); |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
381 } else { |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
382 if(x < 0) x = finger->last_x; /*If movement is only in one axis,*/ |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
383 if(y < 0) y = finger->last_y; /*The other is marked as -1*/ |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
384 if(pressure < 0) pressure = finger->last_pressure; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
385 xrel = x - finger->last_x; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
386 yrel = y - finger->last_y; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
387 } |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
388 |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
389 /* Drop events that don't change state */ |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
390 if (!xrel && !yrel) { |
4654
7dbcd71216df
Added $1 gesture recognition.
Jim Grandpre <jim.tla@gmail.com>
parents:
4648
diff
changeset
|
391 #if 0 |
4648
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
392 printf("Touch event didn't change state - dropped!\n"); |
4654
7dbcd71216df
Added $1 gesture recognition.
Jim Grandpre <jim.tla@gmail.com>
parents:
4648
diff
changeset
|
393 #endif |
4648
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
394 return 0; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
395 } |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
396 |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
397 /* Update internal touch coordinates */ |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
398 |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
399 finger->x = x; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
400 finger->y = y; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
401 |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
402 /*Should scale to window? Normalize? Maintain Aspect?*/ |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
403 //SDL_GetWindowSize(touch->focus, &x_max, &y_max); |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
404 |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
405 /* make sure that the pointers find themselves inside the windows */ |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
406 /* only check if touch->xmax is set ! */ |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
407 /* |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
408 if (x_max && touch->x > x_max) { |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
409 touch->x = x_max; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
410 } else if (touch->x < 0) { |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
411 touch->x = 0; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
412 } |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
413 |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
414 if (y_max && touch->y > y_max) { |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
415 touch->y = y_max; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
416 } else if (touch->y < 0) { |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
417 touch->y = 0; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
418 } |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
419 */ |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
420 finger->xdelta = xrel; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
421 finger->ydelta = yrel; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
422 finger->pressure = pressure; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
423 |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
424 |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
425 |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
426 /* Post the event, if desired */ |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
427 posted = 0; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
428 if (SDL_GetEventState(SDL_FINGERMOTION) == SDL_ENABLE) { |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
429 SDL_Event event; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
430 event.tfinger.type = SDL_FINGERMOTION; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
431 event.tfinger.touchId = (Uint8) id; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
432 event.tfinger.fingerId = (Uint8) fingerid; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
433 event.tfinger.x = x; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
434 event.tfinger.y = y; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
435 event.tfinger.pressure = pressure; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
436 event.tfinger.state = touch->buttonstate; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
437 event.tfinger.windowID = touch->focus ? touch->focus->id : 0; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
438 posted = (SDL_PushEvent(&event) > 0); |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
439 } |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
440 finger->last_x = finger->x; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
441 finger->last_y = finger->y; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
442 finger->last_pressure = finger->pressure; |
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
443 return posted; |
4642
057e8762d2a1
Added reading of event* for touch events.
Jim Grandpre <jim.tla@gmail.com>
parents:
4641
diff
changeset
|
444 } |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
445 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
446 int |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
447 SDL_SendTouchButton(int id, Uint8 state, Uint8 button) |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
448 { |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
449 SDL_Touch *touch = SDL_GetTouch(id); |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
450 int posted; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
451 Uint32 type; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
452 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
453 if (!touch) { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
454 return 0; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
455 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
456 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
457 /* Figure out which event to perform */ |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
458 switch (state) { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
459 case SDL_PRESSED: |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
460 if (touch->buttonstate & SDL_BUTTON(button)) { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
461 /* Ignore this event, no state change */ |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
462 return 0; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
463 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
464 type = SDL_TOUCHBUTTONDOWN; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
465 touch->buttonstate |= SDL_BUTTON(button); |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
466 break; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
467 case SDL_RELEASED: |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
468 if (!(touch->buttonstate & SDL_BUTTON(button))) { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
469 /* Ignore this event, no state change */ |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
470 return 0; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
471 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
472 type = SDL_TOUCHBUTTONUP; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
473 touch->buttonstate &= ~SDL_BUTTON(button); |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
474 break; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
475 default: |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
476 /* Invalid state -- bail */ |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
477 return 0; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
478 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
479 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
480 /* Post the event, if desired */ |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
481 posted = 0; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
482 if (SDL_GetEventState(type) == SDL_ENABLE) { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
483 SDL_Event event; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
484 event.type = type; |
4648
0350b634c044
Fixed windo build errors. Should now be compilable.
jimtla
parents:
4646
diff
changeset
|
485 event.tbutton.touchId = (Uint8) touch->id; |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
486 event.tbutton.state = state; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
487 event.tbutton.button = button; |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
488 event.tbutton.windowID = touch->focus ? touch->focus->id : 0; |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
489 posted = (SDL_PushEvent(&event) > 0); |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
490 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
491 return posted; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
492 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
493 |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
494 char * |
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
495 SDL_GetTouchName(int id) |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
496 { |
4641
49a97daea6ec
Added touch event definitions. Heavily modified events/SDL_touch*.
Jim Grandpre <jim.tla@gmail.com>
parents:
4640
diff
changeset
|
497 SDL_Touch *touch = SDL_GetTouch(id); |
4640
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
498 if (!touch) { |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
499 return NULL; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
500 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
501 return touch->name; |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
502 } |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
503 |
f068a6dfc858
Added SDL_touch.c/SDL_touch_c.h as slightly modifeind SDL_mouse*. Made reads in touchSimp non-blocking.
Jim Grandpre <jim.tla@gmail.com>
parents:
diff
changeset
|
504 /* vi: set ts=4 sw=4 expandtab: */ |