</list>
</struct>
-->
+ <!-- XXX: This would be the correct Property structure as per spec.,
+ but it's broken atm. too. Add it anyway here, so we don't
+ loose that information.
+ <struct name="Property">
+ <field name="name" type="CountedString16" />
+ <field name="value" type="CountedString16" />
+ </struct>
+ -->
<struct name="Outline">
<field name="nPoints" type="CARD8" />
<field name="lockGroup" type="BOOL" />
<field name="groupLock" type="CARD8" enum="Group" />
<field name="affectModLatches" type="CARD8" mask="ModMask" />
+ <pad bytes="1" /> <!-- This pad is a workaround to prevent an API break,
+ which the following field (correct fix) would cause.
+ <field name="modLatches" type="CARD8" mask="ModMask" />
+ -->
<pad bytes="1" />
<field name="latchGroup" type="BOOL" />
<field name="groupLatch" type="CARD16" />
<list name="acts_rtrn_count" type="CARD8">
<fieldref>nKeyActions</fieldref>
</list>
- <list type="CARD8" name="alignment_pad">
- <op op="-">
- <op op="&">
- <op op="+">
- <fieldref>nKeyActions</fieldref>
- <value>3</value>
- </op>
- <unop op="~">
- <value>3</value>
- </unop>
- </op>
- <fieldref>nKeyActions</fieldref>
- </op>
- </list>
+ <pad align="4" />
<list name="acts_rtrn_acts" type="Action">
<fieldref>totalActions</fieldref>
</list>
<list name="vmods_rtrn" type="CARD8" mask="ModMask">
<popcount><fieldref>virtualMods</fieldref></popcount>
</list>
- <list type="CARD8" name="alignment_pad2">
- <op op="-">
- <op op="&">
- <op op="+">
- <popcount><fieldref>virtualMods</fieldref></popcount>
- <value>3</value>
- </op>
- <unop op="~">
- <value>3</value>
- </unop>
- </op>
- <popcount><fieldref>virtualMods</fieldref></popcount>
- </op>
- </list>
+ <pad align="4" />
</bitcase>
<bitcase>
<enumref ref="MapPart">ExplicitComponents</enumref>
<list name="explicit_rtrn" type="SetExplicit">
<fieldref>totalKeyExplicit</fieldref>
</list>
- <list type="CARD16" name="alignment_pad3">
- <op op="-">
- <op op="&">
- <op op="+">
- <fieldref>totalKeyExplicit</fieldref>
- <value>1</value>
- </op>
- <unop op="~">
- <value>1</value>
- </unop>
- </op>
- <fieldref>totalKeyExplicit</fieldref>
- </op>
- </list>
+ <pad align="4" />
</bitcase>
<bitcase>
<enumref ref="MapPart">ModifierMap</enumref>
<list name="modmap_rtrn" type="KeyModMap">
<fieldref>totalModMapKeys</fieldref>
</list>
- <list type="CARD16" name="alignment_pad4">
- <op op="-">
- <op op="&">
- <op op="+">
- <fieldref>totalModMapKeys</fieldref>
- <value>1</value>
- </op>
- <unop op="~">
- <value>1</value>
- </unop>
- </op>
- <fieldref>totalModMapKeys</fieldref>
- </op>
- </list>
+ <pad align="4" />
</bitcase>
<bitcase>
<enumref ref="MapPart">VirtualModMap</enumref>
<bitcase>
<enumref ref="NameDetail">KTLevelNames</enumref>
<list name="nLevelsPerType" type="CARD8">
- <fieldref>nKTLevels</fieldref>
+ <fieldref>nTypes</fieldref>
</list>
<list name="ktLevelNames" type="ATOM">
<sumof ref="nLevelsPerType" />
<request name="ListComponents" opcode="22">
<field name="deviceSpec" type="DeviceSpec" />
<field name="maxNames" type="CARD16" />
+ <!-- XXX: Intermixed fixed size fields and lists are broken
<field name="keymapsSpecLen" type="CARD8" />
<list name="keymapsSpec" type="STRING8">
<fieldref>keymapsSpecLen</fieldref>
<list name="geometrySpec" type="STRING8">
<fieldref>geometrySpecLen</fieldref>
</list>
+ -->
<reply>
<field name="deviceID" type="CARD8" />
<field name="nKeymaps" type="CARD16" />
<field name="want" type="CARD16" mask="GBNDetail" />
<field name="load" type="BOOL" />
<pad bytes="1" />
+ <!-- XXX: Intermixed fixed size fields and lists are broken
<field name="keymapsSpecLen" type="CARD8" />
<list name="keymapsSpec" type="STRING8">
<fieldref>keymapsSpecLen</fieldref>
<list name="geometrySpec" type="STRING8">
<fieldref>geometrySpecLen</fieldref>
</list>
+ -->
<reply>
<field name="deviceID" type="CARD8" />
<field name="minKeyCode" type="KEYCODE" />
<bitcase>
<enumref ref="NameDetail">KTLevelNames</enumref>
<list name="nLevelsPerType" type="CARD8">
- <fieldref>nKTLevels</fieldref>
+ <fieldref>nTypes</fieldref>
</list>
<list name="ktLevelNames" type="ATOM">
<sumof ref="nLevelsPerType" />