Skip to content

Latest commit

 

History

History
91 lines (73 loc) · 2.58 KB

SDL_androidtouch.c

File metadata and controls

91 lines (73 loc) · 2.58 KB
 
1
2
/*
Simple DirectMedia Layer
Jan 5, 2019
Jan 5, 2019
3
Copyright (C) 1997-2019 Sam Lantinga <slouken@libsdl.org>
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
#include "../../SDL_internal.h"
#if SDL_VIDEO_DRIVER_ANDROID
#include <android/log.h>
#include "SDL_hints.h"
#include "SDL_events.h"
#include "SDL_log.h"
#include "SDL_androidtouch.h"
#include "../../events/SDL_mouse_c.h"
#include "../../events/SDL_touch_c.h"
#include "../../core/android/SDL_android.h"
#define ACTION_DOWN 0
#define ACTION_UP 1
#define ACTION_MOVE 2
Aug 30, 2019
Aug 30, 2019
38
39
/* #define ACTION_CANCEL 3 */
/* #define ACTION_OUTSIDE 4 */
40
41
42
43
44
#define ACTION_POINTER_DOWN 5
#define ACTION_POINTER_UP 6
void Android_InitTouch(void)
{
Jan 10, 2019
Jan 10, 2019
45
46
/* Add all touch devices */
Android_JNI_InitTouch();
47
48
49
50
}
void Android_QuitTouch(void)
{
Apr 4, 2019
Apr 4, 2019
51
return;
Jan 3, 2019
Jan 3, 2019
54
void Android_OnTouch(SDL_Window *window, int touch_device_id_in, int pointer_finger_id_in, int action, float x, float y, float p)
55
56
57
58
{
SDL_TouchID touchDeviceId = 0;
SDL_FingerID fingerId = 0;
Jan 3, 2019
Jan 3, 2019
59
if (!window) {
60
61
62
63
return;
}
touchDeviceId = (SDL_TouchID)touch_device_id_in;
Nov 10, 2018
Nov 10, 2018
64
if (SDL_AddTouch(touchDeviceId, SDL_TOUCH_DEVICE_DIRECT, "") < 0) {
65
66
67
68
69
70
71
SDL_Log("error: can't add touch %s, %d", __FILE__, __LINE__);
}
fingerId = (SDL_FingerID)pointer_finger_id_in;
switch (action) {
case ACTION_DOWN:
case ACTION_POINTER_DOWN:
Aug 1, 2019
Aug 1, 2019
72
SDL_SendTouch(touchDeviceId, fingerId, window, SDL_TRUE, x, y, p);
73
74
75
break;
case ACTION_MOVE:
Aug 1, 2019
Aug 1, 2019
76
SDL_SendTouchMotion(touchDeviceId, fingerId, window, x, y, p);
77
78
79
80
break;
case ACTION_UP:
case ACTION_POINTER_UP:
Aug 1, 2019
Aug 1, 2019
81
SDL_SendTouch(touchDeviceId, fingerId, window, SDL_FALSE, x, y, p);
82
83
84
85
86
87
88
89
90
91
break;
default:
break;
}
}
#endif /* SDL_VIDEO_DRIVER_ANDROID */
/* vi: set ts=4 sw=4 expandtab: */