1
2
3
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
#ifndef _libtouch_H_
#define _libtouch_H_
#include <os.h>
#define TOUCHED 0x01
#define X_COORD 0x02
#define Y_COORD 0x04
#define LB_STAT 0x08 /* LB up / down */
#define RB_STAT 0x10 /* RB up / down (both needed for 3-btn emu) */
typedef enum touchState {
PEN_TOUCHED = 1,
PEN_UNTOUCHED = 2,
PEN_UNKNOWN = 3
} LibTouchState_t;
typedef struct _libtouch {
int cur_x;
int cur_y;
int ypos_changed;
int xpos_changed;
int old_x;
int old_y;
LibTouchState_t pen;
OsTimerPtr tap_timer;
int tap_timeo;
Bool tap_timer_expired;
OsTimerPtr longtouch_timer;
int longtouch_timeo;
Bool longtouch_timer_expired;
int drag_timer;
unsigned char pressed_btn_stat;
int move_limit;
int untouch_time;
int touch_time;
int touch_x;
int touch_y;
int last_touch_x;
int last_touch_y;
unsigned char touch_flags; /* 1 - touched, 2 - x-coord received
4 - y-coord received */
CARD32 past;
CARD32 now;
LocalDevicePtr local;
} LibTouchRec, *LibTouchRecPtr;
void libtouchSetDebugLevel(int level);
void libtouchSetTapTimeo(LibTouchRecPtr libtouch, int timeo);
void libtouchSetLongtouchTimeo(LibTouchRecPtr libtouch, int timeo);
void libtouchSetOneandahalftapTimeo(LibTouchRecPtr libtouch, int timeo);
void libtouchSetTime(LibTouchRecPtr libtouch, CARD32 now);
void libtouchSetMoveLimit(LibTouchRecPtr libtouch, int move_limit);
void libtouchInit(LibTouchRecPtr libtouch, LocalDevicePtr local);
void libtouchSetPos(LibTouchRecPtr libtouch, int x, int y);
void libtouchTriggerSM(LibTouchRecPtr libtouch, LibTouchState_t touch);
void libtouchSetXPos(LibTouchRecPtr libtouch, int x);
void libtouchSetYPos(LibTouchRecPtr libtouch, int y);
#endif
|