mirror of
https://github.com/linux-sunxi/meta-sunxi.git
synced 2024-12-28 14:08:22 +01:00
bd4713680b
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
80 lines
2.1 KiB
Diff
80 lines
2.1 KiB
Diff
From c525c0b5d8eada982c99442454fcf7b8364e10b3 Mon Sep 17 00:00:00 2001
|
|
From: Florian Boor <florian@kernelconcepts.de>
|
|
Date: Fri, 1 Apr 2011 23:30:21 +0200
|
|
Subject: [PATCH] Support reading coordinates from multitouch devices.
|
|
|
|
Signed-off-by: Florian Boor <florian@kernelconcepts.de>
|
|
Signed-off-by: Christopher Larson <kergoth@gmail.com>
|
|
---
|
|
plugins/input-raw.c | 33 +++++++++++++++++++++++----------
|
|
1 file changed, 23 insertions(+), 10 deletions(-)
|
|
|
|
diff --git a/plugins/input-raw.c b/plugins/input-raw.c
|
|
index 4396eab..1e48505 100644
|
|
--- a/plugins/input-raw.c
|
|
+++ b/plugins/input-raw.c
|
|
@@ -40,6 +40,11 @@
|
|
# define KEY_CNT (KEY_MAX+1)
|
|
#endif
|
|
|
|
+#ifndef ABS_MT_POSITION_X
|
|
+# define ABS_MT_POSITION_X 0x35 /* Center X ellipse position */
|
|
+# define ABS_MT_POSITION_Y 0x36 /* Center Y ellipse position */
|
|
+#endif
|
|
+
|
|
#include "tslib-private.h"
|
|
|
|
#define GRAB_EVENTS_WANTED 1
|
|
@@ -160,16 +165,17 @@ static int ts_input_read(struct tslib_module_info *inf,
|
|
}
|
|
break;
|
|
case EV_SYN:
|
|
- /* Fill out a new complete event */
|
|
- if (pen_up) {
|
|
- samp->x = 0;
|
|
- samp->y = 0;
|
|
- samp->pressure = 0;
|
|
- pen_up = 0;
|
|
- } else {
|
|
- samp->x = i->current_x;
|
|
- samp->y = i->current_y;
|
|
- samp->pressure = i->current_p;
|
|
+ if (ev.code == SYN_REPORT) {
|
|
+ /* Fill out a new complete event */
|
|
+ if (pen_up) {
|
|
+ samp->x = 0;
|
|
+ samp->y = 0;
|
|
+ samp->pressure = 0;
|
|
+ pen_up = 0;
|
|
+ } else {
|
|
+ samp->x = i->current_x;
|
|
+ samp->y = i->current_y;
|
|
+ samp->pressure = i->current_p;
|
|
}
|
|
samp->tv = ev.time;
|
|
#ifdef DEBUG
|
|
@@ -179,6 +185,7 @@ static int ts_input_read(struct tslib_module_info *inf,
|
|
#endif /* DEBUG */
|
|
samp++;
|
|
total++;
|
|
+ }
|
|
break;
|
|
case EV_ABS:
|
|
switch (ev.code) {
|
|
@@ -188,6 +195,12 @@ static int ts_input_read(struct tslib_module_info *inf,
|
|
case ABS_Y:
|
|
i->current_y = ev.value;
|
|
break;
|
|
+ case ABS_MT_POSITION_X:
|
|
+ i->current_x = ev.value;
|
|
+ break;
|
|
+ case ABS_MT_POSITION_Y:
|
|
+ i->current_y = ev.value;
|
|
+ break;
|
|
case ABS_PRESSURE:
|
|
i->current_p = ev.value;
|
|
break;
|
|
--
|
|
1.8.1.4
|
|
|