> The stylus uses buttons and valuators, but these are not contigeously
> enumerated. 

It is o.k. to have a sparse set of buttons. However it was intended to have
a packed set of valuators.

It is o.k., though, to "pad" it with dummy valuators that never get sent.
That is basically the same behaviour as for buttons.

> What should the 'num_axes' member report ? the number of (absolute)
> valuators ? The highest id ? 

Highest Id. Only way to query it in a reasonable way.

> Further, valuator events seem to group a a set of valuator values together

Yes - they can send multiple valuator changes in a single event.

> (seems to make sense, since they are often bundled into the same device).
> But why is 'values' 32 integers long ? 

To keep the maximum size of an event at reasonable limits.

The original design was to have a flags array that say which entries are
valid. However this proved to be too much of a hassle to parse in
applications. thus we now only support reporting up to 32 valuators that
are _contigous_ in numbering at once.

This will often be the case, as axes that are coubled to the same mechanical
properties are often grouped together.

However even 32 axes that are contigously numbered and all change at the
same time is already unlikely.

Even though - if that happens, you can easily just queue multiple events,
just as you do when queuing noncontigous ones (like when valuators number 1
and 3 have changed).

Note the "first" member, which can be used to support up to 4 billion
valuators, which should suffice *g*.

> The dev/input/event0 driver supports more, so we have to be prepared for a
> clash.


See above.

> * I set the 'num_axes' to the highest id that corresponds to a valuator

Yes. Good fix.

> * I report valuator info for all valuators (range, number, long name)

Good !

> So, at the given state of GGI I must ask: is anybody interested in these changes
> at all ?

Yeah ! Sure. I don't have any evdev capable device, but it is a good thing
to do things right, so: YES !

CU, Andy

-- 
= Andreas Beck                    |  Email :  <[EMAIL PROTECTED]>        =

Reply via email to