which will, e.g., be necessary for server-side xcb.
This affects the following:
-* ChangeFeedbackControl request field "feedback" ( structs FeedbackCtl, ... )
* QueryDeviceState reply field "classes" ( structs InputState, ... )
* GetDeviceControl reply field "control" ( structs DeviceState, ... )
* ChangeDeviceControl request field "control" ( structs ChangeDeviceControl, ... )
<field type="CARD8" name="class_id" enum="FeedbackClass" />
<field type="CARD8" name="feedback_id" />
<field type="CARD16" name="len" />
- <list type="CARD8" name="uninterpreted_data">
- <op op="-">
- <fieldref>len</fieldref>
- <value>4</value>
- </op>
- </list>
+ <switch name="data">
+ <fieldref>class_id</fieldref>
+ <case name="keyboard">
+ <enumref ref="FeedbackClass">Keyboard</enumref>
+ <field type="KeyCode" name="key" />
+ <field type="CARD8" name="auto_repeat_mode" />
+ <field type="INT8" name="key_click_percent" />
+ <field type="INT8" name="bell_percent" />
+ <field type="INT16" name="bell_pitch" />
+ <field type="INT16" name="bell_duration" />
+ <field type="CARD32" name="led_mask" />
+ <field type="CARD32" name="led_values" />
+ </case>
+ <case name="pointer">
+ <enumref ref="FeedbackClass">Pointer</enumref>
+ <pad bytes="2" />
+ <field type="INT16" name="num" />
+ <field type="INT16" name="denom" />
+ <field type="INT16" name="threshold" />
+ </case>
+ <case name="string">
+ <enumref ref="FeedbackClass">String</enumref>
+ <pad bytes="2" />
+ <field type="CARD16" name="num_keysyms" />
+ <list type="KEYSYM" name="keysyms">
+ <fieldref>num_keysyms</fieldref>
+ </list>
+ </case>
+ <case name="integer">
+ <enumref ref="FeedbackClass">Integer</enumref>
+ <field type="INT32" name="int_to_display" />
+ </case>
+ <case name="led">
+ <enumref ref="FeedbackClass">Led</enumref>
+ <field type="CARD32" name="led_mask" />
+ <field type="CARD32" name="led_values" />
+ </case>
+ <case name="bell">
+ <enumref ref="FeedbackClass">Bell</enumref>
+ <field type="INT8" name="percent" />
+ <pad bytes="3" />
+ <field type="INT16" name="pitch" />
+ <field type="INT16" name="duration" />
+ </case>
+ </switch>
</struct>
<enum name="ChangeFeedbackControlMask">