[RFC] MPX XInput Protocol extensions - detailed nits

Jim Gettys jg at laptop.org
Mon Mar 3 15:30:14 PST 2008

First, thanks for the nice document!

I like the way the encoding is right in the request; I never did like
encoding as a separate appendix as occurs in many other extensions.

One of the problems with Xi has been that devices are CARD8's; someday
this may come back to haunt us. The scenario where it might is in a big
shared space, with many devices/person using this shared space.  This
has always bugged me... I don't know if it is worth worrying about now,
however, as the base Xi will need serious work anyway.  There isn't any
problem at the library interface level, at least, as the C type used is
int, as I remember, for device ID's.

I think there needs to be some glossary and/or architectural description
work: definitions new to X appearing in this document 
	o HAL daemon
	o "floating" device
	o "master" vs. "slave" devices, and "floating" versions of them.
	o "attachment" of devices
	o device hierarchy
	o device names

Section 1:
	It isn't clear if the extension is an extension of the Input Extension,
and if so, that it ups the version of the Xi extension.

Section 1.1:

"floating slave device" never defined.
QueryDevicePointer Reply
	Should it contain the device id to for convenience of streaming
	applications where correlating the device ID in the reply with
	the request may be painful?

Section 1.5
	pointer names and keyboard names get appended with " pointer" and "
keyboard".  The space is hardly visible and may be regarded as a typo.
I also wonder strongly if space as a separator is wise: I suspect it
will cause trouble in some scripting languages where space is used as a
separator.  I'd recommend using an "_" as the separator instead.

OK, I've timed out for now...
                     Hope this helps,
				- Jim

On Mon, 2008-02-25 at 17:53 +1030, Peter Hutterer wrote:
> I did my homework and wrote up the XI protocol message specifications 
> that will be in the first merged version of MPX (April 08 probably).
> The document resembles the format used in the X Protocol Reference 
> Manual (Nye, 1994).
> HTML version: http://people.freedesktop.org/~whot/Xi/
> PDF version: http://people.freedesktop.org/~whot/Xi/mpx_xi_protocol.pdf
> Short overview of the new requests:
> - ListInputDevices
>    + a previously used padding field now specifies the attachment/pairing
>    + use field changed
> - QueryDevicePointer
>    + same as QueryPointer but specifies the device.
> - WarpDevicePointer
>    + same as WarpPointer but specifies the device.
> - ChangeDeviceCursor
>    + specify cursor shape for device
> - ChangeDeviceHierarchy
>    + create/remove new master devices
>    + change attachment of slave devices
> - ChangeWindowAccess
>    + change access rules for devices on a given window. useful for 
> multi-user GUIs. Not a security feature!
> - QueryWindowAccess
>    + query access rules
> - SetClientPointer/GetClientPointer
>    + set the device that is picked when a core request doesn't specify a 
> device.
> - XiSelectEvent
>    + select for generic events
> - ExtendedGrabDevice
>    + grab device, but with generic event masks
> Short overview of new events
> - DeviceEnterNotify, DeviceLeaveNotify (well, guess)
> - DeviceHierarchyChangedEvent
>    + sent as a notification after a ChangeDeviceHierarchy
> - DeviceClassesChangedEvent
>    + sent when the master flips state to reflect a new slave device.
> Again, full documents to be found at:
> HTML version: http://people.freedesktop.org/~whot/Xi/
> PDF version: http://people.freedesktop.org/~whot/Xi/mpx_xi_protocol.pdf
> I will try to get a formal review of the core protocol and the behaviour 
> changes of XI out soon. Meanwhile, please review these additions. Thanks!
> Cheers,
>    Peter
> _______________________________________________
> xorg mailing list
> xorg at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xorg
Jim Gettys
One Laptop Per Child

More information about the xorg mailing list