aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenrik Rydberg <rydberg@alnilam.(none)>2010-02-01 20:31:05 +0100
committerHenrik Rydberg <rydberg@alnilam.(none)>2010-02-01 20:44:43 +0100
commitd1117c8645fc4c0e2ccf0873fcf692c3ffa8b139 (patch)
tree305af5f74b423d0cca74d5080ca4389b70255473
parent011634a6f8df4fb6b6c24dc173680b96c7fb16f1 (diff)
downloadxorg-input-kobomultitouch-d1117c8645fc4c0e2ccf0873fcf692c3ffa8b139.tar.gz
xorg-input-kobomultitouch-d1117c8645fc4c0e2ccf0873fcf692c3ffa8b139.tar.bz2
xorg-input-kobomultitouch-d1117c8645fc4c0e2ccf0873fcf692c3ffa8b139.zip
button: simplify property mapping
Janitory changes only.
-rw-r--r--src/gestures.h1
-rw-r--r--src/multitouch.c59
2 files changed, 19 insertions, 41 deletions
diff --git a/src/gestures.h b/src/gestures.h
index f83cae2..0e2a49e 100644
--- a/src/gestures.h
+++ b/src/gestures.h
@@ -30,7 +30,6 @@
#define GS_MOVE 1
#define GS_VSCROLL 2
#define GS_HSCROLL 3
-#define SYN_MAX_BUTTONS 12 /* Max number of mouse buttons */
////////////////////////////////////////////////////////
diff --git a/src/multitouch.c b/src/multitouch.c
index fa966ce..acaeea1 100644
--- a/src/multitouch.c
+++ b/src/multitouch.c
@@ -41,6 +41,9 @@ static const float hscroll_fraction = 0.2;
#define TRACE2(format, arg1, arg2) xf86Msg(X_INFO, format, arg1, arg2)
#endif
+// button mapping simplified
+#define PROPMAP(m, x, y) m[x] = XIGetKnownProperty(y)
+
////////////////////////////////////////////////////////////////////////////
static void pointer_control(DeviceIntPtr dev, PtrCtrl *ctrl)
@@ -61,45 +64,24 @@ static int pointer_property(DeviceIntPtr dev,
////////////////////////////////////////////////////////////////////////////
-
-
#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
-static void InitAxesLabels(Atom *labels, int nlabels)
+static void initAxesLabels(Atom map[2])
{
- memset(labels, 0, nlabels * sizeof(Atom));
- switch(nlabels)
- {
- default:
- case 2:
- labels[1] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_Y);
- case 1:
- labels[0] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_X);
- break;
- }
+ memset(map, 0, 2 * sizeof(Atom));
+ PROPMAP(map, 0, AXIS_LABEL_PROP_REL_X);
+ PROPMAP(map, 1, AXIS_LABEL_PROP_REL_Y);
}
-static void InitButtonLabels(Atom *labels, int nlabels)
+static void initButtonLabels(Atom map[DIM_BUTTON])
{
- memset(labels, 0, nlabels * sizeof(Atom));
- switch(nlabels)
- {
- default:
- case 7:
- labels[6] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_HWHEEL_RIGHT);
- case 6:
- labels[5] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_HWHEEL_LEFT);
- case 5:
- labels[4] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_DOWN);
- case 4:
- labels[3] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_UP);
- case 3:
- labels[2] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_RIGHT);
- case 2:
- labels[1] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_MIDDLE);
- case 1:
- labels[0] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_LEFT);
- break;
- }
+ memset(map, 0, DIM_BUTTON * sizeof(Atom));
+ PROPMAP(map, MT_BUTTON_LEFT, BTN_LABEL_PROP_BTN_LEFT);
+ PROPMAP(map, MT_BUTTON_MIDDLE, BTN_LABEL_PROP_BTN_MIDDLE);
+ PROPMAP(map, MT_BUTTON_RIGHT, BTN_LABEL_PROP_BTN_RIGHT);
+ PROPMAP(map, MT_BUTTON_WHEEL_UP, BTN_LABEL_PROP_BTN_WHEEL_UP);
+ PROPMAP(map, MT_BUTTON_WHEEL_DOWN, BTN_LABEL_PROP_BTN_WHEEL_DOWN);
+ PROPMAP(map, MT_BUTTON_HWHEEL_LEFT, BTN_LABEL_PROP_BTN_HWHEEL_LEFT);
+ PROPMAP(map, MT_BUTTON_HWHEEL_RIGHT, BTN_LABEL_PROP_BTN_HWHEEL_RIGHT);
}
#endif
@@ -108,14 +90,11 @@ static int device_init(DeviceIntPtr dev, LocalDevicePtr local)
struct MTouch *mt = local->private;
unsigned char btmap[DIM_BUTTON + 1]={0,1,2,3,4,5,6,7};
#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
- Atom btn_labels[SYN_MAX_BUTTONS] = { 0 };
- Atom axes_labels[2] = { 0 };
-
- InitAxesLabels(axes_labels, 2);
- InitButtonLabels(btn_labels, SYN_MAX_BUTTONS);
+ Atom axes_labels[2], btn_labels[DIM_BUTTON];
+ initAxesLabels(axes_labels);
+ initButtonLabels(btn_labels);
#endif
-
local->fd = xf86OpenSerial(local->options);
if (local->fd < 0) {
xf86Msg(X_ERROR, "multitouch: cannot open device\n");