[PATCH synaptics 10/17] eventcomm: untangle state setting from printing device info
Chris Bagwell
chris at cnpbagwell.com
Sat Mar 26 19:53:34 PDT 2011
Reviewed-by: Chris Bagwell <chris at cnpbagwell.com>
On Sun, Mar 20, 2011 at 9:08 PM, Peter Hutterer
<peter.hutterer at who-t.net> wrote:
> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> ---
> src/eventcomm.c | 97 ++++++++++++++++++++++++++++--------------------------
> 1 files changed, 50 insertions(+), 47 deletions(-)
>
> diff --git a/src/eventcomm.c b/src/eventcomm.c
> index f92347a..50b6083 100644
> --- a/src/eventcomm.c
> +++ b/src/eventcomm.c
> @@ -237,22 +237,16 @@ event_query_axis_ranges(InputInfoPtr pInfo)
> struct input_absinfo abs = {0};
> unsigned long absbits[NBITS(ABS_MAX)] = {0};
> unsigned long keybits[NBITS(KEY_MAX)] = {0};
> - char buf[256];
> + char buf[256] = {0};
> int rc;
>
> /* The kernel's fuzziness concept seems a bit weird, but it can more or
> * less be applied as hysteresis directly, i.e. no factor here. */
> - rc = event_get_abs(pInfo->fd, ABS_X, &priv->minx, &priv->maxx,
> - &priv->synpara.hyst_x, &priv->resx);
> - if (rc == 0)
> - xf86Msg(X_PROBED, "%s: x-axis range %d - %d\n", pInfo->name,
> - priv->minx, priv->maxx);
> -
> - rc = event_get_abs(pInfo->fd, ABS_Y, &priv->miny, &priv->maxy,
> - &priv->synpara.hyst_y, &priv->resy);
> - if (rc == 0)
> - xf86Msg(X_PROBED, "%s: y-axis range %d - %d\n", pInfo->name,
> - priv->miny, priv->maxy);
> + event_get_abs(pInfo->fd, ABS_X, &priv->minx, &priv->maxx,
> + &priv->synpara.hyst_x, &priv->resx);
> +
> + event_get_abs(pInfo->fd, ABS_Y, &priv->miny, &priv->maxy,
> + &priv->synpara.hyst_y, &priv->resy);
>
> priv->has_pressure = FALSE;
> priv->has_width = FALSE;
> @@ -267,54 +261,63 @@ event_query_axis_ranges(InputInfoPtr pInfo)
> strerror(errno));
>
> if (priv->has_pressure)
> - {
> - rc = event_get_abs(pInfo->fd, ABS_PRESSURE,
> - &priv->minp, &priv->maxp,
> - NULL, NULL);
> - if (rc == 0)
> - xf86Msg(X_PROBED, "%s: pressure range %d - %d\n", pInfo->name,
> - priv->minp, priv->maxp);
> - } else
> - xf86Msg(X_INFO,
> - "%s: device does not report pressure, will use touch data.\n",
> - pInfo->name);
> + event_get_abs(pInfo->fd, ABS_PRESSURE, &priv->minp, &priv->maxp,
> + NULL, NULL);
>
> if (priv->has_width)
> - {
> - rc = event_get_abs(pInfo->fd, ABS_TOOL_WIDTH,
> - &priv->minw, &priv->maxw,
> - NULL, NULL);
> - if (rc == 0)
> - xf86Msg(X_PROBED, "%s: finger width range %d - %d\n", pInfo->name,
> - abs.minimum, abs.maximum);
> - }
> + event_get_abs(pInfo->fd, ABS_TOOL_WIDTH,
> + &priv->minw, &priv->maxw,
> + NULL, NULL);
>
> SYSCALL(rc = ioctl(pInfo->fd, EVIOCGBIT(EV_KEY, sizeof(keybits)), keybits));
> if (rc >= 0)
> {
> - buf[0] = 0;
> - if ((priv->has_left = (BitIsOn(keybits, BTN_LEFT) != 0)))
> - strcat(buf, " left");
> - if ((priv->has_right = (BitIsOn(keybits, BTN_RIGHT) != 0)))
> - strcat(buf, " right");
> - if ((priv->has_middle = (BitIsOn(keybits, BTN_MIDDLE) != 0)))
> - strcat(buf, " middle");
> - if ((priv->has_double = (BitIsOn(keybits, BTN_TOOL_DOUBLETAP) != 0)))
> - strcat(buf, " double");
> - if ((priv->has_triple = (BitIsOn(keybits, BTN_TOOL_TRIPLETAP) != 0)))
> - strcat(buf, " triple");
> + priv->has_left = (BitIsOn(keybits, BTN_LEFT) != 0);
> + priv->has_right = (BitIsOn(keybits, BTN_RIGHT) != 0);
> + priv->has_middle = (BitIsOn(keybits, BTN_MIDDLE) != 0);
> + priv->has_double = (BitIsOn(keybits, BTN_TOOL_DOUBLETAP) != 0);
> + priv->has_triple = (BitIsOn(keybits, BTN_TOOL_TRIPLETAP) != 0);
>
> if ((BitIsOn(keybits, BTN_0) != 0) ||
> (BitIsOn(keybits, BTN_1) != 0) ||
> (BitIsOn(keybits, BTN_2) != 0) ||
> (BitIsOn(keybits, BTN_3) != 0))
> - {
> priv->has_scrollbuttons = 1;
> - strcat(buf, " scroll-buttons");
> - }
> -
> - xf86Msg(X_PROBED, "%s: buttons:%s\n", pInfo->name, buf);
> }
> +
> + /* Now print the device information */
> + xf86Msg(X_PROBED, "%s: x-axis range %d - %d\n", pInfo->name,
> + priv->minx, priv->maxx);
> + xf86Msg(X_PROBED, "%s: y-axis range %d - %d\n", pInfo->name,
> + priv->miny, priv->maxy);
> + if (priv->has_pressure)
> + xf86Msg(X_PROBED, "%s: pressure range %d - %d\n", pInfo->name,
> + priv->minp, priv->maxp);
> + else
> + xf86Msg(X_INFO,
> + "%s: device does not report pressure, will use touch data.\n",
> + pInfo->name);
> + if (priv->has_width)
> + xf86Msg(X_PROBED, "%s: finger width range %d - %d\n", pInfo->name,
> + abs.minimum, abs.maximum);
> + else
> + xf86Msg(X_INFO,
> + "%s: device does not report finger width.\n", pInfo->name);
> +
> + if (priv->has_left)
> + strcat(buf, " left");
> + if (priv->has_right)
> + strcat(buf, " right");
> + if (priv->has_middle)
> + strcat(buf, " middle");
> + if (priv->has_double)
> + strcat(buf, " double");
> + if (priv->has_triple)
> + strcat(buf, " triple");
> + if (priv->has_scrollbuttons)
> + strcat(buf, " scroll-buttons");
> +
> + xf86Msg(X_PROBED, "%s: buttons:%s\n", pInfo->name, buf);
> }
>
> static Bool
> --
> 1.7.4
>
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel
>
More information about the xorg-devel
mailing list