summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenrik Rydberg <rydberg@euromail.se>2010-12-22 18:35:53 +0100
committerHenrik Rydberg <rydberg@euromail.se>2010-12-22 18:35:53 +0100
commitcff212dbe28487c14ab040829877d77378a61344 (patch)
treed629334e7f45c0d5333411616bc653d66f92ced1
parent56a77e68fb91eef928d8a95c50ae14508e37ae0f (diff)
downloadmtdev-git-cff212dbe28487c14ab040829877d77378a61344.tar.gz
Add support for ABS_MT_DISTANCE
In the upcoming 2.6.38 kernel, support for hovering is introduced. Add the ABS_MT_DISTANCE to the extended set of handled ABS_MT events. The change is binary compatible with existing libraries. Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
-rw-r--r--include/mtdev.h5
-rw-r--r--src/common.h6
-rw-r--r--test/mtdev-mapgen.c3
3 files changed, 10 insertions, 4 deletions
diff --git a/include/mtdev.h b/include/mtdev.h
index df74e95..ba682c5 100644
--- a/include/mtdev.h
+++ b/include/mtdev.h
@@ -63,6 +63,11 @@ extern "C" {
#define ABS_MT_SLOT 0x2f /* MT slot being modified */
#endif
+/* includes available in 2.6.38 */
+#ifndef ABS_MT_DISTANCE
+#define ABS_MT_DISTANCE 0x3b /* Contact hover distance */
+#endif
+
#define MT_ID_NULL (-1)
#define MT_ID_MIN 0
#define MT_ID_MAX 65535
diff --git a/src/common.h b/src/common.h
index 43b5688..2ec8eb8 100644
--- a/src/common.h
+++ b/src/common.h
@@ -111,7 +111,7 @@ struct mtdev {
struct mtdev_state *state;
};
-#define MT_ABS_SIZE 11
+#define MT_ABS_SIZE 12
static const unsigned int mtdev_map_abs2mt[ABS_CNT] = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -121,12 +121,12 @@ static const unsigned int mtdev_map_abs2mt[ABS_CNT] = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008,
- 0x0009, 0x000a, 0x000b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0009, 0x000a, 0x000b, 0x000c, 0x0000, 0x0000, 0x0000, 0x0000,
};
static const unsigned int mtdev_map_mt2abs[MT_ABS_SIZE] = {
0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
- 0x0038, 0x0039, 0x003a,
+ 0x0038, 0x0039, 0x003a, 0x003b,
};
static inline int mtdev_is_absmt(unsigned int code)
diff --git a/test/mtdev-mapgen.c b/test/mtdev-mapgen.c
index dc1ba91..c34cb7e 100644
--- a/test/mtdev-mapgen.c
+++ b/test/mtdev-mapgen.c
@@ -30,7 +30,7 @@
#include <mtdev.h>
#include <stdio.h>
-#define MT_ABS_SIZE 11
+#define MT_ABS_SIZE 12
#define MT_SLOT_ABS_EVENTS { \
ABS_MT_TOUCH_MAJOR, \
ABS_MT_TOUCH_MINOR, \
@@ -43,6 +43,7 @@
ABS_MT_BLOB_ID, \
ABS_MT_TRACKING_ID, \
ABS_MT_PRESSURE, \
+ ABS_MT_DISTANCE, \
}
static unsigned int cabs2mt[ABS_CNT];