xinput: RawEvents: support lists axisvalues and axisvalues_raw
[free-sw/xcb/proto] / src / xinput.xml
index d472fc9..f861231 100644 (file)
@@ -2046,30 +2046,26 @@ in struct DeviceTimeCoord.
             <pad bytes="11" />
             <switch name="items">
                 <fieldref>format</fieldref>
-                <!-- <bitcase> is not correct, this would need <cases>s.
-                     It works in that case, because PropertyFormat items can be
-                     distinguished exactly as their values don't have equal bits.
-                -->
-                <bitcase>
+                <case>
                     <enumref ref="PropertyFormat">8Bits</enumref>
                     <list type="CARD8" name="data8">
                         <fieldref>num_items</fieldref>
                     </list>
                     <pad align="4" />
-                </bitcase>
-                <bitcase>
+                </case>
+                <case>
                     <enumref ref="PropertyFormat">16Bits</enumref>
                     <list type="CARD16" name="data16">
                         <fieldref>num_items</fieldref>
                     </list>
                     <pad align="4" />
-                </bitcase>
-                <bitcase>
+                </case>
+                <case>
                     <enumref ref="PropertyFormat">32Bits</enumref>
                     <list type="CARD32" name="data32">
                         <fieldref>num_items</fieldref>
                     </list>
-                </bitcase>
+                </case>
             </switch>
         </reply>
     </request>
@@ -2310,8 +2306,13 @@ 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 -->
+        <list type="FP3232" name="axisvalues">
+            <sumof ref="valuator_mask">
+                <popcount>
+                    <listelement-ref/>
+                </popcount>
+            </sumof>
+        </list>
     </event>
 
     <eventcopy name="KeyRelease" number="3" ref="KeyPress" />
@@ -2346,8 +2347,13 @@ 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 -->
+        <list type="FP3232" name="axisvalues">
+            <sumof ref="valuator_mask">
+                <popcount>
+                    <listelement-ref/>
+                </popcount>
+            </sumof>
+        </list>
     </event>
 
     <eventcopy name="ButtonRelease" number="5" ref="ButtonPress" />
@@ -2466,10 +2472,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" />
@@ -2487,10 +2503,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" />
@@ -2529,8 +2555,13 @@ 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 -->
+        <list type="FP3232" name="axisvalues">
+            <sumof ref="valuator_mask">
+                <popcount>
+                    <listelement-ref/>
+                </popcount>
+            </sumof>
+        </list>
     </event>
 
     <eventcopy name="TouchUpdate" number="19" ref="TouchBegin" />
@@ -2569,10 +2600,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" />