[Xcb] [PATCH] sync: Change value list param of CreateAlarm and ChangeAlarm into switch

Louis-Francis Ratté-Boulianne louis-francis.ratte-boulianne at collabora.co.uk
Fri Jun 21 06:13:40 PDT 2013


Values for "Value" and "Delta" fields are 64-bit that couldn't be passed through a regular value list/mask.

It does break the API, but CreateAlarm and ChangeAlarm are unusable without that change.
---
 src/sync.xml |   64 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 58 insertions(+), 6 deletions(-)

diff --git a/src/sync.xml b/src/sync.xml
index 516d149..d65c6c2 100644
--- a/src/sync.xml
+++ b/src/sync.xml
@@ -134,16 +134,68 @@ for licensing information.
 
   <request name="CreateAlarm" opcode="8">
     <field type="ALARM" name="id" />
-    <valueparam value-mask-type="CARD32"
-                value-mask-name="value_mask"
-                value-list-name="value_list" />
+    <field type="CARD32" name="value_mask" mask="CA" />
+    <switch name="value_list">
+      <fieldref>value_mask</fieldref>
+      <bitcase>
+        <enumref ref="CA">Counter</enumref>
+        <field type="COUNTER" name="counter" />
+      </bitcase>
+      <bitcase>
+        <enumref ref="CA">ValueType</enumref>
+        <field type="CARD32" name="valueType" mask="VALUETYPE" />
+      </bitcase>
+      <bitcase>
+        <enumref ref="CA">Value</enumref>
+        <field type="INT64" name="value" />
+      </bitcase>
+      <bitcase>
+        <enumref ref="CA">TestType</enumref>
+        <field type="CARD32" name="testType" mask="TESTTYPE" />
+      </bitcase>
+      <bitcase>
+        <enumref ref="CA">Delta</enumref>
+        <field type="INT64" name="delta" />
+      </bitcase>
+      <bitcase>
+        <enumref ref="CA">Events</enumref>
+        <field type="BOOL" name="events" />
+        <pad bytes="3" />
+      </bitcase>
+    </switch>
   </request>
 
   <request name="ChangeAlarm" opcode="9">
     <field type="ALARM" name="id" />
-    <valueparam value-mask-type="CARD32"
-                value-mask-name="value_mask"
-                value-list-name="value_list" />
+    <field type="CARD32" name="value_mask" mask="CA" />
+    <switch name="value_list">
+      <fieldref>value_mask</fieldref>
+      <bitcase>
+        <enumref ref="CA">Counter</enumref>
+        <field type="COUNTER" name="counter" />
+      </bitcase>
+      <bitcase>
+        <enumref ref="CA">ValueType</enumref>
+        <field type="CARD32" name="valueType" mask="VALUETYPE" />
+      </bitcase>
+      <bitcase>
+        <enumref ref="CA">Value</enumref>
+        <field type="INT64" name="value" />
+      </bitcase>
+      <bitcase>
+        <enumref ref="CA">TestType</enumref>
+        <field type="CARD32" name="testType" mask="TESTTYPE" />
+      </bitcase>
+      <bitcase>
+        <enumref ref="CA">Delta</enumref>
+        <field type="INT64" name="delta" />
+      </bitcase>
+      <bitcase>
+        <enumref ref="CA">Events</enumref>
+        <field type="BOOL" name="events" />
+        <pad bytes="3" />
+      </bitcase>
+    </switch>
   </request>
 
   <request name="DestroyAlarm" opcode="11">
-- 
1.7.10.4



More information about the Xcb mailing list