[Xcb] [PATCH proto 12/22] xinput: struct XIDeviceInfo.type: altenum to enum

Ran Benita ran234 at gmail.com
Fri Aug 22 00:24:11 PDT 2014


On Thu, Aug 21, 2014 at 11:27:10PM +0200, Christian Linhart wrote:
> On 08/21/14 13:34, Ran Benita wrote:
> > On Mon, Aug 18, 2014 at 02:59:52PM +0200, Christian Linhart wrote:
> >> field "type": replace altenum by enum because
> >> only the values of DeviceType are permitted
> >>
> >> spec:
> >> http://cgit.freedesktop.org/xorg/proto/inputproto/tree/specs/XI2proto.txt#n669
> >> http://cgit.freedesktop.org/xorg/proto/inputproto/tree/specs/XI2proto.txt#n763
> >>
> >> notes to the spec:
> >> * the field is called "use" in the spec, instead of "type"
> >> * the enum is called "DEVICEUSE" in the spec, instead of "DeviceType"
> > 
> > There is also a DeviceUse enum defined, which is used in some places,
> > and has different values (offset of 1) from DeviceType. I think there
> > might be some pre-existing confusion here. Are both enums needed? If so,
> > are they used correctly?
> > 
> 
> I have looked at the specs and headerfiles and found out the following:
> Both XI and XI2 have different enums for the same purpose in their spec, 
> and these enums have different values.
> 
> Here is the relation between xcb-xinput and XI/XI2:
> * xcb-enum "DeviceUse" is for the values the field "use" of DEVICEINFO of XI
> * xcb-enum "DeviceType" is DEVICEUSE of XI2
> 
> On closer inspection, the xml looks semantically OK to me.
> ( but the naming is somehow confusing. )

Yes, looks good to me too. Thanks for looking into it.

Perhaps a better name for DeviceType would have been XIDeviceUse or so
(or even add the XI prefix to all XI2 types), but DeviceType is OK as
well.

Ran

> Here are the references to the spec and the code:
> 
> XI:
> * the enum in the specs:
>   http://cgit.freedesktop.org/xorg/proto/inputproto/tree/specs/XIproto.txt?id=inputproto-2.3.1#n315
>   http://cgit.freedesktop.org/xorg/lib/libXi/tree/specs/encoding.xml?id=libXi-1.7.4#n743
> 
> * the enum-values in the headers:
> 
>   - list of values in comment of field "use" of struct XDeviceInfo:
>     http://cgit.freedesktop.org/xorg/proto/inputproto/tree/XIproto.h?id=inputproto-2.3.1#n243
> 
>   - definition of the values:
>     http://cgit.freedesktop.org/xorg/proto/inputproto/tree/XI.h?id=inputproto-2.3.1#n189
> 
> 
> XI2:
> * The enum in the spec:
>   http://cgit.freedesktop.org/xorg/proto/inputproto/tree/specs/XI2proto.txt?id=inputproto-2.3.1#n669
> 
> * The enum-values in the headers:
> 
>   - list of valid values in the comment of field "use" of struct xXIDeviceInfo:
>     http://cgit.freedesktop.org/xorg/proto/inputproto/tree/XI2proto.h?id=inputproto-2.3.1#n128
> 
>   - definition of the values:
>     http://cgit.freedesktop.org/xorg/proto/inputproto/tree/XI2.h?id=inputproto-2.3.1#n132
> 
> 
> 
> 


More information about the Xcb mailing list