*****
-xml and generator have to support <popcount> of all members of a list
-
-This is needed for the following XI2-events ( and eventcopies thereof )
- KeyPress
- ButtonPress
- RawKeyPress
- RawKeyPress
- RawButtonPress
- TouchBegin
- RawTouchBegin
-
-*****
-
Parametrized structs
This is needed for being able to use the value of the field
<struct name="DeviceTimeCoord">
<field type="TIMESTAMP" name="time" />
- <!-- Uninterpreted: list (axisvalues) of INT32,
- length is num_axes from GetDeviceMotionEvents -->
+ <list type="INT32" name="axisvalues">
+ <paramref type="CARD8">num_axes</paramref>
+ </list>
</struct>
<request name="GetDeviceMotionEvents" opcode="10">
<field type="CARD8" name="num_axes" />
<field type="CARD8" name="device_mode" enum="ValuatorMode" />
<pad bytes="18" />
- <!-- Uninterpreted: list (events) of DeviceTimeCoord structures -->
+ <list type="DeviceTimeCoord" name="events">
+ <fieldref>num_events</fieldref>
+ </list>
</reply>
</request>
<list type="CARD32" name="valuator_mask">
<fieldref>valuators_len</fieldref>
</list>
- <!-- Uninterpreted: list (axisvalues) of FP3232,
- length is <popcount> on valuator_mask list -->
+ <list type="FP3232" name="axisvalues">
+ <sumof ref="valuator_mask">
+ <popcount>
+ <listelement-ref/>
+ </popcount>
+ </sumof>
+ </list>
</event>
<eventcopy name="KeyRelease" number="3" ref="KeyPress" />
<list type="CARD32" name="valuator_mask">
<fieldref>valuators_len</fieldref>
</list>
- <!-- Uninterpreted: list (axisvalues) of FP3232,
- length is <popcount> on valuator_mask list -->
+ <list type="FP3232" name="axisvalues">
+ <sumof ref="valuator_mask">
+ <popcount>
+ <listelement-ref/>
+ </popcount>
+ </sumof>
+ </list>
</event>
<eventcopy name="ButtonRelease" number="5" ref="ButtonPress" />
<list type="CARD32" name="valuator_mask">
<fieldref>valuators_len</fieldref>
</list>
- <!-- Uninterpreted: list (axisvalues) of FP3232,
- length is <popcount> on valuator_mask list -->
- <!-- Uninterpreted: list (axisvalues_raw) of FP3232,
- length is <popcount> on valuator_mask list -->
+ <list type="FP3232" name="axisvalues">
+ <sumof ref="valuator_mask">
+ <popcount>
+ <listelement-ref/>
+ </popcount>
+ </sumof>
+ </list>
+ <list type="FP3232" name="axisvalues_raw">
+ <sumof ref="valuator_mask">
+ <popcount>
+ <listelement-ref/>
+ </popcount>
+ </sumof>
+ </list>
</event>
<eventcopy name="RawKeyRelease" number="14" ref="RawKeyPress" />
<list type="CARD32" name="valuator_mask">
<fieldref>valuators_len</fieldref>
</list>
- <!-- Uninterpreted: list (axisvalues) of FP3232,
- length is <popcount> on valuator_mask list -->
- <!-- Uninterpreted: list (axisvalues_raw) of FP3232,
- length is <popcount> on valuator_mask list -->
+ <list type="FP3232" name="axisvalues">
+ <sumof ref="valuator_mask">
+ <popcount>
+ <listelement-ref/>
+ </popcount>
+ </sumof>
+ </list>
+ <list type="FP3232" name="axisvalues_raw">
+ <sumof ref="valuator_mask">
+ <popcount>
+ <listelement-ref/>
+ </popcount>
+ </sumof>
+ </list>
</event>
<eventcopy name="RawButtonRelease" number="16" ref="RawButtonPress" />
<list type="CARD32" name="valuator_mask">
<fieldref>valuators_len</fieldref>
</list>
- <!-- Uninterpreted: list (axisvalues) of FP3232,
- length is <popcount> on valuator_mask list -->
+ <list type="FP3232" name="axisvalues">
+ <sumof ref="valuator_mask">
+ <popcount>
+ <listelement-ref/>
+ </popcount>
+ </sumof>
+ </list>
</event>
<eventcopy name="TouchUpdate" number="19" ref="TouchBegin" />
<list type="CARD32" name="valuator_mask">
<fieldref>valuators_len</fieldref>
</list>
- <!-- Uninterpreted: list (axisvalues) of FP3232,
- length is <popcount> on valuator_mask list -->
- <!-- Uninterpreted: list (axisvalues_raw) of FP3232,
- length is <popcount> on valuator_mask list -->
+ <list type="FP3232" name="axisvalues">
+ <sumof ref="valuator_mask">
+ <popcount>
+ <listelement-ref/>
+ </popcount>
+ </sumof>
+ </list>
+ <list type="FP3232" name="axisvalues_raw">
+ <sumof ref="valuator_mask">
+ <popcount>
+ <listelement-ref/>
+ </popcount>
+ </sumof>
+ </list>
</event>
<eventcopy name="RawTouchUpdate" number="23" ref="RawTouchBegin" />