summaryrefslogtreecommitdiff
path: root/packages/tslib/tslib-1.0/tslib-input_raw-grab_events.patch
diff options
context:
space:
mode:
authorRolf Leggewie <oe-devel@rolf.leggewie.biz>2008-02-13 11:05:34 +0000
committerRolf Leggewie <oe-devel@rolf.leggewie.biz>2008-02-13 11:05:34 +0000
commitea0ed6298a772fd62b0248717b04ac116f8221b4 (patch)
treea4c2871e80eca904630d9de22a72d7875717ace8 /packages/tslib/tslib-1.0/tslib-input_raw-grab_events.patch
parent32e690935379493f478d1b7a1cd43fce486083da (diff)
tslib: consolidate, taking extra care 0038f02055e33a3dad0ba914de112ce9450c45d4 is dealt with properly
Diffstat (limited to 'packages/tslib/tslib-1.0/tslib-input_raw-grab_events.patch')
-rw-r--r--packages/tslib/tslib-1.0/tslib-input_raw-grab_events.patch120
1 files changed, 0 insertions, 120 deletions
diff --git a/packages/tslib/tslib-1.0/tslib-input_raw-grab_events.patch b/packages/tslib/tslib-1.0/tslib-input_raw-grab_events.patch
deleted file mode 100644
index 4bd0a05531..0000000000
--- a/packages/tslib/tslib-1.0/tslib-input_raw-grab_events.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-This patch adds support for "EVIOCGRAB" on the input device, which
-tells the kernel _not_ to deliver events of the touchscreen to
-/dev/input/mice.
-
-This is probably what most people want, since unprocessed raw touchscreen
-events should not be converted to emulated PS/2 mouse movements.
-
-Signed-off-by: Harald Welte <laforge@openmoko.org>
-
-Index: a/plugins/input-raw.c
-===================================================================
---- a/plugins/input-raw.c (revision 49)
-+++ b/plugins/input-raw.c (working copy)
-@@ -18,6 +18,7 @@
-
- #include <errno.h>
- #include <stdio.h>
-+#include <limits.h>
-
- #include <stdlib.h>
- #ifdef HAVE_UNISTD_H
-@@ -33,6 +34,9 @@
-
- #include "tslib-private.h"
-
-+#define GRAB_EVENTS_WANTED 1
-+#define GRAB_EVENTS_ACTIVE 2
-+
- struct tslib_input {
- struct tslib_module_info module;
-
-@@ -42,6 +46,7 @@
-
- int sane_fd;
- int using_syn;
-+ int grab_events;
- };
-
- static int check_fd(struct tslib_input *i)
-@@ -64,6 +69,14 @@
-
- if (bit & (1 << EV_SYN))
- i->using_syn = 1;
-+
-+ if (i->grab_events == GRAB_EVENTS_WANTED) {
-+ if (ioctl(ts->fd, EVIOCGRAB, (void *)1)) {
-+ fprintf(stderr, "Unable to grab selected input device\n");
-+ return -1;
-+ }
-+ i->grab_events = GRAB_EVENTS_ACTIVE;
-+ }
-
- return 0;
- }
-@@ -222,6 +235,15 @@
-
- static int ts_input_fini(struct tslib_module_info *inf)
- {
-+ struct tslib_input *i = (struct tslib_input *)inf;
-+ struct tsdev *ts = inf->dev;
-+
-+ if (i->grab_events == GRAB_EVENTS_ACTIVE) {
-+ if (ioctl(ts->fd, EVIOCGRAB, (void *)0)) {
-+ fprintf(stderr, "Unable to un-grab selected input device\n");
-+ }
-+ }
-+
- free(inf);
- return 0;
- }
-@@ -231,6 +253,36 @@
- .fini = ts_input_fini,
- };
-
-+static int parse_raw_grab(struct tslib_module_info *inf, char *str, void *data)
-+{
-+ struct tslib_input *i = (struct tslib_input *)inf;
-+ unsigned long v;
-+ int err = errno;
-+
-+ v = strtoul(str, NULL, 0);
-+
-+ if (v == ULONG_MAX && errno == ERANGE)
-+ return -1;
-+
-+ errno = err;
-+ switch ((int)data) {
-+ case 1:
-+ if (v)
-+ i->grab_events = GRAB_EVENTS_WANTED;
-+ break;
-+ default:
-+ return -1;
-+ }
-+ return 0;
-+}
-+
-+static const struct tslib_vars raw_vars[] =
-+{
-+ { "grab_events", (void *)1, parse_raw_grab },
-+};
-+
-+#define NR_VARS (sizeof(raw_vars) / sizeof(raw_vars[0]))
-+
- TSAPI struct tslib_module_info *mod_init(struct tsdev *dev, const char *params)
- {
- struct tslib_input *i;
-@@ -245,5 +297,12 @@
- i->current_p = 0;
- i->sane_fd = 0;
- i->using_syn = 0;
-+ i->grab_events = 0;
-+
-+ if (tslib_parse_vars(&i->module, raw_vars, NR_VARS, params)) {
-+ free(i);
-+ return NULL;
-+ }
-+
- return &(i->module);
- }