diff options
author | Henrik Rydberg <rydberg@euromail.se> | 2008-11-06 14:23:23 +0100 |
---|---|---|
committer | Henrik Rydberg <rydberg@euromail.se> | 2008-11-06 14:23:23 +0100 |
commit | 826439bce844fdbc8d7e47c0964cb15fd8a8fe93 (patch) | |
tree | 01fb4630ac048ace32b36c308dd0ec62b27f4dcd /src/mtouch.c | |
parent | a773c79d6d767ddfe574ad513ab0276bdd13a717 (diff) | |
download | xorg-input-kobomultitouch-826439bce844fdbc8d7e47c0964cb15fd8a8fe93.tar.gz xorg-input-kobomultitouch-826439bce844fdbc8d7e47c0964cb15fd8a8fe93.tar.bz2 xorg-input-kobomultitouch-826439bce844fdbc8d7e47c0964cb15fd8a8fe93.zip |
grab and open/close device, now enters read (and crashes)
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Diffstat (limited to 'src/mtouch.c')
-rw-r--r-- | src/mtouch.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/mtouch.c b/src/mtouch.c index 2d05921..a74a1f6 100644 --- a/src/mtouch.c +++ b/src/mtouch.c @@ -14,9 +14,31 @@ int configure_mtouch(struct MTouch *mt, int fd) /******************************************************/ -int init_mtouch(struct MTouch *mt) +int open_mtouch(struct MTouch *mt, int fd) { + int rc; + if (mt->grabbed) + return 0; + SYSCALL(rc = ioctl(fd, EVIOCGRAB, (pointer)1)); + if (rc < 0) { + xf86Msg(X_WARNING, "multitouch: cannot grab device\n"); + return rc; + } + mt->grabbed = 1; return 0; } /******************************************************/ + +void close_mtouch(struct MTouch *mt, int fd) +{ + int rc; + if (!mt->grabbed) + return 0; + SYSCALL(rc = ioctl(fd, EVIOCGRAB, (pointer)0)); + if (rc < 0) + xf86Msg(X_WARNING, "multitouch: cannot ungrab device\n"); + mt->grabbed = 0; +} + +/******************************************************/ |