[Xcb] GSoC 2009: XKB and XI2 support
Mariusz Ceier
mceier at gmail.com
Tue Sep 15 02:55:16 PDT 2009
Julien Danjou pisze:
> Hi fellow developers,
>
> As you may know, Marius Ceier has been a Google sponsored student
> working on XCB this summer.
>
> He wrote XML files describing XKB and XI2 protocol. He also had to do
> XKB2, but since the spec were not finished in time, he was not able to
> do that. AFAIK, he also touched some other part needed to make XKB and
> XI2 work, mostly the Python C code generator.
>
> Now, his work should be integrated into XCB, obviously. I don't have
> time currently to review and merge his work, so I hereby request some
> help. I don't know what are Marius plans and if he thinks like he will
> submit his work as a clear set of patches or not. But I think we should
> not wait for him and lose the job that have been done, and start merging
> this ASAP.
>
> Everything is available at:
> http://github.com/mceier/input-protos-for-xcb/
>
> There's 2 branches, one with libxcb modification, and one with X
> protocol added.
>
> Cheers.
Hi :)
I would need some RFC on new tags that I introduced for XKB, from the
point of view of code generators of different languages.
Now I will describe these tags here briefly:
- enumref - it's a reference to already declared enum item e.g.
<enumref ref="Const">MaxLegalKeyCode</enumref>
- if - conditional inclusion of fields, based on expression, it always
is the last field of struct, e.g.
<if name="ifHasPreserve">
<!-- expression -->
<fieldref>hasPreserve</fieldref>
<!-- fields for inclusion -->
<list > ...
- bitcount - counts number of bits set or cleared, e.g.
<bitcount value="1"> <fieldref>namesPresent</fieldref> </bitcount>
- switch - conditional inclusion of fields, in 2 variants:
- case - include exactly one set of fields that matches ( equaltity
comparison ) e.g.:
<switch name="switchX">
<value>3</value>
<case>
<value>1</value>
<fieldref>x</fieldref>
</case>
<case>
<value>3</value>
<fieldref>y</fieldref>
</case>
</switch>
in this example only y field will be included. This variant is a
bit redundant - it can be replaced by if tag, so I didn't use it ...
- bitcase - include all that matches, in the example above, when
'case' is renamed to 'bitcase', x and y fields would be included in
struct. I used this a lot.
switch is always the last field of struct ( if it is present )
- neg - bit negation, e.g.
<neg><fieldref>clear</fieldref></neg>
- sumof - sumation of elements of list, e.g.
<sumof ref="nLevelsPerType" type="CARD16" />
- replyof - makes copy of reply of given request a field of other
request, e.g.
<replyof request="GetMap" name="map" />
I hope that these are all new tags.
Mariusz Ceier
More information about the Xcb
mailing list