xinput: rep GetDeviceMotionEvents: full support
[free-sw/xcb/proto] / src / xinput.xml
index 7f67cfe..c8c1f07 100644 (file)
@@ -50,19 +50,6 @@ This affects the following:
 
 *****
 
-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
@@ -350,8 +337,9 @@ in struct DeviceTimeCoord.
 
     <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">
@@ -365,7 +353,9 @@ in struct DeviceTimeCoord.
             <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>
 
@@ -2472,10 +2462,20 @@ in struct DeviceTimeCoord.
         <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" />
@@ -2493,10 +2493,20 @@ in struct DeviceTimeCoord.
         <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" />
@@ -2580,10 +2590,20 @@ in struct DeviceTimeCoord.
         <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" />