[Xcb] xinput: make ListInputDevices work, sumof with nested expr, ...

Ran Benita ran234 at gmail.com
Sun Oct 12 11:39:06 PDT 2014


On Wed, Sep 03, 2014 at 01:14:23PM +0200, Christian Linhart wrote:
> Hi all,
> 
> In this thread I'll post patches which make the ListInputDevice reply work.
> 
> This has also required some changes in the generator:
> * generate calls to accessor function or iterator function instead of
>   a struct-member access for fields which can only be accessed with
>   accessor function or iterator respectively.
> 
> * make sumof more flexible. Especially support a nested expression which is evaluated
>   in the scope of each list-element which is iterated to compute sumof.
>   Example:
>         <sumof ref="devices">
>             <fieldref>num_class_info</fieldref>
>         </sumof>

xcb_sumof() is this:

  int xcb_sumof(uint8_t *list, int len)
  {
    int i, s = 0;
    for(i=0; i<len; i++) {
      s += *list;
      list++;
    }
    return s;
  }

So it assumes the list is of CARD8's - it is not polymorphic in any
way. It looks OK for the added sumof in this series, but I'm not sure it
matches the changes in the generator?

> 
> Due to using switch-case, some structs have became obsolete.
> (and due to using struct STR from xproto instead of DeviceName because these
> are the same and the spec uses STR)
> 
> This patchset contains two patches to remove these obsolete structs.
> You may reject these patches due to API-compatibility concerns.
> On the other hand, probably nobody has used the structs for request ListInputDevice
> anyways before because this request/reply didn't work anyways in the previous form.

I think we can break xinput, it is not declared stable yet and is
disabled by default. However, it appears like some projects already use
it:
http://git.enlightenment.org/legacy/ecore.git/tree/src/lib/ecore_x/xcb/ecore_xcb_input.c
So I'm not sure...

> 
> You can also get these patches at the following git-repo:
> http://infra-srv1.demorecorder.com/git/free-sw/xcb/listinputdevices-sumof-20140903-2/proto
> http://infra-srv1.demorecorder.com/git/free-sw/xcb/listinputdevices-sumof-20140903-2/libxcb
> 
> Chris
> 
> 
> P.S.: The patches are based on the following patches which are not 
> yet in the official repo:
> * my patches from the the Thread 
>   "[Xcb] xinput:QueryDeviceState: full-support: generator and xml-changes"
> * my patch in the email 
>   "[Xcb] [PATCH libxcb] no typename for nested structs"
> 
> ( you can get those also at
> http://infra-srv1.demorecorder.com/git/free-sw/xcb/20140903-1/proto
> http://infra-srv1.demorecorder.com/git/free-sw/xcb/20140903-1/libxcb )
> 
> 
> _______________________________________________
> Xcb mailing list
> Xcb at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xcb


More information about the Xcb mailing list