[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