diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2011-03-18 21:06:16 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2011-03-28 16:17:39 +1000 |
commit | 453c5bf6ec0de358ec845946835fcb738cf9af80 (patch) | |
tree | 685b1a94874bab0cf63ffc742a00ded5d86ea8bf | |
parent | ecf42db47629cadc7a332398a1784bb0acbd6511 (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.c | 32 |
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; } |