xinput: ListInputDevices: full support
* define struct InputInfo with switch-case
* define the lists "infos" and "names"
* the list "infos" requires a new xml-construct:
<sumof> with a nested expression, to access fields
of the list which is iterated by sumof.
spec:
http://cgit.freedesktop.org/xorg/proto/inputproto/tree/specs/XIproto.txt?id=inputproto-2.3.1#n305
http://cgit.freedesktop.org/xorg/lib/libXi/tree/specs/encoding.xml?id=libXi-1.7.4#n715
code:
http://cgit.freedesktop.org/xorg/lib/libXi/tree/src/XListDev.c?id=libXi-1.7.4
Both specs are misleading ( or buggy ) in the following aspect:
In both specs, struct Deviceinfo is defined to contain a list
of InputInfo and a list of STR.
But, by analyzing the code in libXi, it was clear that
* InputInfo is contained in an extra toplevel list
in the reply ListInputDevices
* the strings ( struct xproto:STR ) are also contained in a toplevel list
in the reply
Message-ID: <
1409743080-302-5-git-send-email-chris@demorecorder.com>
Patch-Thread-Subject: [Xcb] xinput: make ListInputDevices work, sumof with nested expr, ...
Patch-Set: ListInputDevices
Patch-Number: proto 5/7
Patch-Version: V1
Signed-off-by: Christian Linhart <chris@DemoRecorder.com>