summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2011-03-18 21:06:16 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2011-03-28 16:17:39 +1000
commit453c5bf6ec0de358ec845946835fcb738cf9af80 (patch)
tree685b1a94874bab0cf63ffc742a00ded5d86ea8bf
parentecf42db47629cadc7a332398a1784bb0acbd6511 (diff)
eventcomm: factor out finger counting.
one, two, three, many. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Cyril Brulebois <kibi@debian.org>
-rw-r--r--src/eventcomm.c32
1 files changed, 24 insertions, 8 deletions
diff --git a/src/eventcomm.c b/src/eventcomm.c
index 15f9d2d..f55c88f 100644
--- a/src/eventcomm.c
+++ b/src/eventcomm.c
@@ -314,6 +314,29 @@ SynapticsReadEvent(InputInfoPtr pInfo, struct input_event *ev)
return rc;
}
+/**
+ * Count the number of fingers based on the CommData information.
+ * The CommData struct contains the event information based on previous
+ * struct input_events, now we're just counting based on that.
+ *
+ * @param comm Assembled information from previous events.
+ * @return The number of fingers currently set.
+ */
+static int count_fingers(const struct CommData *comm)
+{
+ int fingers = 0;
+
+ if (comm->oneFinger)
+ fingers = 1;
+ else if (comm->twoFingers)
+ fingers = 2;
+ else if (comm->threeFingers)
+ fingers = 3;
+
+ return fingers;
+}
+
+
static Bool
EventReadHwState(InputInfoPtr pInfo,
struct CommData *comm, struct SynapticsHwState *hwRet)
@@ -329,14 +352,7 @@ EventReadHwState(InputInfoPtr pInfo,
case EV_SYN:
switch (ev.code) {
case SYN_REPORT:
- if (comm->oneFinger)
- hw->numFingers = 1;
- else if (comm->twoFingers)
- hw->numFingers = 2;
- else if (comm->threeFingers)
- hw->numFingers = 3;
- else
- hw->numFingers = 0;
+ hw->numFingers = count_fingers(comm);
*hwRet = *hw;
return TRUE;
}