xinput: Cleanup implementation of XI up to v1.4
- Structural changes:
* indent with spaces only (replaced tabs)
* indent attributes
* move structures in front of the first request using it
(Otherwise c_client.py would generate uncompileable code if we fix
the uninterpreted lists.)
* add version-controlled section comments (types, requests, events,
errors) and move structures into their corresponding section
* sort events and eventcopys by number
- Additions:
* add various missing enums and structs (i.e. DeviceChange,
DeviceControl, DeviceName, ...)
* uncomment commented out requests
* linked in various enums into fields (via enum or altenum)
- Other changes:
* link to the txt specification in the git repo
* fixed comments for "uninterpreted lists"
- API CHANGES:
* Request: GetDeviceMotionEvents
The reply contains a list of events (of coordinates). So, we rename
num_coords to num_events. The field is called nevents_return in the
specification. The list was commented out anyways, so the rename
shouldn't affect that much.
* Request: SendExtensionEvent
The list 'events' is a mask, make it a CARD8 like every other mask.
* Events: FocusIn/Out
Those ones haven't been named properly. They are called
DeviceFocusIn/Out in the specification. In XI2 the names FocusIn/Out
are used to introduce new events and cause name clashes. So, we have
to rename the existing FocusIn/Out and give them their proper names.
* Structures: *Feedback{Ctl,State}
Rename the field id to feedback_id, as it's called in the spec. The
only lists using those structs are commented out yet. So, this might
not be called an api break.
Signed-off-by: Daniel Martin <consume.noise@gmail.com>