1986c8b3dSmrg<?xml version="1.0" encoding="utf-8" ?> 2986c8b3dSmrg<!-- 3986c8b3dSmrgCopyright (C) 2009 Open Text Corporation. All Rights Reserved. 4986c8b3dSmrg 5986c8b3dSmrgPermission is hereby granted, free of charge, to any person obtaining a copy 6986c8b3dSmrgof this software and associated documentation files (the "Software"), to deal 7986c8b3dSmrgin the Software without restriction, including without limitation the rights 8986c8b3dSmrgto use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9986c8b3dSmrgcopies of the Software, and to permit persons to whom the Software is 10986c8b3dSmrgfurnished to do so, subject to the following conditions: 11986c8b3dSmrg 12986c8b3dSmrgThe above copyright notice and this permission notice shall be included in all 13986c8b3dSmrgcopies or substantial portions of the Software. 14986c8b3dSmrg 15986c8b3dSmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16986c8b3dSmrgIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17986c8b3dSmrgFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18986c8b3dSmrgAUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 19986c8b3dSmrgACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20986c8b3dSmrgWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21986c8b3dSmrg 22986c8b3dSmrgExcept as contained in this notice, the names of the authors or their 23986c8b3dSmrginstitutions shall not be used in advertising or otherwise to promote the 24986c8b3dSmrgsale, use or other dealings in this Software without prior written 25986c8b3dSmrgauthorization from the authors. 26986c8b3dSmrg--> 27986c8b3dSmrg<xcb header="xkb" extension-xname="XKEYBOARD" extension-name="xkb" 28986c8b3dSmrg major-version="1" minor-version="0"> 29986c8b3dSmrg 30986c8b3dSmrg <import>xproto</import> 31986c8b3dSmrg 32986c8b3dSmrg <!-- Common Types --> 33986c8b3dSmrg <enum name="Const"> 34986c8b3dSmrg <item name="MaxLegalKeyCode"> <value>255</value> </item> 35986c8b3dSmrg <item name="PerKeyBitArraySize"> 36986c8b3dSmrg <value>32</value> 37986c8b3dSmrg </item> 38986c8b3dSmrg <item name="KeyNameLength"> 39986c8b3dSmrg <value>4</value> 40986c8b3dSmrg </item> 41986c8b3dSmrg </enum> 42986c8b3dSmrg 43986c8b3dSmrg <enum name="EventType"> 44986c8b3dSmrg <item name="NewKeyboardNotify"> <bit>0</bit> </item> 45986c8b3dSmrg <item name="MapNotify"> <bit>1</bit> </item> 46986c8b3dSmrg <item name="StateNotify"> <bit>2</bit> </item> 47986c8b3dSmrg <item name="ControlsNotify"> <bit>3</bit> </item> 48986c8b3dSmrg <item name="IndicatorStateNotify"> <bit>4</bit> </item> 49986c8b3dSmrg <item name="IndicatorMapNotify"> <bit>5</bit> </item> 50986c8b3dSmrg <item name="NamesNotify"> <bit>6</bit> </item> 51986c8b3dSmrg <item name="CompatMapNotify"> <bit>7</bit> </item> 52986c8b3dSmrg <item name="BellNotify"> <bit>8</bit> </item> 53986c8b3dSmrg <item name="ActionMessage"> <bit>9</bit> </item> 54986c8b3dSmrg <item name="AccessXNotify"> <bit>10</bit> </item> 55986c8b3dSmrg <item name="ExtensionDeviceNotify"> <bit>11</bit> </item> 56986c8b3dSmrg </enum> 57986c8b3dSmrg 58986c8b3dSmrg <enum name="NKNDetail"> 59986c8b3dSmrg <item name="Keycodes"> <bit>0</bit> </item> 60986c8b3dSmrg <item name="Geometry"> <bit>1</bit> </item> 61986c8b3dSmrg <item name="DeviceID"> <bit>2</bit> </item> 62986c8b3dSmrg </enum> 63986c8b3dSmrg 64986c8b3dSmrg <enum name="AXNDetail"> 65986c8b3dSmrg <item name="SKPress"> <bit>0</bit> </item> 66986c8b3dSmrg <item name="SKAccept"> <bit>1</bit> </item> 67986c8b3dSmrg <item name="SKReject"> <bit>2</bit> </item> 68986c8b3dSmrg <item name="SKRelease"> <bit>3</bit> </item> 69986c8b3dSmrg <item name="BKAccept"> <bit>4</bit> </item> 70986c8b3dSmrg <item name="BKReject"> <bit>5</bit> </item> 71986c8b3dSmrg <item name="AXKWarning"> <bit>6</bit> </item> 72986c8b3dSmrg </enum> 73986c8b3dSmrg 74986c8b3dSmrg <enum name="MapPart"> 75986c8b3dSmrg <item name="KeyTypes"> <bit>0</bit> </item> 76986c8b3dSmrg <item name="KeySyms"> <bit>1</bit> </item> 77986c8b3dSmrg <item name="ModifierMap"> <bit>2</bit> </item> 78986c8b3dSmrg <item name="ExplicitComponents"> <bit>3</bit> </item> 79986c8b3dSmrg <item name="KeyActions"> <bit>4</bit> </item> 80986c8b3dSmrg <item name="KeyBehaviors"> <bit>5</bit> </item> 81986c8b3dSmrg <item name="VirtualMods"> <bit>6</bit> </item> 82986c8b3dSmrg <item name="VirtualModMap"> <bit>7</bit> </item> 83986c8b3dSmrg </enum> 84986c8b3dSmrg 85986c8b3dSmrg <enum name="SetMapFlags"> 86986c8b3dSmrg <item name="ResizeTypes"> <bit>0</bit> </item> 87986c8b3dSmrg <item name="RecomputeActions"> <bit>1</bit> </item> 88986c8b3dSmrg </enum> 89986c8b3dSmrg 90986c8b3dSmrg <enum name="StatePart"> 91986c8b3dSmrg <item name="ModifierState"> <bit>0</bit> </item> 92986c8b3dSmrg <item name="ModifierBase"> <bit>1</bit> </item> 93986c8b3dSmrg <item name="ModifierLatch"> <bit>2</bit> </item> 94986c8b3dSmrg <item name="ModifierLock"> <bit>3</bit> </item> 95986c8b3dSmrg <item name="GroupState"> <bit>4</bit> </item> 96986c8b3dSmrg <item name="GroupBase"> <bit>5</bit> </item> 97986c8b3dSmrg <item name="GroupLatch"> <bit>6</bit> </item> 98986c8b3dSmrg <item name="GroupLock"> <bit>7</bit> </item> 99986c8b3dSmrg <item name="CompatState"> <bit>8</bit> </item> 100986c8b3dSmrg <item name="GrabMods"> <bit>9</bit> </item> 101986c8b3dSmrg <item name="CompatGrabMods"> <bit>10</bit> </item> 102986c8b3dSmrg <item name="LookupMods"> <bit>11</bit> </item> 103986c8b3dSmrg <item name="CompatLookupMods"> <bit>12</bit> </item> 104986c8b3dSmrg <item name="PointerButtons"> <bit>13</bit> </item> 105986c8b3dSmrg </enum> 106986c8b3dSmrg 107986c8b3dSmrg <enum name="BoolCtrl"> 108986c8b3dSmrg <item name="RepeatKeys"> <bit>0</bit> </item> 109986c8b3dSmrg <item name="SlowKeys"> <bit>1</bit> </item> 110986c8b3dSmrg <item name="BounceKeys"> <bit>2</bit> </item> 111986c8b3dSmrg <item name="StickyKeys"> <bit>3</bit> </item> 112986c8b3dSmrg <item name="MouseKeys"> <bit>4</bit> </item> 113986c8b3dSmrg <item name="MouseKeysAccel"> <bit>5</bit> </item> 114986c8b3dSmrg <item name="AccessXKeys"> <bit>6</bit> </item> 115986c8b3dSmrg <item name="AccessXTimeoutMask"> <bit>7</bit> </item> 116986c8b3dSmrg <item name="AccessXFeedbackMask"> <bit>8</bit> </item> 117986c8b3dSmrg <item name="AudibleBellMask"> <bit>9</bit> </item> 118986c8b3dSmrg <item name="Overlay1Mask"> <bit>10</bit> </item> 119986c8b3dSmrg <item name="Overlay2Mask"> <bit>11</bit> </item> 120986c8b3dSmrg <item name="IgnoreGroupLockMask"> <bit>12</bit> </item> 121986c8b3dSmrg </enum> 122986c8b3dSmrg 123986c8b3dSmrg <!-- XXX: one zero less than XKB specification says, 124986c8b3dSmrg uses the same values as libX11 --> 125986c8b3dSmrg <enum name="Control" > 126986c8b3dSmrg <item name="GroupsWrap"> <bit>27</bit> </item> 127986c8b3dSmrg <item name="InternalMods"> <bit>28</bit> </item> 128986c8b3dSmrg <item name="IgnoreLockMods"> <bit>29</bit> </item> 129986c8b3dSmrg <item name="PerKeyRepeat"> <bit>30</bit> </item> 130986c8b3dSmrg <item name="ControlsEnabled"> <bit>31</bit> </item> 131986c8b3dSmrg </enum> 132986c8b3dSmrg 133f591e195Smrg <enum name="AXOption"> 134986c8b3dSmrg <item name="SKPressFB"> <bit>0</bit> </item> 135986c8b3dSmrg <item name="SKAcceptFB"> <bit>1</bit> </item> 136986c8b3dSmrg <item name="FeatureFB"> <bit>2</bit> </item> 137986c8b3dSmrg <item name="SlowWarnFB"> <bit>3</bit> </item> 138986c8b3dSmrg <item name="IndicatorFB"> <bit>4</bit> </item> 139986c8b3dSmrg <item name="StickyKeysFB"> <bit>5</bit> </item> 140f591e195Smrg <item name="TwoKeys"> <bit>6</bit> </item> 141f591e195Smrg <item name="LatchToLock"> <bit>7</bit> </item> 142f591e195Smrg <item name="SKReleaseFB"> <bit>8</bit> </item> 143f591e195Smrg <item name="SKRejectFB"> <bit>9</bit> </item> 144f591e195Smrg <item name="BKRejectFB"> <bit>10</bit> </item> 145f591e195Smrg <item name="DumbBell"> <bit>11</bit> </item> 146986c8b3dSmrg </enum> 147986c8b3dSmrg 148986c8b3dSmrg <typedef oldname="CARD16" newname="DeviceSpec" /> 149986c8b3dSmrg 150986c8b3dSmrg <enum name="LedClassResult"> 151986c8b3dSmrg <item name="KbdFeedbackClass"> <value>0</value> </item> 152986c8b3dSmrg <item name="LedFeedbackClass"> <value>4</value> </item> 153986c8b3dSmrg </enum> 154986c8b3dSmrg 155986c8b3dSmrg <enum name="LedClass"> 156f591e195Smrg <item name="KbdFeedbackClass"> <value>0</value> </item> 157f591e195Smrg <item name="LedFeedbackClass"> <value>4</value> </item> 158f591e195Smrg <item name="DfltXIClass"> <value>768</value> </item> <!--0x300--> 159f591e195Smrg <item name="AllXIClasses"> <value>1280</value> </item> <!--0x500--> 160986c8b3dSmrg </enum> 161986c8b3dSmrg <typedef oldname="CARD16" newname="LedClassSpec" /> 162986c8b3dSmrg 163986c8b3dSmrg <enum name="BellClassResult"> 164986c8b3dSmrg <item name="KbdFeedbackClass"> <value>0</value> </item> 165986c8b3dSmrg <item name="BellFeedbackClass"> <value>5</value> </item> 166986c8b3dSmrg </enum> 167986c8b3dSmrg 168986c8b3dSmrg <enum name="BellClass"> 169f591e195Smrg <item name="KbdFeedbackClass"> <value>0</value> </item> 170f591e195Smrg <item name="BellFeedbackClass"> <value>5</value> </item> 171f591e195Smrg <item name="DfltXIClass"> <value>768</value> </item> <!--0x300--> 172986c8b3dSmrg </enum> 173986c8b3dSmrg <typedef oldname="CARD16" newname="BellClassSpec" /> 174986c8b3dSmrg 175986c8b3dSmrg <enum name="ID"> 176986c8b3dSmrg <item name="UseCoreKbd"> <value>256</value> </item> <!-- 0x100 --> 177986c8b3dSmrg <item name="UseCorePtr"> <value>512</value> </item> <!-- 0x200 --> 178986c8b3dSmrg <item name="DfltXIClass"> <value>768</value> </item> <!-- 0x300 --> 179986c8b3dSmrg <item name="DfltXIId"> <value>1024</value> </item> <!-- 0x400 --> 180986c8b3dSmrg <item name="AllXIClass"> <value>1280</value> </item> <!-- 0x500 --> 181986c8b3dSmrg <item name="AllXIId"> <value>1536</value> </item> <!-- 0x600 --> 182986c8b3dSmrg <item name="XINone"> <value>65280</value> </item> <!--0xff00--> 183986c8b3dSmrg </enum> 184986c8b3dSmrg <typedef oldname="CARD16" newname="IDSpec" /> 185986c8b3dSmrg 186986c8b3dSmrg <enum name="Group"> 187986c8b3dSmrg <item name="1"> <value>0</value> </item> 188986c8b3dSmrg <item name="2"> <value>1</value> </item> 189986c8b3dSmrg <item name="3"> <value>2</value> </item> 190986c8b3dSmrg <item name="4"> <value>3</value> </item> 191986c8b3dSmrg </enum> 192986c8b3dSmrg 193986c8b3dSmrg <enum name="Groups"> 194986c8b3dSmrg <item name="Any"> <value>254</value> </item> 195986c8b3dSmrg <item name="All"> <value>255</value> </item> 196986c8b3dSmrg </enum> 197986c8b3dSmrg 198986c8b3dSmrg <enum name="SetOfGroup"> 199986c8b3dSmrg <item name="Group1"> <bit>0</bit> </item> 200986c8b3dSmrg <item name="Group2"> <bit>1</bit> </item> 201986c8b3dSmrg <item name="Group3"> <bit>2</bit> </item> 202986c8b3dSmrg <item name="Group4"> <bit>3</bit> </item> 203986c8b3dSmrg </enum> 204986c8b3dSmrg 205986c8b3dSmrg <enum name="SetOfGroups"> 206986c8b3dSmrg <item name="Any"> <bit>7</bit> </item> 207986c8b3dSmrg </enum> 208986c8b3dSmrg 209986c8b3dSmrg <enum name="GroupsWrap"> 210986c8b3dSmrg <item name="WrapIntoRange"> <value>0</value> </item> 211986c8b3dSmrg <item name="ClampIntoRange"> <bit>6</bit> </item> 212986c8b3dSmrg <item name="RedirectIntoRange"> <bit>7</bit> </item> 213986c8b3dSmrg </enum> 214986c8b3dSmrg 215986c8b3dSmrg <enum name="VModsHigh"> 216986c8b3dSmrg <item name="15"> <bit>7</bit> </item> 217986c8b3dSmrg <item name="14"> <bit>6</bit> </item> 218986c8b3dSmrg <item name="13"> <bit>5</bit> </item> 219986c8b3dSmrg <item name="12"> <bit>4</bit> </item> 220986c8b3dSmrg <item name="11"> <bit>3</bit> </item> 221986c8b3dSmrg <item name="10"> <bit>2</bit> </item> 222986c8b3dSmrg <item name="9"> <bit>1</bit> </item> 223986c8b3dSmrg <item name="8"> <bit>0</bit> </item> 224986c8b3dSmrg </enum> 225986c8b3dSmrg 226986c8b3dSmrg <enum name="VModsLow"> 227986c8b3dSmrg <item name="7"> <bit>7</bit> </item> 228986c8b3dSmrg <item name="6"> <bit>6</bit> </item> 229986c8b3dSmrg <item name="5"> <bit>5</bit> </item> 230986c8b3dSmrg <item name="4"> <bit>4</bit> </item> 231986c8b3dSmrg <item name="3"> <bit>3</bit> </item> 232986c8b3dSmrg <item name="2"> <bit>2</bit> </item> 233986c8b3dSmrg <item name="1"> <bit>1</bit> </item> 234986c8b3dSmrg <item name="0"> <bit>0</bit> </item> 235986c8b3dSmrg </enum> 236986c8b3dSmrg 237986c8b3dSmrg <enum name="VMod"> 238986c8b3dSmrg <item name="15"> <bit>15</bit> </item> 239986c8b3dSmrg <item name="14"> <bit>14</bit> </item> 240986c8b3dSmrg <item name="13"> <bit>13</bit> </item> 241986c8b3dSmrg <item name="12"> <bit>12</bit> </item> 242986c8b3dSmrg <item name="11"> <bit>11</bit> </item> 243986c8b3dSmrg <item name="10"> <bit>10</bit> </item> 244986c8b3dSmrg <item name="9"> <bit>9</bit> </item> 245986c8b3dSmrg <item name="8"> <bit>8</bit> </item> 246986c8b3dSmrg <item name="7"> <bit>7</bit> </item> 247986c8b3dSmrg <item name="6"> <bit>6</bit> </item> 248986c8b3dSmrg <item name="5"> <bit>5</bit> </item> 249986c8b3dSmrg <item name="4"> <bit>4</bit> </item> 250986c8b3dSmrg <item name="3"> <bit>3</bit> </item> 251986c8b3dSmrg <item name="2"> <bit>2</bit> </item> 252986c8b3dSmrg <item name="1"> <bit>1</bit> </item> 253986c8b3dSmrg <item name="0"> <bit>0</bit> </item> 254986c8b3dSmrg </enum> 255986c8b3dSmrg 256986c8b3dSmrg <enum name="Explicit"> 257986c8b3dSmrg <item name="VModMap"> <bit>7</bit> </item> 258986c8b3dSmrg <item name="Behavior"> <bit>6</bit> </item> 259986c8b3dSmrg <item name="AutoRepeat"> <bit>5</bit> </item> 260986c8b3dSmrg <item name="Interpret"> <bit>4</bit> </item> 261986c8b3dSmrg <item name="KeyType4"> <bit>3</bit> </item> 262986c8b3dSmrg <item name="KeyType3"> <bit>2</bit> </item> 263986c8b3dSmrg <item name="KeyType2"> <bit>1</bit> </item> 264986c8b3dSmrg <item name="KeyType1"> <bit>0</bit> </item> 265986c8b3dSmrg </enum> 266986c8b3dSmrg 267f591e195Smrg <enum name="SymInterpretMatch"> 268986c8b3dSmrg <item name="NoneOf"> <value>0</value> </item> 269986c8b3dSmrg <item name="AnyOfOrNone"> <value>1</value> </item> 270986c8b3dSmrg <item name="AnyOf"> <value>2</value> </item> 271986c8b3dSmrg <item name="AllOf"> <value>3</value> </item> 272986c8b3dSmrg <item name="Exactly"> <value>4</value> </item> 273986c8b3dSmrg </enum> 274986c8b3dSmrg 275986c8b3dSmrg <enum name="SymInterpMatch"> 276986c8b3dSmrg <item name="LevelOneOnly"> <bit>7</bit> </item> 277986c8b3dSmrg <item name="OpMask"> <value>127</value> </item> <!--0x7f--> 278986c8b3dSmrg </enum> 279986c8b3dSmrg 280986c8b3dSmrg <enum name="IMFlag"> 281986c8b3dSmrg <item name="NoExplicit"> <bit>7</bit> </item> 282986c8b3dSmrg <item name="NoAutomatic"> <bit>6</bit> </item> 283986c8b3dSmrg <item name="LEDDrivesKB"> <bit>5</bit> </item> 284986c8b3dSmrg </enum> 285986c8b3dSmrg 286986c8b3dSmrg <enum name="IMModsWhich"> 287986c8b3dSmrg <item name="UseCompat"> <bit>4</bit> </item> 288986c8b3dSmrg <item name="UseEffective"> <bit>3</bit> </item> 289986c8b3dSmrg <item name="UseLocked"> <bit>2</bit> </item> 290986c8b3dSmrg <item name="UseLatched"> <bit>1</bit> </item> 291986c8b3dSmrg <item name="UseBase"> <bit>0</bit> </item> 292986c8b3dSmrg </enum> 293986c8b3dSmrg 294986c8b3dSmrg <enum name="IMGroupsWhich"> 295986c8b3dSmrg <item name="UseCompat"> <bit>4</bit> </item> 296986c8b3dSmrg <item name="UseEffective"> <bit>3</bit> </item> 297986c8b3dSmrg <item name="UseLocked"> <bit>2</bit> </item> 298986c8b3dSmrg <item name="UseLatched"> <bit>1</bit> </item> 299986c8b3dSmrg <item name="UseBase"> <bit>0</bit> </item> 300986c8b3dSmrg </enum> 301986c8b3dSmrg 302986c8b3dSmrg <struct name="IndicatorMap"> 303986c8b3dSmrg <field name="flags" type="CARD8" enum="IMFlag" /> 304986c8b3dSmrg <field name="whichGroups" type="CARD8" enum="IMGroupsWhich" /> 305986c8b3dSmrg <field name="groups" type="CARD8" enum="SetOfGroup" /> 306986c8b3dSmrg <field name="whichMods" type="CARD8" enum="IMModsWhich" /> 307986c8b3dSmrg <field name="mods" type="CARD8" mask="ModMask" /> 308986c8b3dSmrg <field name="realMods" type="CARD8" mask="ModMask" /> 309986c8b3dSmrg <field name="vmods" type="CARD16" mask="VMod" /> 310f591e195Smrg <field name="ctrls" type="CARD32" mask="BoolCtrl" /> 311986c8b3dSmrg </struct> 312986c8b3dSmrg 313986c8b3dSmrg <enum name="CMDetail"> 314986c8b3dSmrg <item name="SymInterp"> <bit>0</bit> </item> 315986c8b3dSmrg <item name="GroupCompat"> <bit>1</bit> </item> 316986c8b3dSmrg </enum> 317986c8b3dSmrg 318986c8b3dSmrg <enum name="NameDetail"> 319986c8b3dSmrg <item name="Keycodes"> <bit>0</bit> </item> 320986c8b3dSmrg <item name="Geometry"> <bit>1</bit> </item> 321986c8b3dSmrg <item name="Symbols"> <bit>2</bit> </item> 322986c8b3dSmrg <item name="PhysSymbols"> <bit>3</bit> </item> 323986c8b3dSmrg <item name="Types"> <bit>4</bit> </item> 324986c8b3dSmrg <item name="Compat"> <bit>5</bit> </item> 325986c8b3dSmrg <item name="KeyTypeNames"> <bit>6</bit> </item> 326986c8b3dSmrg <item name="KTLevelNames"> <bit>7</bit> </item> 327986c8b3dSmrg <item name="IndicatorNames"> <bit>8</bit> </item> 328986c8b3dSmrg <item name="KeyNames"> <bit>9</bit> </item> 329986c8b3dSmrg <item name="KeyAliases"> <bit>10</bit> </item> 330986c8b3dSmrg <item name="VirtualModNames"> <bit>11</bit> </item> 331986c8b3dSmrg <item name="GroupNames"> <bit>12</bit> </item> 332986c8b3dSmrg <item name="RGNames"> <bit>13</bit> </item> 333986c8b3dSmrg </enum> 334986c8b3dSmrg 335986c8b3dSmrg <enum name="GBNDetail"> 336986c8b3dSmrg <item name="Types"> <bit>0</bit> </item> 337986c8b3dSmrg <item name="CompatMap"> <bit>1</bit> </item> 338986c8b3dSmrg <item name="ClientSymbols"> <bit>2</bit> </item> 339986c8b3dSmrg <item name="ServerSymbols"> <bit>3</bit> </item> 340986c8b3dSmrg <item name="IndicatorMaps"> <bit>4</bit> </item> 341986c8b3dSmrg <item name="KeyNames"> <bit>5</bit> </item> 342986c8b3dSmrg <item name="Geometry"> <bit>6</bit> </item> 343986c8b3dSmrg <item name="OtherNames"> <bit>7</bit> </item> 344986c8b3dSmrg </enum> 345986c8b3dSmrg 346986c8b3dSmrg <enum name="XIFeature"> 347986c8b3dSmrg <item name="Keyboards"> <bit>0</bit> </item> 348986c8b3dSmrg <item name="ButtonActions"> <bit>1</bit> </item> 349986c8b3dSmrg <item name="IndicatorNames"> <bit>2</bit> </item> 350986c8b3dSmrg <item name="IndicatorMaps"> <bit>3</bit> </item> 351986c8b3dSmrg <item name="IndicatorState"> <bit>4</bit> </item> 352986c8b3dSmrg </enum> 353986c8b3dSmrg 354986c8b3dSmrg <enum name="PerClientFlag"> 355986c8b3dSmrg <item name="DetectableAutoRepeat"> <bit>0</bit> </item> 356986c8b3dSmrg <item name="GrabsUseXKBState"> <bit>1</bit> </item> 357986c8b3dSmrg <item name="AutoResetControls"> <bit>2</bit> </item> 358986c8b3dSmrg <item name="LookupStateWhenGrabbed"> <bit>3</bit> </item> 359986c8b3dSmrg <item name="SendEventUsesXKBState"> <bit>4</bit> </item> 360986c8b3dSmrg </enum> 361986c8b3dSmrg 362986c8b3dSmrg <struct name="ModDef"> 363986c8b3dSmrg <field name="mask" type="CARD8" mask="ModMask" /> 364986c8b3dSmrg <field name="realMods" type="CARD8" mask="ModMask" /> 365986c8b3dSmrg <field name="vmods" type="CARD16" mask="VMod" /> 366986c8b3dSmrg </struct> 367986c8b3dSmrg 368986c8b3dSmrg <struct name="KeyName"> 369f591e195Smrg <list name="name" type="char"> 370986c8b3dSmrg <value>4</value> 371986c8b3dSmrg </list> 372986c8b3dSmrg </struct> 373986c8b3dSmrg 374986c8b3dSmrg <struct name="KeyAlias"> 375f591e195Smrg <list name="real" type="char"> 376986c8b3dSmrg <value>4</value> 377986c8b3dSmrg </list> 378f591e195Smrg <list name="alias" type="char"> 379986c8b3dSmrg <value>4</value> 380986c8b3dSmrg </list> 381986c8b3dSmrg </struct> 382986c8b3dSmrg 383986c8b3dSmrg <struct name="CountedString16"> 384986c8b3dSmrg <field name="length" type="CARD16" /> 385f591e195Smrg <list name="string" type="char"> 386986c8b3dSmrg <fieldref>length</fieldref> 387986c8b3dSmrg </list> 388f591e195Smrg <list type="void" name="alignment_pad"> 389f591e195Smrg <op op="-"> 390f591e195Smrg <op op="&"> 391f591e195Smrg <op op="+"> 392f591e195Smrg <fieldref>length</fieldref> 393f591e195Smrg <value>5</value> 394f591e195Smrg </op> 395f591e195Smrg <unop op="~"> 396f591e195Smrg <value>3</value> 397f591e195Smrg </unop> 398f591e195Smrg </op> 399f591e195Smrg <op op="+"> 400f591e195Smrg <fieldref>length</fieldref> 401f591e195Smrg <value>2</value> 402f591e195Smrg </op> 403f591e195Smrg </op> 404f591e195Smrg </list> 405986c8b3dSmrg </struct> 406986c8b3dSmrg 407986c8b3dSmrg <struct name="KTMapEntry"> 408986c8b3dSmrg <field name="active" type="BOOL" /> 409986c8b3dSmrg <field name="mods_mask" type="CARD8" mask="ModMask" /> 410986c8b3dSmrg <field name="level" type="CARD8" /> 411986c8b3dSmrg <field name="mods_mods" type="CARD8" mask="ModMask" /> 412986c8b3dSmrg <field name="mods_vmods" type="CARD16" mask="VMod" /> 413986c8b3dSmrg <pad bytes="2" /> 414986c8b3dSmrg </struct> 415986c8b3dSmrg 416986c8b3dSmrg <struct name="KeyType"> 417986c8b3dSmrg <field name="mods_mask" type="CARD8" mask="ModMask" /> 418986c8b3dSmrg <field name="mods_mods" type="CARD8" mask="ModMask" /> 419986c8b3dSmrg <field name="mods_vmods" type="CARD16" mask="VMod" /> 420986c8b3dSmrg <field name="numLevels" type="CARD8" /> 421986c8b3dSmrg <field name="nMapEntries" type="CARD8" /> 422986c8b3dSmrg <field name="hasPreserve" type="BOOL" /> 423986c8b3dSmrg <pad bytes="1" /> 424986c8b3dSmrg <list name="map" type="KTMapEntry"> 425986c8b3dSmrg <fieldref>nMapEntries</fieldref> 426986c8b3dSmrg </list> 427986c8b3dSmrg <list name="preserve" type="ModDef"> 428986c8b3dSmrg <op op="*"> 429986c8b3dSmrg <fieldref>hasPreserve</fieldref> 430986c8b3dSmrg <fieldref>nMapEntries</fieldref> 431986c8b3dSmrg </op> 432986c8b3dSmrg </list> 433986c8b3dSmrg </struct> 434986c8b3dSmrg 435986c8b3dSmrg <struct name="KeySymMap"> 436986c8b3dSmrg <list name="kt_index" type="CARD8"> 437986c8b3dSmrg <value>4</value> 438986c8b3dSmrg </list> 439986c8b3dSmrg <field name="groupInfo" type="CARD8" /> 440986c8b3dSmrg <field name="width" type="CARD8" /> 441986c8b3dSmrg <field name="nSyms" type="CARD16" /> 442986c8b3dSmrg <list name="syms" type="KEYSYM"> 443986c8b3dSmrg <fieldref>nSyms</fieldref> 444986c8b3dSmrg </list> 445986c8b3dSmrg </struct> 446986c8b3dSmrg 447986c8b3dSmrg <!-- Key Behaviors --> 448986c8b3dSmrg 449986c8b3dSmrg <struct name="CommonBehavior"> 450986c8b3dSmrg <field name="type" type="CARD8" /> 451986c8b3dSmrg <field name="data" type="CARD8" /> 452986c8b3dSmrg </struct> 453986c8b3dSmrg 454986c8b3dSmrg <struct name="DefaultBehavior"> 455986c8b3dSmrg <field name="type" type="CARD8" /> 456986c8b3dSmrg <pad bytes="1" /> 457986c8b3dSmrg </struct> 458986c8b3dSmrg 459986c8b3dSmrg <typedef oldname="DefaultBehavior" newname="LockBehavior" /> 460986c8b3dSmrg 461986c8b3dSmrg <struct name="RadioGroupBehavior"> 462986c8b3dSmrg <field name="type" type="CARD8" /> 463986c8b3dSmrg <field name="group" type="CARD8" /> 464986c8b3dSmrg </struct> 465986c8b3dSmrg 466f591e195Smrg <struct name="OverlayBehavior"> 467986c8b3dSmrg <field name="type" type="CARD8" /> 468986c8b3dSmrg <field name="key" type="KEYCODE" /> 469986c8b3dSmrg </struct> 470986c8b3dSmrg 471986c8b3dSmrg <typedef oldname="LockBehavior" newname="PermamentLockBehavior" /> 472986c8b3dSmrg <typedef oldname="RadioGroupBehavior" newname="PermamentRadioGroupBehavior" /> 473f591e195Smrg <typedef oldname="OverlayBehavior" newname="PermamentOverlayBehavior" /> 474986c8b3dSmrg 475986c8b3dSmrg <union name="Behavior"> 476986c8b3dSmrg <field name="common" type="CommonBehavior" /> 477986c8b3dSmrg <field name="default" type="DefaultBehavior" /> 478986c8b3dSmrg <field name="lock" type="LockBehavior" /> 479986c8b3dSmrg <field name="radioGroup" type="RadioGroupBehavior" /> 480f591e195Smrg <field name="overlay1" type="OverlayBehavior" /> 481f591e195Smrg <field name="overlay2" type="OverlayBehavior" /> 482986c8b3dSmrg <field name="permamentLock" type="PermamentLockBehavior" /> 483986c8b3dSmrg <field name="permamentRadioGroup" type="PermamentRadioGroupBehavior" /> 484f591e195Smrg <field name="permamentOverlay1" type="PermamentOverlayBehavior" /> 485f591e195Smrg <field name="permamentOverlay2" type="PermamentOverlayBehavior" /> 486986c8b3dSmrg <field name="type" type="CARD8" /> 487986c8b3dSmrg </union> 488986c8b3dSmrg 489986c8b3dSmrg <enum name="BehaviorType"> 490986c8b3dSmrg <item name="Default"> <value>0</value> </item> <!--0x00--> 491986c8b3dSmrg <item name="Lock"> <value>1</value> </item> <!--0x01--> 492986c8b3dSmrg <item name="RadioGroup"> <value>2</value> </item> <!--0x02--> 493986c8b3dSmrg <item name="Overlay1"> <value>3</value> </item> <!--0x03--> 494986c8b3dSmrg <item name="Overlay2"> <value>4</value> </item> <!--0x04--> 495986c8b3dSmrg <item name="PermamentLock"> <value>129</value> </item> <!--0x81--> 496986c8b3dSmrg <item name="PermamentRadioGroup"> <value>130</value> </item> <!--0x82--> 497986c8b3dSmrg <item name="PermamentOverlay1"> <value>131</value> </item> <!--0x83--> 498986c8b3dSmrg <item name="PermamentOverlay2"> <value>132</value> </item> <!--0x84--> 499986c8b3dSmrg </enum> 500986c8b3dSmrg 501986c8b3dSmrg <struct name="SetBehavior"> 502986c8b3dSmrg <field name="keycode" type="KEYCODE" /> 503986c8b3dSmrg <field name="behavior" type="Behavior" /> 504986c8b3dSmrg <pad bytes="1" /> 505986c8b3dSmrg </struct> 506986c8b3dSmrg 507986c8b3dSmrg <struct name="SetExplicit"> 508986c8b3dSmrg <field name="keycode" type="KEYCODE" /> 509986c8b3dSmrg <field name="explicit" type="CARD8" mask="Explicit" /> 510986c8b3dSmrg </struct> 511986c8b3dSmrg 512986c8b3dSmrg <struct name="KeyModMap"> 513986c8b3dSmrg <field name="keycode" type="KEYCODE" /> 514986c8b3dSmrg <field name="mods" type="CARD8" mask="ModMask" /> 515986c8b3dSmrg </struct> 516986c8b3dSmrg 517986c8b3dSmrg <struct name="KeyVModMap"> 518986c8b3dSmrg <field name="keycode" type="KEYCODE" /> 519986c8b3dSmrg <pad bytes="1" /> 520986c8b3dSmrg <field name="vmods" type="CARD16" mask="VMod" /> 521986c8b3dSmrg </struct> 522986c8b3dSmrg 523986c8b3dSmrg <struct name="KTSetMapEntry"> 524986c8b3dSmrg <field name="level" type="CARD8" /> 525986c8b3dSmrg <field name="realMods" type="CARD8" mask="ModMask" /> 526986c8b3dSmrg <field name="virtualMods" type="CARD16" mask="VMod" /> 527986c8b3dSmrg </struct> 528986c8b3dSmrg 529986c8b3dSmrg <struct name="SetKeyType"> 530986c8b3dSmrg <field name="mask" type="CARD8" mask="ModMask" /> 531986c8b3dSmrg <field name="realMods" type="CARD8" mask="ModMask" /> 532986c8b3dSmrg <field name="virtualMods" type="CARD16" mask="VMod" /> 533986c8b3dSmrg <field name="numLevels" type="CARD8" /> 534986c8b3dSmrg <field name="nMapEntries" type="CARD8" /> 535986c8b3dSmrg <field name="preserve" type="BOOL" /> 536986c8b3dSmrg <pad bytes="1" /> 537986c8b3dSmrg <list name="entries" type="KTSetMapEntry"> 538986c8b3dSmrg <fieldref>nMapEntries</fieldref> 539986c8b3dSmrg </list> 540986c8b3dSmrg <list name="preserve_entries" type="KTSetMapEntry"> 541986c8b3dSmrg <op op = "*"> 542986c8b3dSmrg <fieldref>preserve</fieldref> 543986c8b3dSmrg <fieldref>nMapEntries</fieldref> 544986c8b3dSmrg </op> 545986c8b3dSmrg </list> 546986c8b3dSmrg </struct> 547986c8b3dSmrg 548986c8b3dSmrg <typedef oldname="char" newname="STRING8" /> 549986c8b3dSmrg 550f591e195Smrg <!-- XXX: Property is broken 551986c8b3dSmrg <struct name="Property"> 552986c8b3dSmrg <field name="nameLength" type="CARD16" /> 553986c8b3dSmrg <list name="name" type="STRING8"> 554986c8b3dSmrg <fieldref>nameLength</fieldref> 555986c8b3dSmrg </list> 556986c8b3dSmrg <field name="valueLength" type="CARD16" /> 557986c8b3dSmrg <list name="value" type="STRING8"> 558986c8b3dSmrg <fieldref>valueLength</fieldref> 559986c8b3dSmrg </list> 560986c8b3dSmrg </struct> 561f591e195Smrg --> 562f591e195Smrg <!-- XXX: This would be the correct Property structure as per spec., 563f591e195Smrg but it's broken atm. too. Add it anyway here, so we don't 564f591e195Smrg loose that information. 565f591e195Smrg <struct name="Property"> 566f591e195Smrg <field name="name" type="CountedString16" /> 567f591e195Smrg <field name="value" type="CountedString16" /> 568f591e195Smrg </struct> 569f591e195Smrg --> 570986c8b3dSmrg 571986c8b3dSmrg <struct name="Outline"> 572986c8b3dSmrg <field name="nPoints" type="CARD8" /> 573986c8b3dSmrg <field name="cornerRadius" type="CARD8" /> 574986c8b3dSmrg <pad bytes="2" /> 575986c8b3dSmrg <list name="points" type="POINT"> 576986c8b3dSmrg <fieldref>nPoints</fieldref> 577986c8b3dSmrg </list> 578986c8b3dSmrg </struct> 579986c8b3dSmrg 580986c8b3dSmrg <struct name="Shape"> 581986c8b3dSmrg <field name="name" type="ATOM" /> 582986c8b3dSmrg <field name="nOutlines" type="CARD8" /> 583986c8b3dSmrg <field name="primaryNdx" type="CARD8" /> 584986c8b3dSmrg <field name="approxNdx" type="CARD8" /> 585986c8b3dSmrg <pad bytes="1" /> 586986c8b3dSmrg <list name="outlines" type="Outline"> 587986c8b3dSmrg <fieldref>nOutlines</fieldref> 588986c8b3dSmrg </list> 589986c8b3dSmrg </struct> 590986c8b3dSmrg 591986c8b3dSmrg <struct name="Key"> 592986c8b3dSmrg <list name="name" type="STRING8"> 593986c8b3dSmrg <value>4</value> 594986c8b3dSmrg </list> 595986c8b3dSmrg <field name="gap" type="INT16" /> 596986c8b3dSmrg <field name="shapeNdx" type="CARD8" /> 597986c8b3dSmrg <field name="colorNdx" type="CARD8" /> 598986c8b3dSmrg </struct> 599986c8b3dSmrg 600986c8b3dSmrg <struct name="OverlayKey"> 601986c8b3dSmrg <list name="over" type="STRING8"> 602986c8b3dSmrg <value>4</value> 603986c8b3dSmrg </list> 604986c8b3dSmrg <list name="under" type="STRING8"> 605986c8b3dSmrg <value>4</value> 606986c8b3dSmrg </list> 607986c8b3dSmrg </struct> 608986c8b3dSmrg 609986c8b3dSmrg <struct name="OverlayRow"> 610986c8b3dSmrg <field name="rowUnder" type="CARD8" /> 611986c8b3dSmrg <field name="nKeys" type="CARD8" /> 612986c8b3dSmrg <pad bytes="2" /> 613986c8b3dSmrg <list name="keys" type="OverlayKey"> 614986c8b3dSmrg <fieldref>nKeys</fieldref> 615986c8b3dSmrg </list> 616986c8b3dSmrg </struct> 617986c8b3dSmrg 618986c8b3dSmrg <struct name="Overlay"> 619986c8b3dSmrg <field name="name" type="ATOM" /> 620986c8b3dSmrg <field name="nRows" type="CARD8" /> 621986c8b3dSmrg <pad bytes="3" /> 622986c8b3dSmrg <list name="rows" type="OverlayRow"> 623986c8b3dSmrg <fieldref>nRows</fieldref> 624986c8b3dSmrg </list> 625986c8b3dSmrg </struct> 626986c8b3dSmrg 627986c8b3dSmrg <struct name="Row"> 628986c8b3dSmrg <field name="top" type="INT16" /> 629986c8b3dSmrg <field name="left" type="INT16" /> 630986c8b3dSmrg <field name="nKeys" type="CARD8" /> 631986c8b3dSmrg <field name="vertical" type="BOOL" /> 632986c8b3dSmrg <pad bytes="2" /> 633986c8b3dSmrg <list name="keys" type="Key"> 634986c8b3dSmrg <fieldref>nKeys</fieldref> 635986c8b3dSmrg </list> 636986c8b3dSmrg </struct> 637986c8b3dSmrg 638986c8b3dSmrg <enum name="DoodadType"> 639986c8b3dSmrg <item name="Outline"> <value>1</value> </item> 640986c8b3dSmrg <item name="Solid"> <value>2</value> </item> 641986c8b3dSmrg <item name="Text"> <value>3</value> </item> 642986c8b3dSmrg <item name="Indicator"> <value>4</value> </item> 643986c8b3dSmrg <item name="Logo"> <value>5</value> </item> 644986c8b3dSmrg </enum> 645986c8b3dSmrg 646f591e195Smrg <!-- XXX: doodads are broken 647986c8b3dSmrg <struct name="CommonDoodad"> 648986c8b3dSmrg <field name="name" type="ATOM" /> 649986c8b3dSmrg <field name="type" type="CARD8" enum="DoodadType" /> 650986c8b3dSmrg <field name="priority" type="CARD8" /> 651986c8b3dSmrg <field name="top" type="INT16" /> 652986c8b3dSmrg <field name="left" type="INT16" /> 653986c8b3dSmrg <field name="angle" type="INT16" /> 654f591e195Smrg <pad bytes="8" /> 655986c8b3dSmrg </struct> 656986c8b3dSmrg 657986c8b3dSmrg <struct name="ShapeDoodad"> 658986c8b3dSmrg <field name="name" type="ATOM" /> 659986c8b3dSmrg <field name="type" type="CARD8" enum="DoodadType" /> 660986c8b3dSmrg <field name="priority" type="CARD8" /> 661986c8b3dSmrg <field name="top" type="INT16" /> 662986c8b3dSmrg <field name="left" type="INT16" /> 663986c8b3dSmrg <field name="angle" type="INT16" /> 664986c8b3dSmrg <field name="colorNdx" type="CARD8" /> 665986c8b3dSmrg <field name="shapeNdx" type="CARD8" /> 666986c8b3dSmrg <pad bytes="6" /> 667986c8b3dSmrg </struct> 668986c8b3dSmrg 669986c8b3dSmrg <struct name="TextDoodad"> 670986c8b3dSmrg <field name="name" type="ATOM" /> 671986c8b3dSmrg <field name="type" type="CARD8" enum="DoodadType" /> 672986c8b3dSmrg <field name="priority" type="CARD8" /> 673986c8b3dSmrg <field name="top" type="INT16" /> 674986c8b3dSmrg <field name="left" type="INT16" /> 675986c8b3dSmrg <field name="angle" type="INT16" /> 676986c8b3dSmrg <field name="width" type="CARD16" /> 677986c8b3dSmrg <field name="height" type="CARD16" /> 678986c8b3dSmrg <field name="colorNdx" type="CARD8" /> 679986c8b3dSmrg <pad bytes="3" /> 680986c8b3dSmrg <field name="text" type="CountedString16" /> 681986c8b3dSmrg <field name="font" type="CountedString16" /> 682986c8b3dSmrg </struct> 683986c8b3dSmrg 684986c8b3dSmrg <struct name="IndicatorDoodad"> 685986c8b3dSmrg <field name="name" type="ATOM" /> 686986c8b3dSmrg <field name="type" type="CARD8" enum="DoodadType" /> 687986c8b3dSmrg <field name="priority" type="CARD8" /> 688986c8b3dSmrg <field name="top" type="INT16" /> 689986c8b3dSmrg <field name="left" type="INT16" /> 690986c8b3dSmrg <field name="angle" type="INT16" /> 691986c8b3dSmrg <field name="shapeNdx" type="CARD8" /> 692986c8b3dSmrg <field name="onColorNdx" type="CARD8" /> 693986c8b3dSmrg <field name="offColorNdx" type="CARD8" /> 694986c8b3dSmrg <pad bytes="5" /> 695986c8b3dSmrg </struct> 696986c8b3dSmrg 697986c8b3dSmrg <struct name="LogoDoodad"> 698986c8b3dSmrg <field name="name" type="ATOM" /> 699986c8b3dSmrg <field name="type" type="CARD8" enum="DoodadType" /> 700986c8b3dSmrg <field name="priority" type="CARD8" /> 701986c8b3dSmrg <field name="top" type="INT16" /> 702986c8b3dSmrg <field name="left" type="INT16" /> 703986c8b3dSmrg <field name="angle" type="INT16" /> 704986c8b3dSmrg <field name="colorNdx" type="CARD8" /> 705986c8b3dSmrg <field name="shapeNdx" type="CARD8" /> 706986c8b3dSmrg <pad bytes="6" /> 707986c8b3dSmrg <field name="logoName" type="CountedString16" /> 708986c8b3dSmrg </struct> 709986c8b3dSmrg 710986c8b3dSmrg <union name="Doodad"> 711986c8b3dSmrg <field name="common" type="CommonDoodad" /> 712986c8b3dSmrg <field name="shape" type="ShapeDoodad" /> 713986c8b3dSmrg <field name="text" type="TextDoodad" /> 714986c8b3dSmrg <field name="indicator" type="IndicatorDoodad" /> 715986c8b3dSmrg <field name="logo" type="LogoDoodad" /> 716986c8b3dSmrg </union> 717986c8b3dSmrg 718986c8b3dSmrg <struct name="Section"> 719986c8b3dSmrg <field name="name" type="ATOM" /> 720986c8b3dSmrg <field name="top" type="INT16" /> 721986c8b3dSmrg <field name="left" type="INT16" /> 722986c8b3dSmrg <field name="width" type="CARD16" /> 723986c8b3dSmrg <field name="height" type="CARD16" /> 724986c8b3dSmrg <field name="angle" type="INT16" /> 725986c8b3dSmrg <field name="priority" type="CARD8" /> 726986c8b3dSmrg <field name="nRows" type="CARD8" /> 727986c8b3dSmrg <field name="nDoodads" type="CARD8" /> 728986c8b3dSmrg <field name="nOverlays" type="CARD8" /> 729986c8b3dSmrg <pad bytes="2" /> 730986c8b3dSmrg <list name="rows" type="Row"> 731986c8b3dSmrg <fieldref>nRows</fieldref> 732986c8b3dSmrg </list> 733986c8b3dSmrg <list name="doodads" type="Doodad"> 734986c8b3dSmrg <fieldref>nDoodads</fieldref> 735986c8b3dSmrg </list> 736986c8b3dSmrg <list name="overlays" type="Overlay"> 737986c8b3dSmrg <fieldref>nOverlays</fieldref> 738986c8b3dSmrg </list> 739986c8b3dSmrg </struct> 740f591e195Smrg --> 741986c8b3dSmrg 742986c8b3dSmrg <struct name="Listing"> 743986c8b3dSmrg <field name="flags" type="CARD16" /> 744986c8b3dSmrg <field name="length" type="CARD16" /> 745986c8b3dSmrg <list name="string" type="STRING8"> 746986c8b3dSmrg <fieldref>length</fieldref> 747986c8b3dSmrg </list> 748891601f5Smrg <pad align="2" /> 749986c8b3dSmrg </struct> 750986c8b3dSmrg 751986c8b3dSmrg <struct name="DeviceLedInfo"> 752986c8b3dSmrg <field name="ledClass" type="LedClassSpec" enum="LedClass" /> 753986c8b3dSmrg <field name="ledID" type="IDSpec" altenum="ID" /> 754986c8b3dSmrg <field name="namesPresent" type="CARD32" /> 755986c8b3dSmrg <field name="mapsPresent" type="CARD32" /> 756986c8b3dSmrg <field name="physIndicators" type="CARD32" /> 757986c8b3dSmrg <field name="state" type="CARD32" /> 758986c8b3dSmrg <list name="names" type="ATOM"> 759986c8b3dSmrg <popcount> 760986c8b3dSmrg <fieldref>namesPresent</fieldref> 761986c8b3dSmrg </popcount> 762986c8b3dSmrg </list> 763986c8b3dSmrg <list name="maps" type="IndicatorMap"> 764986c8b3dSmrg <popcount> 765986c8b3dSmrg <fieldref>mapsPresent</fieldref> 766986c8b3dSmrg </popcount> 767986c8b3dSmrg </list> 768986c8b3dSmrg </struct> 769986c8b3dSmrg 770986c8b3dSmrg <!-- Errors --> 771986c8b3dSmrg 772986c8b3dSmrg <enum name="Error"> 773986c8b3dSmrg <item name="BadDevice"> <value>255</value> </item> <!--0xff--> 774986c8b3dSmrg <item name="BadClass"> <value>254</value> </item> <!--0xfe--> 775986c8b3dSmrg <item name="BadId"> <value>253</value> </item> <!--0xfd--> 776986c8b3dSmrg </enum> 777986c8b3dSmrg 778986c8b3dSmrg <error name="Keyboard" number="0"> 779986c8b3dSmrg <field name="value" type="CARD32" /> 780986c8b3dSmrg <field name="minorOpcode" type="CARD16" /> 781986c8b3dSmrg <field name="majorOpcode" type="CARD8" /> 782986c8b3dSmrg <pad bytes="21" /> 783986c8b3dSmrg </error> 784986c8b3dSmrg 785986c8b3dSmrg <!-- Key Actions --> 786986c8b3dSmrg 787986c8b3dSmrg <enum name="SA"> 788986c8b3dSmrg <item name="ClearLocks"> <bit>0</bit> </item> 789986c8b3dSmrg <item name="LatchToLock"> <bit>1</bit> </item> 790986c8b3dSmrg <item name="UseModMapMods"> <bit>2</bit> </item> 791986c8b3dSmrg <item name="GroupAbsolute"> <bit>2</bit> </item> 792986c8b3dSmrg </enum> 793986c8b3dSmrg 794986c8b3dSmrg <enum name="SAType"> 795986c8b3dSmrg <item name="NoAction"> <value>0</value> </item> 796986c8b3dSmrg <item name="SetMods"> <value>1</value> </item> 797986c8b3dSmrg <item name="LatchMods"> <value>2</value> </item> 798986c8b3dSmrg <item name="LockMods"> <value>3</value> </item> 799986c8b3dSmrg <item name="SetGroup"> <value>4</value> </item> 800986c8b3dSmrg <item name="LatchGroup"> <value>5</value> </item> 801986c8b3dSmrg <item name="LockGroup"> <value>6</value> </item> 802986c8b3dSmrg <item name="MovePtr"> <value>7</value> </item> 803986c8b3dSmrg <item name="PtrBtn"> <value>8</value> </item> 804986c8b3dSmrg <item name="LockPtrBtn"> <value>9</value> </item> 805986c8b3dSmrg <item name="SetPtrDflt"> <value>10</value> </item> 806986c8b3dSmrg <item name="ISOLock"> <value>11</value> </item> 807986c8b3dSmrg <item name="Terminate"> <value>12</value> </item> 808986c8b3dSmrg <item name="SwitchScreen"> <value>13</value> </item> 809986c8b3dSmrg <item name="SetControls"> <value>14</value> </item> 810986c8b3dSmrg <item name="LockControls"> <value>15</value> </item> 811986c8b3dSmrg <item name="ActionMessage"> <value>16</value> </item> 812986c8b3dSmrg <item name="RedirectKey"> <value>17</value> </item> 813986c8b3dSmrg <item name="DeviceBtn"> <value>18</value> </item> 814986c8b3dSmrg <item name="LockDeviceBtn"> <value>19</value> </item> 815986c8b3dSmrg <item name="DeviceValuator"> <value>20</value> </item> 816986c8b3dSmrg </enum> 817986c8b3dSmrg 818986c8b3dSmrg <struct name="SANoAction"> 819986c8b3dSmrg <field name="type" type="CARD8" enum="SAType" /> 820986c8b3dSmrg <pad bytes="7" /> 821986c8b3dSmrg </struct> 822986c8b3dSmrg 823986c8b3dSmrg <struct name="SASetMods"> 824986c8b3dSmrg <field name="type" type="CARD8" enum="SAType" /> 825986c8b3dSmrg <field name="flags" type="CARD8" mask="SA" /> 826986c8b3dSmrg <field name="mask" type="CARD8" mask="ModMask" /> 827986c8b3dSmrg <field name="realMods" type="CARD8" mask="ModMask" /> 828986c8b3dSmrg <field name="vmodsHigh" type="CARD8" mask="VModsHigh" /> 829986c8b3dSmrg <field name="vmodsLow" type="CARD8" mask="VModsLow" /> 830986c8b3dSmrg <pad bytes="2" /> 831986c8b3dSmrg </struct> 832986c8b3dSmrg 833986c8b3dSmrg <typedef oldname="SASetMods" newname="SALatchMods" /> 834986c8b3dSmrg 835986c8b3dSmrg <typedef oldname="SASetMods" newname="SALockMods" /> 836986c8b3dSmrg 837986c8b3dSmrg <struct name="SASetGroup"> 838986c8b3dSmrg <field name="type" type="CARD8" enum="SAType" /> 839986c8b3dSmrg <field name="flags" type="CARD8" mask="SA" /> 840986c8b3dSmrg <field name="group" type="INT8" /> 841986c8b3dSmrg <pad bytes="5" /> 842986c8b3dSmrg </struct> 843986c8b3dSmrg 844986c8b3dSmrg <typedef oldname="SASetGroup" newname="SALatchGroup" /> 845986c8b3dSmrg 846986c8b3dSmrg <typedef oldname="SASetGroup" newname="SALockGroup" /> 847986c8b3dSmrg 848986c8b3dSmrg <enum name="SAMovePtrFlag"> 849986c8b3dSmrg <item name="NoAcceleration"> <bit>0</bit> </item> 850986c8b3dSmrg <item name="MoveAbsoluteX"> <bit>1</bit> </item> 851986c8b3dSmrg <item name="MoveAbsoluteY"> <bit>2</bit> </item> 852986c8b3dSmrg </enum> 853986c8b3dSmrg 854986c8b3dSmrg <struct name="SAMovePtr"> 855986c8b3dSmrg <field name="type" type="CARD8" enum="SAType" /> 856986c8b3dSmrg <field name="flags" type="CARD8" mask="SAMovePtrFlag" /> 857986c8b3dSmrg <field name="xHigh" type="INT8" /> 858986c8b3dSmrg <field name="xLow" type="CARD8" /> 859986c8b3dSmrg <field name="yHigh" type="INT8" /> 860986c8b3dSmrg <field name="yLow" type="CARD8" /> 861986c8b3dSmrg <pad bytes="2" /> 862986c8b3dSmrg </struct> 863986c8b3dSmrg 864986c8b3dSmrg <struct name="SAPtrBtn"> 865986c8b3dSmrg <field name="type" type="CARD8" enum="SAType" /> 866986c8b3dSmrg <field name="flags" type="CARD8" /> 867986c8b3dSmrg <field name="count" type="CARD8" /> 868986c8b3dSmrg <field name="button" type="CARD8" /> 869986c8b3dSmrg <pad bytes="4" /> 870986c8b3dSmrg </struct> 871986c8b3dSmrg 872986c8b3dSmrg <struct name="SALockPtrBtn"> 873986c8b3dSmrg <field name="type" type="CARD8" enum="SAType" /> 874986c8b3dSmrg <field name="flags" type="CARD8" /> 875986c8b3dSmrg <pad bytes="1" /> 876986c8b3dSmrg <field name="button" type="CARD8" /> 877986c8b3dSmrg <pad bytes="4" /> 878986c8b3dSmrg </struct> 879986c8b3dSmrg 880986c8b3dSmrg <enum name="SASetPtrDfltFlag"> 881f591e195Smrg <!-- The spec says 0x02 but Xlib uses 0x04. --> 882f591e195Smrg <item name="DfltBtnAbsolute"> <bit>2</bit> </item> 883986c8b3dSmrg <item name="AffectDfltButton"> <bit>0</bit> </item> 884986c8b3dSmrg </enum> 885986c8b3dSmrg 886986c8b3dSmrg <struct name="SASetPtrDflt"> 887986c8b3dSmrg <field name="type" type="CARD8" enum="SAType" /> 888986c8b3dSmrg <field name="flags" type="CARD8" mask="SASetPtrDfltFlag" /> 889986c8b3dSmrg <field name="affect" type="CARD8" mask="SASetPtrDfltFlag" /> 890986c8b3dSmrg <field name="value" type="INT8" /> 891986c8b3dSmrg <pad bytes="4" /> 892986c8b3dSmrg </struct> 893986c8b3dSmrg 894986c8b3dSmrg <enum name="SAIsoLockFlag"> 895986c8b3dSmrg <item name="NoLock"> <bit>0</bit> </item> 896986c8b3dSmrg <item name="NoUnlock"> <bit>1</bit> </item> 897986c8b3dSmrg <item name="UseModMapMods"> <bit>2</bit> </item> 898986c8b3dSmrg <item name="GroupAbsolute"> <bit>2</bit> </item> 899986c8b3dSmrg <item name="ISODfltIsGroup"> <bit>3</bit> </item> 900986c8b3dSmrg </enum> 901986c8b3dSmrg 902986c8b3dSmrg <enum name="SAIsoLockNoAffect"> 903986c8b3dSmrg <item name="Ctrls"> <bit>3</bit> </item> 904986c8b3dSmrg <item name="Ptr"> <bit>4</bit> </item> 905986c8b3dSmrg <item name="Group"> <bit>5</bit> </item> 906986c8b3dSmrg <item name="Mods"> <bit>6</bit> </item> 907986c8b3dSmrg </enum> 908986c8b3dSmrg 909986c8b3dSmrg <struct name="SAIsoLock"> 910986c8b3dSmrg <field name="type" type="CARD8" enum="SAType" /> 911986c8b3dSmrg <field name="flags" type="CARD8" mask="SAIsoLockFlag" /> 912986c8b3dSmrg <field name="mask" type="CARD8" mask="ModMask" /> 913986c8b3dSmrg <field name="realMods" type="CARD8" mask="ModMask" /> 914986c8b3dSmrg <field name="group" type="INT8" /> 915986c8b3dSmrg <field name="affect" type="CARD8" mask="SAIsoLockNoAffect" /> 916986c8b3dSmrg <field name="vmodsHigh" type="CARD8" mask="VModsHigh" /> 917986c8b3dSmrg <field name="vmodsLow" type="CARD8" mask="VModsLow" /> 918986c8b3dSmrg </struct> 919986c8b3dSmrg 920986c8b3dSmrg <struct name="SATerminate"> 921986c8b3dSmrg <field name="type" type="CARD8" enum="SAType" /> 922986c8b3dSmrg <pad bytes="7" /> 923986c8b3dSmrg </struct> 924986c8b3dSmrg 925986c8b3dSmrg <enum name="SwitchScreenFlag"> 926986c8b3dSmrg <item name="Application"> <bit>0</bit> </item> 927986c8b3dSmrg <item name="Absolute" > <bit>2</bit> </item> 928986c8b3dSmrg </enum> 929986c8b3dSmrg 930986c8b3dSmrg <struct name="SASwitchScreen"> 931986c8b3dSmrg <field name="type" type="CARD8" enum="SAType" /> 932986c8b3dSmrg <field name="flags" type="CARD8" /> 933986c8b3dSmrg <field name="newScreen" type="INT8" /> 934986c8b3dSmrg <pad bytes="5" /> 935986c8b3dSmrg </struct> 936986c8b3dSmrg 937986c8b3dSmrg <enum name="BoolCtrlsHigh"> 938986c8b3dSmrg <item name="AccessXFeedback"> <bit>0</bit> </item> 939986c8b3dSmrg <item name="AudibleBell"> <bit>1</bit> </item> 940986c8b3dSmrg <item name="Overlay1"> <bit>2</bit> </item> 941986c8b3dSmrg <item name="Overlay2"> <bit>3</bit> </item> 942986c8b3dSmrg <item name="IgnoreGroupLock"> <bit>4</bit> </item> 943986c8b3dSmrg </enum> 944986c8b3dSmrg 945986c8b3dSmrg <enum name="BoolCtrlsLow"> 946986c8b3dSmrg <item name="RepeatKeys"> <bit>0</bit> </item> 947986c8b3dSmrg <item name="SlowKeys"> <bit>1</bit> </item> 948986c8b3dSmrg <item name="BounceKeys"> <bit>2</bit> </item> 949986c8b3dSmrg <item name="StickyKeys"> <bit>3</bit> </item> 950986c8b3dSmrg <item name="MouseKeys"> <bit>4</bit> </item> 951986c8b3dSmrg <item name="MouseKeysAccel"> <bit>5</bit> </item> 952986c8b3dSmrg <item name="AccessXKeys"> <bit>6</bit> </item> 953986c8b3dSmrg <item name="AccessXTimeout"> <bit>7</bit> </item> 954986c8b3dSmrg </enum> 955986c8b3dSmrg 956986c8b3dSmrg <struct name="SASetControls"> 957986c8b3dSmrg <field name="type" type="CARD8" enum="SAType" /> 958986c8b3dSmrg <pad bytes="3" /> 959986c8b3dSmrg <field name="boolCtrlsHigh" type="CARD8" mask="BoolCtrlsHigh" /> 960986c8b3dSmrg <field name="boolCtrlsLow" type="CARD8" mask="BoolCtrlsLow" /> 961986c8b3dSmrg <pad bytes="2" /> 962986c8b3dSmrg </struct> 963986c8b3dSmrg 964986c8b3dSmrg <typedef oldname="SASetControls" newname="SALockControls" /> 965986c8b3dSmrg 966986c8b3dSmrg <enum name="ActionMessageFlag"> 967986c8b3dSmrg <item name="OnPress"> <bit>0</bit> </item> 968986c8b3dSmrg <item name="OnRelease"> <bit>1</bit> </item> 969986c8b3dSmrg <item name="GenKeyEvent"> <bit>2</bit> </item> 970986c8b3dSmrg </enum> 971986c8b3dSmrg 972986c8b3dSmrg <struct name="SAActionMessage"> 973986c8b3dSmrg <field name="type" type="CARD8" enum="SAType" /> 974986c8b3dSmrg <field name="flags" type="CARD8" mask="ActionMessageFlag" /> 975986c8b3dSmrg <list name="message" type="CARD8"> 976986c8b3dSmrg <value>6</value> 977986c8b3dSmrg </list> 978986c8b3dSmrg </struct> 979986c8b3dSmrg 980986c8b3dSmrg <struct name="SARedirectKey"> 981986c8b3dSmrg <field name="type" type="CARD8" enum="SAType" /> 982986c8b3dSmrg <field name="newkey" type="KEYCODE" /> 983986c8b3dSmrg <field name="mask" type="CARD8" mask="ModMask" /> 984986c8b3dSmrg <field name="realModifiers" type="CARD8" mask="ModMask" /> 985986c8b3dSmrg <field name="vmodsMaskHigh" type="CARD8" mask="VModsHigh"/> 986986c8b3dSmrg <field name="vmodsMaskLow" type="CARD8" mask="VModsLow"/> 987986c8b3dSmrg <field name="vmodsHigh" type="CARD8" mask="VModsHigh"/> 988986c8b3dSmrg <field name="vmodsLow" type="CARD8" mask="VModsLow"/> 989986c8b3dSmrg </struct> 990986c8b3dSmrg 991986c8b3dSmrg <struct name="SADeviceBtn"> 992986c8b3dSmrg <field name="type" type="CARD8" enum="SAType" /> 993986c8b3dSmrg <field name="flags" type="CARD8" /> 994986c8b3dSmrg <field name="count" type="CARD8" /> 995986c8b3dSmrg <field name="button" type="CARD8" /> 996986c8b3dSmrg <field name="device" type="CARD8" /> 997986c8b3dSmrg <pad bytes="3" /> 998986c8b3dSmrg </struct> 999986c8b3dSmrg 1000986c8b3dSmrg <enum name="LockDeviceFlags"> 1001986c8b3dSmrg <item name="NoLock"> <bit>0</bit> </item> 1002986c8b3dSmrg <item name="NoUnlock"> <bit>1</bit> </item> 1003986c8b3dSmrg </enum> 1004986c8b3dSmrg 1005986c8b3dSmrg <struct name="SALockDeviceBtn"> 1006986c8b3dSmrg <field name="type" type="CARD8" enum="SAType" /> 1007986c8b3dSmrg <field name="flags" type="CARD8" mask="LockDeviceFlags" /> 1008986c8b3dSmrg <pad bytes="1" /> 1009986c8b3dSmrg <field name="button" type="CARD8" /> 1010986c8b3dSmrg <field name="device" type="CARD8" /> 1011f591e195Smrg <pad bytes="3" /> 1012986c8b3dSmrg </struct> 1013986c8b3dSmrg 1014986c8b3dSmrg <enum name="SAValWhat"> 1015986c8b3dSmrg <item name="IgnoreVal"> <value>0</value> </item> 1016986c8b3dSmrg <item name="SetValMin"> <value>1</value> </item> 1017986c8b3dSmrg <item name="SetValCenter"> <value>2</value> </item> 1018986c8b3dSmrg <item name="SetValMax"> <value>3</value> </item> 1019986c8b3dSmrg <item name="SetValRelative"> <value>4</value> </item> 1020986c8b3dSmrg <item name="SetValAbsolute"> <value>5</value> </item> 1021986c8b3dSmrg </enum> 1022986c8b3dSmrg 1023986c8b3dSmrg <struct name="SADeviceValuator"> 1024986c8b3dSmrg <field name="type" type="CARD8" enum="SAType" /> 1025986c8b3dSmrg <field name="device" type="CARD8" /> 1026986c8b3dSmrg <field name="val1what" type="CARD8" enum="SAValWhat" /> 1027986c8b3dSmrg <field name="val1index" type="CARD8" /> 1028986c8b3dSmrg <field name="val1value" type="CARD8" /> 1029986c8b3dSmrg <field name="val2what" type="CARD8" enum="SAValWhat" /> 1030986c8b3dSmrg <field name="val2index" type="CARD8" /> 1031986c8b3dSmrg <field name="val2value" type="CARD8" /> 1032986c8b3dSmrg </struct> 1033986c8b3dSmrg 1034f591e195Smrg <struct name="SIAction"> 1035f591e195Smrg <field name="type" type="CARD8" enum="SAType" /> 1036f591e195Smrg <list name="data" type="CARD8"> 1037f591e195Smrg <value>7</value> 1038f591e195Smrg </list> 1039f591e195Smrg </struct> 1040f591e195Smrg 1041f591e195Smrg <struct name="SymInterpret"> 1042f591e195Smrg <field name="sym" type="KEYSYM" /> 1043f591e195Smrg <field name="mods" type="CARD8" mask="ModMask" /> 1044f591e195Smrg <!-- "match" may also have XkbSI_LevelOneOnly (0x80) or'd into it --> 1045f591e195Smrg <field name="match" type="CARD8" altenum="SymInterpretMatch" /> 1046f591e195Smrg <field name="virtualMod" type="CARD8" mask="VModsLow" /> 1047f591e195Smrg <field name="flags" type="CARD8" /> 1048f591e195Smrg <field name="action" type="SIAction" /> 1049f591e195Smrg </struct> 1050f591e195Smrg 1051986c8b3dSmrg <union name="Action"> 1052986c8b3dSmrg <field name="noaction" type="SANoAction" /> 1053986c8b3dSmrg <field name="setmods" type="SASetMods" /> 1054986c8b3dSmrg <field name="latchmods" type="SALatchMods" /> 1055986c8b3dSmrg <field name="lockmods" type="SALockMods" /> 1056986c8b3dSmrg <field name="setgroup" type="SASetGroup" /> 1057986c8b3dSmrg <field name="latchgroup" type="SALatchGroup" /> 1058986c8b3dSmrg <field name="lockgroup" type="SALockGroup" /> 1059986c8b3dSmrg <field name="moveptr" type="SAMovePtr" /> 1060986c8b3dSmrg <field name="ptrbtn" type="SAPtrBtn" /> 1061986c8b3dSmrg <field name="lockptrbtn" type="SALockPtrBtn" /> 1062986c8b3dSmrg <field name="setptrdflt" type="SASetPtrDflt" /> 1063986c8b3dSmrg <field name="isolock" type="SAIsoLock" /> 1064986c8b3dSmrg <field name="terminate" type="SATerminate" /> 1065986c8b3dSmrg <field name="switchscreen" type="SASwitchScreen" /> 1066986c8b3dSmrg <field name="setcontrols" type="SASetControls" /> 1067986c8b3dSmrg <field name="lockcontrols" type="SALockControls" /> 1068986c8b3dSmrg <field name="message" type="SAActionMessage" /> 1069986c8b3dSmrg <field name="redirect" type="SARedirectKey" /> 1070986c8b3dSmrg <field name="devbtn" type="SADeviceBtn" /> 1071986c8b3dSmrg <field name="lockdevbtn" type="SALockDeviceBtn" /> 1072986c8b3dSmrg <field name="devval" type="SADeviceValuator" /> 1073986c8b3dSmrg <field name="type" type="CARD8" enum="SAType" /> 1074986c8b3dSmrg </union> 1075986c8b3dSmrg 1076986c8b3dSmrg <!-- Requests --> 1077986c8b3dSmrg 1078986c8b3dSmrg <request name="UseExtension" opcode="0"> 1079986c8b3dSmrg <field name="wantedMajor" type="CARD16" /> 1080986c8b3dSmrg <field name="wantedMinor" type="CARD16" /> 1081986c8b3dSmrg <reply> 1082986c8b3dSmrg <field name="supported" type="BOOL" /> 1083986c8b3dSmrg <field name="serverMajor" type="CARD16" /> 1084986c8b3dSmrg <field name="serverMinor" type="CARD16" /> 1085986c8b3dSmrg <pad bytes="20" /> 1086986c8b3dSmrg </reply> 1087986c8b3dSmrg </request> 1088986c8b3dSmrg 1089986c8b3dSmrg <request name="SelectEvents" opcode="1"> 1090986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 1091f591e195Smrg <field name="affectWhich" type="CARD16" mask="EventType" /> 1092f591e195Smrg <field name="clear" type="CARD16" mask="EventType" /> 1093f591e195Smrg <field name="selectAll" type="CARD16" mask="EventType" /> 1094f591e195Smrg <field name="affectMap" type="CARD16" mask="MapPart" /> 1095f591e195Smrg <field name="map" type="CARD16" mask="MapPart" /> 1096986c8b3dSmrg <switch name="details"> 1097986c8b3dSmrg <op op="&"> 1098986c8b3dSmrg <fieldref>affectWhich</fieldref> 1099986c8b3dSmrg <op op="&"> 1100986c8b3dSmrg <unop op="~"><fieldref>clear</fieldref></unop> 1101986c8b3dSmrg <unop op="~"><fieldref>selectAll</fieldref></unop> 1102986c8b3dSmrg </op> 1103986c8b3dSmrg </op> 1104986c8b3dSmrg <bitcase> 1105986c8b3dSmrg <enumref ref="EventType">NewKeyboardNotify</enumref> 1106986c8b3dSmrg <field name="affectNewKeyboard" type="CARD16" mask="NKNDetail" /> 1107986c8b3dSmrg <field name="newKeyboardDetails" type="CARD16" mask="NKNDetail" /> 1108986c8b3dSmrg </bitcase> 1109986c8b3dSmrg <bitcase> 1110986c8b3dSmrg <enumref ref="EventType">StateNotify</enumref> 1111986c8b3dSmrg <field name="affectState" type="CARD16" mask="StatePart" /> 1112986c8b3dSmrg <field name="stateDetails" type="CARD16" mask="StatePart" /> 1113986c8b3dSmrg </bitcase> 1114986c8b3dSmrg <bitcase> 1115986c8b3dSmrg <enumref ref="EventType">ControlsNotify</enumref> 1116986c8b3dSmrg <field name="affectCtrls" type="CARD32" mask="Control" /> 1117986c8b3dSmrg <field name="ctrlDetails" type="CARD32" mask="Control" /> 1118986c8b3dSmrg </bitcase> 1119986c8b3dSmrg <bitcase> 1120986c8b3dSmrg <enumref ref="EventType">IndicatorStateNotify</enumref> 1121986c8b3dSmrg <field name="affectIndicatorState" type="CARD32" /> 1122986c8b3dSmrg <field name="indicatorStateDetails" type="CARD32" /> 1123986c8b3dSmrg </bitcase> 1124986c8b3dSmrg <bitcase> 1125986c8b3dSmrg <enumref ref="EventType">IndicatorMapNotify</enumref> 1126986c8b3dSmrg <field name="affectIndicatorMap" type="CARD32" /> 1127986c8b3dSmrg <field name="indicatorMapDetails" type="CARD32" /> 1128986c8b3dSmrg </bitcase> 1129986c8b3dSmrg <bitcase> 1130986c8b3dSmrg <enumref ref="EventType">NamesNotify</enumref> 1131986c8b3dSmrg <field name="affectNames" type="CARD16" mask="NameDetail" /> 1132986c8b3dSmrg <field name="namesDetails" type="CARD16" mask="NameDetail" /> 1133986c8b3dSmrg </bitcase> 1134986c8b3dSmrg <bitcase> 1135986c8b3dSmrg <enumref ref="EventType">CompatMapNotify</enumref> 1136986c8b3dSmrg <field name="affectCompat" type="CARD8" mask="CMDetail" /> 1137986c8b3dSmrg <field name="compatDetails" type="CARD8" mask="CMDetail" /> 1138986c8b3dSmrg </bitcase> 1139986c8b3dSmrg <bitcase> 1140986c8b3dSmrg <enumref ref="EventType">BellNotify</enumref> 1141986c8b3dSmrg <field name="affectBell" type="CARD8" /> 1142986c8b3dSmrg <field name="bellDetails" type="CARD8" /> 1143986c8b3dSmrg </bitcase> 1144986c8b3dSmrg <bitcase> 1145986c8b3dSmrg <enumref ref="EventType">ActionMessage</enumref> 1146986c8b3dSmrg <field name="affectMsgDetails" type="CARD8" /> 1147986c8b3dSmrg <field name="msgDetails" type="CARD8" /> 1148986c8b3dSmrg </bitcase> 1149986c8b3dSmrg <bitcase> 1150986c8b3dSmrg <enumref ref="EventType">AccessXNotify</enumref> 1151986c8b3dSmrg <field name="affectAccessX" type="CARD16" mask="AXNDetail" /> 1152986c8b3dSmrg <field name="accessXDetails" type="CARD16" mask="AXNDetail" /> 1153986c8b3dSmrg </bitcase> 1154986c8b3dSmrg <bitcase> 1155986c8b3dSmrg <enumref ref="EventType">ExtensionDeviceNotify</enumref> 1156986c8b3dSmrg <field name="affectExtDev" type="CARD16" mask="XIFeature" /> 1157986c8b3dSmrg <field name="extdevDetails" type="CARD16" mask="XIFeature" /> 1158986c8b3dSmrg </bitcase> 1159986c8b3dSmrg </switch> 1160986c8b3dSmrg </request> 1161986c8b3dSmrg 1162986c8b3dSmrg <request name="Bell" opcode="3"> 1163986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 1164986c8b3dSmrg <field name="bellClass" type="BellClassSpec" /> 1165986c8b3dSmrg <field name="bellID" type="IDSpec" /> 1166986c8b3dSmrg <field name="percent" type="INT8" /> 1167986c8b3dSmrg <field name="forceSound" type="BOOL" /> 1168986c8b3dSmrg <field name="eventOnly" type="BOOL" /> 1169986c8b3dSmrg <pad bytes="1" /> 1170986c8b3dSmrg <field name="pitch" type="INT16" /> 1171986c8b3dSmrg <field name="duration" type="INT16" /> 1172986c8b3dSmrg <pad bytes="2" /> 1173986c8b3dSmrg <field name="name" type="ATOM" /> 1174986c8b3dSmrg <field name="window" type="WINDOW" /> 1175986c8b3dSmrg </request> 1176986c8b3dSmrg 1177986c8b3dSmrg <request name="GetState" opcode="4"> 1178986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 1179986c8b3dSmrg <pad bytes="2" /> 1180986c8b3dSmrg <reply> 1181986c8b3dSmrg <field name="deviceID" type="CARD8" /> 1182986c8b3dSmrg <field name="mods" type="CARD8" mask="ModMask" /> 1183986c8b3dSmrg <field name="baseMods" type="CARD8" mask="ModMask" /> 1184986c8b3dSmrg <field name="latchedMods" type="CARD8" mask="ModMask" /> 1185986c8b3dSmrg <field name="lockedMods" type="CARD8" mask="ModMask" /> 1186986c8b3dSmrg <field name="group" type="CARD8" enum="Group" /> 1187986c8b3dSmrg <field name="lockedGroup" type="CARD8" enum="Group" /> 1188986c8b3dSmrg <field name="baseGroup" type="INT16" /> 1189986c8b3dSmrg <field name="latchedGroup" type="INT16" /> 1190986c8b3dSmrg <field name="compatState" type="CARD8" mask="ModMask" /> 1191986c8b3dSmrg <field name="grabMods" type="CARD8" mask="ModMask" /> 1192986c8b3dSmrg <field name="compatGrabMods" type="CARD8" mask="ModMask" /> 1193986c8b3dSmrg <field name="lookupMods" type="CARD8" mask="ModMask" /> 1194986c8b3dSmrg <field name="compatLookupMods" type="CARD8" mask="ModMask" /> 1195986c8b3dSmrg <pad bytes="1" /> 1196986c8b3dSmrg <field name="ptrBtnState" type="CARD16" mask="KeyButMask" /> 1197986c8b3dSmrg <pad bytes="6" /> 1198986c8b3dSmrg </reply> 1199986c8b3dSmrg </request> 1200986c8b3dSmrg 1201986c8b3dSmrg <request name="LatchLockState" opcode="5"> 1202986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 1203986c8b3dSmrg <field name="affectModLocks" type="CARD8" mask="ModMask" /> 1204986c8b3dSmrg <field name="modLocks" type="CARD8" mask="ModMask" /> 1205986c8b3dSmrg <field name="lockGroup" type="BOOL" /> 1206986c8b3dSmrg <field name="groupLock" type="CARD8" enum="Group" /> 1207986c8b3dSmrg <field name="affectModLatches" type="CARD8" mask="ModMask" /> 1208b26960f7Smrg <pad bytes="1" /> <!-- This pad is a workaround to prevent an API break, 1209b26960f7Smrg which the following field (correct fix) would cause. 1210b26960f7Smrg <field name="modLatches" type="CARD8" mask="ModMask" /> 1211b26960f7Smrg --> 1212986c8b3dSmrg <pad bytes="1" /> 1213986c8b3dSmrg <field name="latchGroup" type="BOOL" /> 1214986c8b3dSmrg <field name="groupLatch" type="CARD16" /> 1215986c8b3dSmrg </request> 1216986c8b3dSmrg 1217986c8b3dSmrg <request name="GetControls" opcode="6"> 1218986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 1219986c8b3dSmrg <pad bytes="2" /> 1220986c8b3dSmrg <reply> 1221986c8b3dSmrg <field name="deviceID" type="CARD8" /> 1222986c8b3dSmrg <field name="mouseKeysDfltBtn" type="CARD8" /> 1223986c8b3dSmrg <field name="numGroups" type="CARD8" /> 1224986c8b3dSmrg <field name="groupsWrap" type="CARD8" /> 1225986c8b3dSmrg <field name="internalModsMask" type="CARD8" mask="ModMask" /> 1226986c8b3dSmrg <field name="ignoreLockModsMask" type="CARD8" mask="ModMask" /> 1227986c8b3dSmrg <field name="internalModsRealMods" type="CARD8" mask="ModMask" /> 1228986c8b3dSmrg <field name="ignoreLockModsRealMods" type="CARD8" mask="ModMask" /> 1229986c8b3dSmrg <pad bytes="1" /> 1230986c8b3dSmrg <field name="internalModsVmods" type="CARD16" mask="VMod" /> 1231986c8b3dSmrg <field name="ignoreLockModsVmods" type="CARD16" mask="VMod" /> 1232986c8b3dSmrg <field name="repeatDelay" type="CARD16" /> 1233986c8b3dSmrg <field name="repeatInterval" type="CARD16" /> 1234986c8b3dSmrg <field name="slowKeysDelay" type="CARD16" /> 1235986c8b3dSmrg <field name="debounceDelay" type="CARD16" /> 1236986c8b3dSmrg <field name="mouseKeysDelay" type="CARD16" /> 1237986c8b3dSmrg <field name="mouseKeysInterval" type="CARD16" /> 1238986c8b3dSmrg <field name="mouseKeysTimeToMax" type="CARD16" /> 1239986c8b3dSmrg <field name="mouseKeysMaxSpeed" type="CARD16" /> 1240986c8b3dSmrg <field name="mouseKeysCurve" type="INT16" /> 1241f591e195Smrg <field name="accessXOption" type="CARD16" mask="AXOption" /> 1242986c8b3dSmrg <field name="accessXTimeout" type="CARD16" /> 1243f591e195Smrg <field name="accessXTimeoutOptionsMask" type="CARD16" mask="AXOption" /> 1244f591e195Smrg <field name="accessXTimeoutOptionsValues" type="CARD16" mask="AXOption" /> 1245986c8b3dSmrg <pad bytes="2" /> 1246f591e195Smrg <field name="accessXTimeoutMask" type="CARD32" mask="BoolCtrl" /> 1247f591e195Smrg <field name="accessXTimeoutValues" type="CARD32" mask="BoolCtrl" /> 1248f591e195Smrg <field name="enabledControls" type="CARD32" mask="BoolCtrl" /> 1249986c8b3dSmrg <list name="perKeyRepeat" type="CARD8"> 1250986c8b3dSmrg <value>32</value> 1251986c8b3dSmrg </list> 1252986c8b3dSmrg </reply> 1253986c8b3dSmrg </request> 1254986c8b3dSmrg 1255986c8b3dSmrg <request name="SetControls" opcode="7"> 1256986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 1257986c8b3dSmrg <field name="affectInternalRealMods" type="CARD8" mask="ModMask" /> 1258986c8b3dSmrg <field name="internalRealMods" type="CARD8" mask="ModMask" /> 1259986c8b3dSmrg <field name="affectIgnoreLockRealMods" type="CARD8" mask="ModMask" /> 1260986c8b3dSmrg <field name="ignoreLockRealMods" type="CARD8" mask="ModMask" /> 1261986c8b3dSmrg <field name="affectInternalVirtualMods" type="CARD16" mask="VMod" /> 1262986c8b3dSmrg <field name="internalVirtualMods" type="CARD16" mask="VMod" /> 1263986c8b3dSmrg <field name="affectIgnoreLockVirtualMods" type="CARD16" mask="VMod" /> 1264986c8b3dSmrg <field name="ignoreLockVirtualMods" type="CARD16" mask="VMod" /> 1265986c8b3dSmrg <field name="mouseKeysDfltBtn" type="CARD8" /> 1266986c8b3dSmrg <field name="groupsWrap" type="CARD8" /> 1267f591e195Smrg <field name="accessXOptions" type="CARD16" mask="AXOption" /> 1268986c8b3dSmrg <pad bytes="2" /> 1269f591e195Smrg <field name="affectEnabledControls" type="CARD32" mask="BoolCtrl" /> 1270f591e195Smrg <field name="enabledControls" type="CARD32" mask="BoolCtrl" /> 1271986c8b3dSmrg <field name="changeControls" type="CARD32" mask="Control" /> 1272986c8b3dSmrg <field name="repeatDelay" type="CARD16" /> 1273986c8b3dSmrg <field name="repeatInterval" type="CARD16" /> 1274986c8b3dSmrg <field name="slowKeysDelay" type="CARD16" /> 1275986c8b3dSmrg <field name="debounceDelay" type="CARD16" /> 1276986c8b3dSmrg <field name="mouseKeysDelay" type="CARD16" /> 1277986c8b3dSmrg <field name="mouseKeysInterval" type="CARD16" /> 1278986c8b3dSmrg <field name="mouseKeysTimeToMax" type="CARD16" /> 1279986c8b3dSmrg <field name="mouseKeysMaxSpeed" type="CARD16" /> 1280986c8b3dSmrg <field name="mouseKeysCurve" type="INT16" /> 1281986c8b3dSmrg <field name="accessXTimeout" type="CARD16" /> 1282f591e195Smrg <field name="accessXTimeoutMask" type="CARD32" mask="BoolCtrl" /> 1283f591e195Smrg <field name="accessXTimeoutValues" type="CARD32" mask="BoolCtrl" /> 1284f591e195Smrg <field name="accessXTimeoutOptionsMask" type="CARD16" mask="AXOption" /> 1285f591e195Smrg <field name="accessXTimeoutOptionsValues" type="CARD16" mask="AXOption" /> 1286986c8b3dSmrg <list name="perKeyRepeat" type="CARD8"> 1287986c8b3dSmrg <value>32</value> 1288986c8b3dSmrg </list> 1289986c8b3dSmrg </request> 1290986c8b3dSmrg 1291986c8b3dSmrg <request name="GetMap" opcode="8"> 1292986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 1293f591e195Smrg <field name="full" type="CARD16" mask="MapPart" /> 1294f591e195Smrg <field name="partial" type="CARD16" mask="MapPart" /> 1295986c8b3dSmrg <field name="firstType" type="CARD8" /> 1296986c8b3dSmrg <field name="nTypes" type="CARD8" /> 1297986c8b3dSmrg <field name="firstKeySym" type="KEYCODE" /> 1298986c8b3dSmrg <field name="nKeySyms" type="CARD8" /> 1299986c8b3dSmrg <field name="firstKeyAction" type="KEYCODE" /> 1300986c8b3dSmrg <field name="nKeyActions" type="CARD8" /> 1301986c8b3dSmrg <field name="firstKeyBehavior" type="KEYCODE" /> 1302986c8b3dSmrg <field name="nKeyBehaviors" type="CARD8" /> 1303986c8b3dSmrg <field name="virtualMods" type="CARD16" mask="VMod" /> 1304986c8b3dSmrg <field name="firstKeyExplicit" type="KEYCODE" /> 1305986c8b3dSmrg <field name="nKeyExplicit" type="CARD8" /> 1306986c8b3dSmrg <field name="firstModMapKey" type="KEYCODE" /> 1307986c8b3dSmrg <field name="nModMapKeys" type="CARD8" /> 1308986c8b3dSmrg <field name="firstVModMapKey" type="KEYCODE" /> 1309986c8b3dSmrg <field name="nVModMapKeys" type="CARD8" /> 1310986c8b3dSmrg <pad bytes="2" /> 1311986c8b3dSmrg <reply> 1312986c8b3dSmrg <field name="deviceID" type="CARD8" /> 1313986c8b3dSmrg <pad bytes="2" /> 1314986c8b3dSmrg <field name="minKeyCode" type="KEYCODE" /> 1315986c8b3dSmrg <field name="maxKeyCode" type="KEYCODE" /> 1316f591e195Smrg <field name="present" type="CARD16" mask="MapPart" /> 1317986c8b3dSmrg <field name="firstType" type="CARD8" /> 1318986c8b3dSmrg <field name="nTypes" type="CARD8" /> 1319986c8b3dSmrg <field name="totalTypes" type="CARD8" /> 1320986c8b3dSmrg <field name="firstKeySym" type="KEYCODE" /> 1321986c8b3dSmrg <field name="totalSyms" type="CARD16" /> 1322986c8b3dSmrg <field name="nKeySyms" type="CARD8" /> 1323986c8b3dSmrg <field name="firstKeyAction" type="KEYCODE" /> 1324986c8b3dSmrg <field name="totalActions" type="CARD16" /> 1325986c8b3dSmrg <field name="nKeyActions" type="CARD8" /> 1326986c8b3dSmrg <field name="firstKeyBehavior" type="KEYCODE" /> 1327986c8b3dSmrg <field name="nKeyBehaviors" type="CARD8" /> 1328986c8b3dSmrg <field name="totalKeyBehaviors" type="CARD8" /> 1329986c8b3dSmrg <field name="firstKeyExplicit" type="KEYCODE" /> 1330986c8b3dSmrg <field name="nKeyExplicit" type="CARD8" /> 1331986c8b3dSmrg <field name="totalKeyExplicit" type="CARD8" /> 1332986c8b3dSmrg <field name="firstModMapKey" type="KEYCODE" /> 1333986c8b3dSmrg <field name="nModMapKeys" type="CARD8" /> 1334986c8b3dSmrg <field name="totalModMapKeys" type="CARD8" /> 1335986c8b3dSmrg <field name="firstVModMapKey" type="KEYCODE" /> 1336986c8b3dSmrg <field name="nVModMapKeys" type="CARD8" /> 1337986c8b3dSmrg <field name="totalVModMapKeys" type="CARD8" /> 1338986c8b3dSmrg <pad bytes="1" /> 1339986c8b3dSmrg <field name="virtualMods" type="CARD16" mask="VMod" /> 1340986c8b3dSmrg <switch name="map"> 1341986c8b3dSmrg <fieldref>present</fieldref> 1342986c8b3dSmrg <bitcase> 1343986c8b3dSmrg <enumref ref="MapPart">KeyTypes</enumref> 1344986c8b3dSmrg <list name="types_rtrn" type="KeyType"> 1345986c8b3dSmrg <fieldref>nTypes</fieldref> 1346986c8b3dSmrg </list> 1347986c8b3dSmrg </bitcase> 1348986c8b3dSmrg <bitcase> 1349986c8b3dSmrg <enumref ref="MapPart">KeySyms</enumref> 1350986c8b3dSmrg <list name="syms_rtrn" type="KeySymMap"> 1351986c8b3dSmrg <fieldref>nKeySyms</fieldref> 1352986c8b3dSmrg </list> 1353986c8b3dSmrg </bitcase> 1354986c8b3dSmrg <bitcase> 1355986c8b3dSmrg <enumref ref="MapPart">KeyActions</enumref> 1356986c8b3dSmrg <list name="acts_rtrn_count" type="CARD8"> 1357986c8b3dSmrg <fieldref>nKeyActions</fieldref> 1358986c8b3dSmrg </list> 1359891601f5Smrg <pad align="4" serialize="true"/> 1360986c8b3dSmrg <list name="acts_rtrn_acts" type="Action"> 1361986c8b3dSmrg <fieldref>totalActions</fieldref> 1362986c8b3dSmrg </list> 1363986c8b3dSmrg </bitcase> 1364986c8b3dSmrg <bitcase> 1365986c8b3dSmrg <enumref ref="MapPart">KeyBehaviors</enumref> 1366986c8b3dSmrg <list name="behaviors_rtrn" type="SetBehavior"> 1367986c8b3dSmrg <fieldref>totalKeyBehaviors</fieldref> 1368986c8b3dSmrg </list> 1369986c8b3dSmrg </bitcase> 1370986c8b3dSmrg <bitcase> 1371986c8b3dSmrg <enumref ref="MapPart">VirtualMods</enumref> 1372986c8b3dSmrg <list name="vmods_rtrn" type="CARD8" mask="ModMask"> 1373f591e195Smrg <popcount><fieldref>virtualMods</fieldref></popcount> 1374f591e195Smrg </list> 1375891601f5Smrg <pad align="4" serialize="true" /> 1376986c8b3dSmrg </bitcase> 1377986c8b3dSmrg <bitcase> 1378986c8b3dSmrg <enumref ref="MapPart">ExplicitComponents</enumref> 1379986c8b3dSmrg <list name="explicit_rtrn" type="SetExplicit"> 1380986c8b3dSmrg <fieldref>totalKeyExplicit</fieldref> 1381986c8b3dSmrg </list> 1382891601f5Smrg <pad align="4" serialize="true" /> 1383986c8b3dSmrg </bitcase> 1384986c8b3dSmrg <bitcase> 1385986c8b3dSmrg <enumref ref="MapPart">ModifierMap</enumref> 1386986c8b3dSmrg <list name="modmap_rtrn" type="KeyModMap"> 1387986c8b3dSmrg <fieldref>totalModMapKeys</fieldref> 1388986c8b3dSmrg </list> 1389891601f5Smrg <pad align="4" serialize="true" /> 1390986c8b3dSmrg </bitcase> 1391986c8b3dSmrg <bitcase> 1392986c8b3dSmrg <enumref ref="MapPart">VirtualModMap</enumref> 1393986c8b3dSmrg <list name="vmodmap_rtrn" type="KeyVModMap"> 1394986c8b3dSmrg <fieldref>totalVModMapKeys</fieldref> 1395986c8b3dSmrg </list> 1396986c8b3dSmrg </bitcase> 1397986c8b3dSmrg </switch> 1398986c8b3dSmrg </reply> 1399986c8b3dSmrg </request> 1400986c8b3dSmrg 1401986c8b3dSmrg <request name="SetMap" opcode="9"> 1402986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 1403f591e195Smrg <field name="present" type="CARD16" mask="MapPart" /> 1404986c8b3dSmrg <field name="flags" type="CARD16" mask="SetMapFlags" /> 1405986c8b3dSmrg <field name="minKeyCode" type="KEYCODE" /> 1406986c8b3dSmrg <field name="maxKeyCode" type="KEYCODE" /> 1407986c8b3dSmrg <field name="firstType" type="CARD8" /> 1408986c8b3dSmrg <field name="nTypes" type="CARD8" /> 1409986c8b3dSmrg <field name="firstKeySym" type="KEYCODE" /> 1410986c8b3dSmrg <field name="nKeySyms" type="CARD8" /> 1411986c8b3dSmrg <field name="totalSyms" type="CARD16" /> 1412986c8b3dSmrg <field name="firstKeyAction" type="KEYCODE" /> 1413986c8b3dSmrg <field name="nKeyActions" type="CARD8" /> 1414986c8b3dSmrg <field name="totalActions" type="CARD16" /> 1415986c8b3dSmrg <field name="firstKeyBehavior" type="KEYCODE" /> 1416986c8b3dSmrg <field name="nKeyBehaviors" type="CARD8" /> 1417986c8b3dSmrg <field name="totalKeyBehaviors" type="CARD8" /> 1418986c8b3dSmrg <field name="firstKeyExplicit" type="KEYCODE" /> 1419986c8b3dSmrg <field name="nKeyExplicit" type="CARD8" /> 1420986c8b3dSmrg <field name="totalKeyExplicit" type="CARD8" /> 1421986c8b3dSmrg <field name="firstModMapKey" type="KEYCODE" /> 1422986c8b3dSmrg <field name="nModMapKeys" type="CARD8" /> 1423986c8b3dSmrg <field name="totalModMapKeys" type="CARD8" /> 1424986c8b3dSmrg <field name="firstVModMapKey" type="KEYCODE" /> 1425986c8b3dSmrg <field name="nVModMapKeys" type="CARD8" /> 1426986c8b3dSmrg <field name="totalVModMapKeys" type="CARD8" /> 1427986c8b3dSmrg <field name="virtualMods" type="CARD16" mask="VMod" /> 1428986c8b3dSmrg <switch name="values"> 1429986c8b3dSmrg <fieldref>present</fieldref> 1430986c8b3dSmrg <bitcase> 1431986c8b3dSmrg <enumref ref="MapPart">KeyTypes</enumref> 1432986c8b3dSmrg <list name="types" type="SetKeyType"> 1433986c8b3dSmrg <fieldref>nTypes</fieldref> 1434986c8b3dSmrg </list> 1435986c8b3dSmrg </bitcase> 1436986c8b3dSmrg <bitcase> 1437986c8b3dSmrg <enumref ref="MapPart">KeySyms</enumref> 1438986c8b3dSmrg <list name="syms" type="KeySymMap"> 1439986c8b3dSmrg <fieldref>nKeySyms</fieldref> 1440986c8b3dSmrg </list> 1441986c8b3dSmrg </bitcase> 1442986c8b3dSmrg <bitcase> 1443986c8b3dSmrg <enumref ref="MapPart">KeyActions</enumref> 1444986c8b3dSmrg <list name="actionsCount" type="CARD8"> 1445986c8b3dSmrg <fieldref>nKeyActions</fieldref> 1446986c8b3dSmrg </list> 1447891601f5Smrg <pad align="4" /> 1448986c8b3dSmrg <list name="actions" type="Action"> 1449986c8b3dSmrg <fieldref>totalActions</fieldref> 1450986c8b3dSmrg </list> 1451986c8b3dSmrg </bitcase> 1452986c8b3dSmrg <bitcase> 1453986c8b3dSmrg <enumref ref="MapPart">KeyBehaviors</enumref> 1454986c8b3dSmrg <list name="behaviors" type="SetBehavior"> 1455986c8b3dSmrg <fieldref>totalKeyBehaviors</fieldref> 1456986c8b3dSmrg </list> 1457986c8b3dSmrg </bitcase> 1458986c8b3dSmrg <bitcase> 1459986c8b3dSmrg <enumref ref="MapPart">VirtualMods</enumref> 1460986c8b3dSmrg <list name="vmods" type="CARD8"> 1461f591e195Smrg <popcount><fieldref>virtualMods</fieldref></popcount> 1462986c8b3dSmrg </list> 1463891601f5Smrg <pad align="4" /> 1464986c8b3dSmrg </bitcase> 1465986c8b3dSmrg <bitcase> 1466986c8b3dSmrg <enumref ref="MapPart">ExplicitComponents</enumref> 1467986c8b3dSmrg <list name="explicit" type="SetExplicit"> 1468986c8b3dSmrg <fieldref>totalKeyExplicit</fieldref> 1469986c8b3dSmrg </list> 1470986c8b3dSmrg </bitcase> 1471986c8b3dSmrg <bitcase> 1472986c8b3dSmrg <enumref ref="MapPart">ModifierMap</enumref> 1473986c8b3dSmrg <list name="modmap" type="KeyModMap"> 1474986c8b3dSmrg <fieldref>totalModMapKeys</fieldref> 1475986c8b3dSmrg </list> 1476986c8b3dSmrg </bitcase> 1477986c8b3dSmrg <bitcase> 1478986c8b3dSmrg <enumref ref="MapPart">VirtualModMap</enumref> 1479986c8b3dSmrg <list name="vmodmap" type="KeyVModMap"> 1480986c8b3dSmrg <fieldref>totalVModMapKeys</fieldref> 1481986c8b3dSmrg </list> 1482986c8b3dSmrg </bitcase> 1483986c8b3dSmrg </switch> 1484986c8b3dSmrg </request> 1485986c8b3dSmrg 1486986c8b3dSmrg <request name="GetCompatMap" opcode="10"> 1487986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 1488986c8b3dSmrg <field name="groups" type="CARD8" mask="SetOfGroup" /> 1489986c8b3dSmrg <field name="getAllSI" type="BOOL" /> 1490986c8b3dSmrg <field name="firstSI" type="CARD16" /> 1491986c8b3dSmrg <field name="nSI" type="CARD16" /> 1492986c8b3dSmrg <reply> 1493986c8b3dSmrg <field name="deviceID" type="CARD8" /> 1494986c8b3dSmrg <field name="groupsRtrn" type="CARD8" mask="SetOfGroup" /> 1495986c8b3dSmrg <pad bytes="1" /> 1496986c8b3dSmrg <field name="firstSIRtrn" type="CARD16" /> 1497986c8b3dSmrg <field name="nSIRtrn" type="CARD16" /> 1498986c8b3dSmrg <field name="nTotalSI" type="CARD16" /> 1499986c8b3dSmrg <pad bytes="16" /> 1500f591e195Smrg <list name="si_rtrn" type="SymInterpret"> 1501f591e195Smrg <fieldref>nSIRtrn</fieldref> 1502986c8b3dSmrg </list> 1503986c8b3dSmrg <list name="group_rtrn" type="ModDef"> 1504986c8b3dSmrg <popcount> 1505986c8b3dSmrg <fieldref>groupsRtrn</fieldref> 1506986c8b3dSmrg </popcount> 1507986c8b3dSmrg </list> 1508986c8b3dSmrg </reply> 1509986c8b3dSmrg </request> 1510986c8b3dSmrg 1511986c8b3dSmrg <request name="SetCompatMap" opcode="11"> 1512986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 1513986c8b3dSmrg <pad bytes="1" /> 1514986c8b3dSmrg <field name="recomputeActions" type="BOOL" /> 1515986c8b3dSmrg <field name="truncateSI" type="BOOL" /> 1516986c8b3dSmrg <field name="groups" type="CARD8" mask="SetOfGroup" /> 1517986c8b3dSmrg <field name="firstSI" type="CARD16" /> 1518986c8b3dSmrg <field name="nSI" type="CARD16" /> 1519986c8b3dSmrg <pad bytes="2"/> 1520f591e195Smrg <list name="si" type="SymInterpret"> 1521f591e195Smrg <fieldref>nSI</fieldref> 1522986c8b3dSmrg </list> 1523986c8b3dSmrg <list name="groupMaps" type="ModDef"> 1524986c8b3dSmrg <popcount> 1525986c8b3dSmrg <fieldref>groups</fieldref> 1526986c8b3dSmrg </popcount> 1527986c8b3dSmrg </list> 1528986c8b3dSmrg </request> 1529986c8b3dSmrg 1530986c8b3dSmrg <request name="GetIndicatorState" opcode="12"> 1531986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 1532986c8b3dSmrg <pad bytes="2" /> 1533986c8b3dSmrg <reply> 1534986c8b3dSmrg <field name="deviceID" type="CARD8" /> 1535986c8b3dSmrg <field name="state" type="CARD32" /> 1536986c8b3dSmrg <pad bytes="20" /> 1537986c8b3dSmrg </reply> 1538986c8b3dSmrg </request> 1539986c8b3dSmrg 1540986c8b3dSmrg <request name="GetIndicatorMap" opcode="13"> 1541986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 1542986c8b3dSmrg <pad bytes="2" /> 1543986c8b3dSmrg <field name="which" type="CARD32" /> 1544986c8b3dSmrg <reply> 1545986c8b3dSmrg <field name="deviceID" type="CARD8" /> 1546986c8b3dSmrg <field name="which" type="CARD32" /> 1547986c8b3dSmrg <field name="realIndicators" type="CARD32" /> 1548986c8b3dSmrg <field name="nIndicators" type="CARD8" /> 1549986c8b3dSmrg <pad bytes="15" /> 1550986c8b3dSmrg <list name="maps" type="IndicatorMap"> 1551f591e195Smrg <popcount><fieldref>which</fieldref></popcount> 1552986c8b3dSmrg </list> 1553986c8b3dSmrg </reply> 1554986c8b3dSmrg </request> 1555986c8b3dSmrg 1556986c8b3dSmrg <request name="SetIndicatorMap" opcode="14"> 1557986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 1558986c8b3dSmrg <pad bytes="2" /> 1559986c8b3dSmrg <field name="which" type="CARD32" /> 1560986c8b3dSmrg <list name="maps" type="IndicatorMap"> 1561986c8b3dSmrg <popcount> 1562986c8b3dSmrg <fieldref>which</fieldref> 1563986c8b3dSmrg </popcount> 1564986c8b3dSmrg </list> 1565986c8b3dSmrg </request> 1566986c8b3dSmrg 1567986c8b3dSmrg <request name="GetNamedIndicator" opcode="15"> 1568986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 1569986c8b3dSmrg <field name="ledClass" type="LedClassSpec" enum="LedClass" /> 1570986c8b3dSmrg <field name="ledID" type="IDSpec" altenum="ID" /> 1571986c8b3dSmrg <pad bytes="2" /> 1572986c8b3dSmrg <field name="indicator" type="ATOM" /> 1573986c8b3dSmrg <reply> 1574986c8b3dSmrg <field name="deviceID" type="CARD8" /> 1575986c8b3dSmrg <field name="indicator" type="ATOM" /> 1576986c8b3dSmrg <field name="found" type="BOOL" /> 1577986c8b3dSmrg <field name="on" type="BOOL" /> 1578986c8b3dSmrg <field name="realIndicator" type="BOOL" /> 1579986c8b3dSmrg <field name="ndx" type="CARD8" /> 1580986c8b3dSmrg <field name="map_flags" type="CARD8" mask="IMFlag" /> 1581986c8b3dSmrg <field name="map_whichGroups" type="CARD8" mask="IMGroupsWhich" /> 1582986c8b3dSmrg <field name="map_groups" type="CARD8" mask="SetOfGroups" /> 1583986c8b3dSmrg <field name="map_whichMods" type="CARD8" mask="IMModsWhich" /> 1584986c8b3dSmrg <field name="map_mods" type="CARD8" mask="ModMask" /> 1585986c8b3dSmrg <field name="map_realMods" type="CARD8" mask="ModMask" /> 1586986c8b3dSmrg <field name="map_vmod" type="CARD16" mask="VMod" /> 1587986c8b3dSmrg <field name="map_ctrls" type="CARD32" mask="BoolCtrl" /> 1588f591e195Smrg <field name="supported" type="BOOL" /> 1589986c8b3dSmrg <pad bytes="3" /> 1590986c8b3dSmrg </reply> 1591986c8b3dSmrg </request> 1592986c8b3dSmrg 1593986c8b3dSmrg <request name="SetNamedIndicator" opcode="16" > 1594986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 1595986c8b3dSmrg <field name="ledClass" type="LedClassSpec" enum="LedClass" /> 1596986c8b3dSmrg <field name="ledID" type="IDSpec" altenum="ID" /> 1597986c8b3dSmrg <pad bytes="2" /> 1598986c8b3dSmrg <field name="indicator" type="ATOM" /> 1599986c8b3dSmrg <field name="setState" type="BOOL" /> 1600986c8b3dSmrg <field name="on" type="BOOL" /> 1601986c8b3dSmrg <field name="setMap" type="BOOL" /> 1602986c8b3dSmrg <field name="createMap" type="BOOL" /> 1603986c8b3dSmrg <pad bytes="1" /> 1604986c8b3dSmrg <field name="map_flags" type="CARD8" mask="IMFlag" /> 1605986c8b3dSmrg <field name="map_whichGroups" type="CARD8" mask="IMGroupsWhich" /> 1606986c8b3dSmrg <field name="map_groups" type="CARD8" mask="SetOfGroups" /> 1607986c8b3dSmrg <field name="map_whichMods" type="CARD8" mask="IMModsWhich" /> 1608986c8b3dSmrg <field name="map_realMods" type="CARD8" mask="ModMask" /> 1609986c8b3dSmrg <field name="map_vmods" type="CARD16" mask="VMod" /> 1610986c8b3dSmrg <field name="map_ctrls" type="CARD32" mask="BoolCtrl" /> 1611986c8b3dSmrg </request> 1612986c8b3dSmrg 1613986c8b3dSmrg <request name="GetNames" opcode="17"> 1614986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 1615986c8b3dSmrg <pad bytes="2" /> 1616986c8b3dSmrg <field name="which" type="CARD32" mask="NameDetail" /> 1617986c8b3dSmrg <reply> 1618986c8b3dSmrg <field name="deviceID" type="CARD8" /> 1619986c8b3dSmrg <field name="which" type="CARD32" mask="NameDetail" /> 1620986c8b3dSmrg <field name="minKeyCode" type="KEYCODE" /> 1621986c8b3dSmrg <field name="maxKeyCode" type="KEYCODE" /> 1622986c8b3dSmrg <field name="nTypes" type="CARD8" /> 1623986c8b3dSmrg <field name="groupNames" type="CARD8" mask="SetOfGroup" /> 1624986c8b3dSmrg <field name="virtualMods" type="CARD16" mask="VMod" /> 1625986c8b3dSmrg <field name="firstKey" type="KEYCODE" /> 1626986c8b3dSmrg <field name="nKeys" type="CARD8" /> 1627986c8b3dSmrg <field name="indicators" type="CARD32" /> 1628986c8b3dSmrg <field name="nRadioGroups" type="CARD8" /> 1629986c8b3dSmrg <field name="nKeyAliases" type="CARD8" /> 1630986c8b3dSmrg <field name="nKTLevels" type="CARD16" /> 1631986c8b3dSmrg <pad bytes="4" /> 1632986c8b3dSmrg <switch name="valueList"> 1633986c8b3dSmrg <fieldref>which</fieldref> 1634986c8b3dSmrg <bitcase> 1635986c8b3dSmrg <enumref ref="NameDetail">Keycodes</enumref> 1636986c8b3dSmrg <field name="keycodesName" type="ATOM" /> 1637986c8b3dSmrg </bitcase> 1638986c8b3dSmrg <bitcase> 1639986c8b3dSmrg <enumref ref="NameDetail">Geometry</enumref> 1640986c8b3dSmrg <field name="geometryName" type="ATOM" /> 1641986c8b3dSmrg </bitcase> 1642986c8b3dSmrg <bitcase> 1643986c8b3dSmrg <enumref ref="NameDetail">Symbols</enumref> 1644986c8b3dSmrg <field name="symbolsName" type="ATOM" /> 1645986c8b3dSmrg </bitcase> 1646986c8b3dSmrg <bitcase> 1647986c8b3dSmrg <enumref ref="NameDetail">PhysSymbols</enumref> 1648986c8b3dSmrg <field name="physSymbolsName" type="ATOM" /> 1649986c8b3dSmrg </bitcase> 1650986c8b3dSmrg <bitcase> 1651986c8b3dSmrg <enumref ref="NameDetail">Types</enumref> 1652986c8b3dSmrg <field name="typesName" type="ATOM" /> 1653986c8b3dSmrg </bitcase> 1654986c8b3dSmrg <bitcase> 1655986c8b3dSmrg <enumref ref="NameDetail">Compat</enumref> 1656986c8b3dSmrg <field name="compatName" type="ATOM" /> 1657986c8b3dSmrg </bitcase> 1658986c8b3dSmrg <bitcase> 1659986c8b3dSmrg <enumref ref="NameDetail">KeyTypeNames</enumref> 1660986c8b3dSmrg <list name="typeNames" type="ATOM"> 1661986c8b3dSmrg <fieldref>nTypes</fieldref> 1662986c8b3dSmrg </list> 1663986c8b3dSmrg </bitcase> 1664986c8b3dSmrg <bitcase> 1665986c8b3dSmrg <enumref ref="NameDetail">KTLevelNames</enumref> 1666986c8b3dSmrg <list name="nLevelsPerType" type="CARD8"> 1667986c8b3dSmrg <!-- Xlib uses NTypes here - 1668986c8b3dSmrg the spec says nKTLevels is correct, but 1669986c8b3dSmrg it does not work in reality 1670986c8b3dSmrg <fieldref>nKTLevels</fieldref> --> 1671986c8b3dSmrg <fieldref>nTypes</fieldref> 1672986c8b3dSmrg </list> 1673891601f5Smrg <pad align="4" serialize="true" /> 1674986c8b3dSmrg <list name="ktLevelNames" type="ATOM"> 1675986c8b3dSmrg <sumof ref="nLevelsPerType" /> 1676986c8b3dSmrg </list> 1677986c8b3dSmrg </bitcase> 1678986c8b3dSmrg <bitcase> 1679986c8b3dSmrg <enumref ref="NameDetail">IndicatorNames</enumref> 1680986c8b3dSmrg <list name="indicatorNames" type="ATOM"> 1681986c8b3dSmrg <popcount> 1682986c8b3dSmrg <fieldref>indicators</fieldref> 1683986c8b3dSmrg </popcount> 1684986c8b3dSmrg </list> 1685986c8b3dSmrg </bitcase> 1686986c8b3dSmrg <bitcase> 1687986c8b3dSmrg <enumref ref="NameDetail">VirtualModNames</enumref> 1688986c8b3dSmrg <list name="virtualModNames" type="ATOM"> 1689986c8b3dSmrg <popcount> 1690986c8b3dSmrg <fieldref>virtualMods</fieldref> 1691986c8b3dSmrg </popcount> 1692986c8b3dSmrg </list> 1693986c8b3dSmrg </bitcase> 1694986c8b3dSmrg <bitcase> 1695986c8b3dSmrg <enumref ref="NameDetail">GroupNames</enumref> 1696986c8b3dSmrg <list name="groups" type="ATOM"> 1697986c8b3dSmrg <popcount> 1698986c8b3dSmrg <fieldref>groupNames</fieldref> 1699986c8b3dSmrg </popcount> 1700986c8b3dSmrg </list> 1701986c8b3dSmrg </bitcase> 1702986c8b3dSmrg <bitcase> 1703986c8b3dSmrg <enumref ref="NameDetail">KeyNames</enumref> 1704986c8b3dSmrg <list name="keyNames" type="KeyName"> 1705986c8b3dSmrg <fieldref>nKeys</fieldref> 1706986c8b3dSmrg </list> 1707986c8b3dSmrg </bitcase> 1708986c8b3dSmrg <bitcase> 1709986c8b3dSmrg <enumref ref="NameDetail">KeyAliases</enumref> 1710986c8b3dSmrg <list name="keyAliases" type="KeyAlias"> 1711986c8b3dSmrg <fieldref>nKeyAliases</fieldref> 1712986c8b3dSmrg </list> 1713986c8b3dSmrg </bitcase> 1714986c8b3dSmrg <bitcase> 1715986c8b3dSmrg <enumref ref="NameDetail">RGNames</enumref> 1716986c8b3dSmrg <list name="radioGroupNames" type="ATOM"> 1717986c8b3dSmrg <fieldref>nRadioGroups</fieldref> 1718986c8b3dSmrg </list> 1719986c8b3dSmrg </bitcase> 1720986c8b3dSmrg </switch> 1721986c8b3dSmrg </reply> 1722986c8b3dSmrg </request> 1723986c8b3dSmrg 1724986c8b3dSmrg <request name="SetNames" opcode="18"> 1725986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 1726986c8b3dSmrg <field name="virtualMods" type="CARD16" mask="VMod" /> 1727986c8b3dSmrg <field name="which" type="CARD32" mask="NameDetail" /> 1728986c8b3dSmrg <field name="firstType" type="CARD8" /> 1729986c8b3dSmrg <field name="nTypes" type="CARD8" /> 1730986c8b3dSmrg <field name="firstKTLevelt" type="CARD8" /> 1731986c8b3dSmrg <field name="nKTLevels" type="CARD8" /> 1732986c8b3dSmrg <field name="indicators" type="CARD32" /> 1733986c8b3dSmrg <field name="groupNames" type="CARD8" mask="SetOfGroup" /> 1734986c8b3dSmrg <field name="nRadioGroups" type="CARD8" /> 1735986c8b3dSmrg <field name="firstKey" type="KEYCODE" /> 1736986c8b3dSmrg <field name="nKeys" type="CARD8" /> 1737986c8b3dSmrg <field name="nKeyAliases" type="CARD8"/> 1738986c8b3dSmrg <pad bytes="1" /> 1739986c8b3dSmrg <field name="totalKTLevelNames" type="CARD16" /> 1740986c8b3dSmrg <switch name="values"> 1741986c8b3dSmrg <fieldref>which</fieldref> 1742986c8b3dSmrg <bitcase> 1743986c8b3dSmrg <enumref ref="NameDetail">Keycodes</enumref> 1744986c8b3dSmrg <field name="keycodesName" type="ATOM" /> 1745986c8b3dSmrg </bitcase> 1746986c8b3dSmrg <bitcase> 1747986c8b3dSmrg <enumref ref="NameDetail">Geometry</enumref> 1748986c8b3dSmrg <field name="geometryName" type="ATOM" /> 1749986c8b3dSmrg </bitcase> 1750986c8b3dSmrg <bitcase> 1751986c8b3dSmrg <enumref ref="NameDetail">Symbols</enumref> 1752986c8b3dSmrg <field name="symbolsName" type="ATOM" /> 1753986c8b3dSmrg </bitcase> 1754986c8b3dSmrg <bitcase> 1755986c8b3dSmrg <enumref ref="NameDetail">PhysSymbols</enumref> 1756986c8b3dSmrg <field name="physSymbolsName" type="ATOM" /> 1757986c8b3dSmrg </bitcase> 1758986c8b3dSmrg <bitcase> 1759986c8b3dSmrg <enumref ref="NameDetail">Types</enumref> 1760986c8b3dSmrg <field name="typesName" type="ATOM" /> 1761986c8b3dSmrg </bitcase> 1762986c8b3dSmrg <bitcase> 1763986c8b3dSmrg <enumref ref="NameDetail">Compat</enumref> 1764986c8b3dSmrg <field name="compatName" type="ATOM" /> 1765986c8b3dSmrg </bitcase> 1766986c8b3dSmrg <bitcase> 1767986c8b3dSmrg <enumref ref="NameDetail">KeyTypeNames</enumref> 1768986c8b3dSmrg <list name="typeNames" type="ATOM"> 1769986c8b3dSmrg <fieldref>nTypes</fieldref> 1770986c8b3dSmrg </list> 1771986c8b3dSmrg </bitcase> 1772986c8b3dSmrg <bitcase> 1773986c8b3dSmrg <enumref ref="NameDetail">KTLevelNames</enumref> 1774986c8b3dSmrg <list name="nLevelsPerType" type="CARD8"> 1775b26960f7Smrg <fieldref>nTypes</fieldref> 1776986c8b3dSmrg </list> 1777891601f5Smrg <pad align="4"/> 1778986c8b3dSmrg <list name="ktLevelNames" type="ATOM"> 1779986c8b3dSmrg <sumof ref="nLevelsPerType" /> 1780986c8b3dSmrg </list> 1781986c8b3dSmrg </bitcase> 1782986c8b3dSmrg <bitcase> 1783986c8b3dSmrg <enumref ref="NameDetail">IndicatorNames</enumref> 1784986c8b3dSmrg <list name="indicatorNames" type="ATOM"> 1785986c8b3dSmrg <popcount> 1786986c8b3dSmrg <fieldref>indicators</fieldref> 1787986c8b3dSmrg </popcount> 1788986c8b3dSmrg </list> 1789986c8b3dSmrg </bitcase> 1790986c8b3dSmrg <bitcase> 1791986c8b3dSmrg <enumref ref="NameDetail">VirtualModNames</enumref> 1792986c8b3dSmrg <list name="virtualModNames" type="ATOM"> 1793986c8b3dSmrg <popcount> 1794986c8b3dSmrg <fieldref>virtualMods</fieldref> 1795986c8b3dSmrg </popcount> 1796986c8b3dSmrg </list> 1797986c8b3dSmrg </bitcase> 1798986c8b3dSmrg <bitcase> 1799986c8b3dSmrg <enumref ref="NameDetail">GroupNames</enumref> 1800986c8b3dSmrg <list name="groups" type="ATOM"> 1801986c8b3dSmrg <popcount> 1802986c8b3dSmrg <fieldref>groupNames</fieldref> 1803986c8b3dSmrg </popcount> 1804986c8b3dSmrg </list> 1805986c8b3dSmrg </bitcase> 1806986c8b3dSmrg <bitcase> 1807986c8b3dSmrg <enumref ref="NameDetail">KeyNames</enumref> 1808986c8b3dSmrg <list name="keyNames" type="KeyName"> 1809986c8b3dSmrg <fieldref>nKeys</fieldref> 1810986c8b3dSmrg </list> 1811986c8b3dSmrg </bitcase> 1812986c8b3dSmrg <bitcase> 1813986c8b3dSmrg <enumref ref="NameDetail">KeyAliases</enumref> 1814986c8b3dSmrg <list name="keyAliases" type="KeyAlias"> 1815986c8b3dSmrg <fieldref>nKeyAliases</fieldref> 1816986c8b3dSmrg </list> 1817986c8b3dSmrg </bitcase> 1818986c8b3dSmrg <bitcase> 1819986c8b3dSmrg <enumref ref="NameDetail">RGNames</enumref> 1820986c8b3dSmrg <list name="radioGroupNames" type="ATOM"> 1821986c8b3dSmrg <fieldref>nRadioGroups</fieldref> 1822986c8b3dSmrg </list> 1823986c8b3dSmrg </bitcase> 1824986c8b3dSmrg </switch> 1825986c8b3dSmrg </request> 1826986c8b3dSmrg 1827f591e195Smrg <!-- XXX: Property and doodads are broken, which renders GetGeometry useless 1828986c8b3dSmrg <request name="GetGeometry" opcode="19"> 1829986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 1830986c8b3dSmrg <pad bytes="2" /> 1831986c8b3dSmrg <field name="name" type="ATOM" /> 1832986c8b3dSmrg <reply> 1833986c8b3dSmrg <field name="deviceID" type="CARD8" /> 1834986c8b3dSmrg <field name="name" type="ATOM" /> 1835986c8b3dSmrg <field name="found" type="BOOL" /> 1836986c8b3dSmrg <pad bytes="1" /> 1837986c8b3dSmrg <field name="widthMM" type="CARD16" /> 1838986c8b3dSmrg <field name="heightMM" type="CARD16" /> 1839986c8b3dSmrg <field name="nProperties" type="CARD16" /> 1840986c8b3dSmrg <field name="nColors" type="CARD16" /> 1841986c8b3dSmrg <field name="nShapes" type="CARD16" /> 1842986c8b3dSmrg <field name="nSections" type="CARD16" /> 1843986c8b3dSmrg <field name="nDoodads" type="CARD16" /> 1844986c8b3dSmrg <field name="nKeyAliases" type="CARD16" /> 1845986c8b3dSmrg <field name="baseColorNdx" type="CARD8" /> 1846986c8b3dSmrg <field name="labelColorNdx" type="CARD8" /> 1847986c8b3dSmrg <field name="labelFont" type="CountedString16" /> 1848986c8b3dSmrg <list name="properties" type="Property"> 1849986c8b3dSmrg <fieldref>nProperties</fieldref> 1850986c8b3dSmrg </list> 1851986c8b3dSmrg <list name="colors" type="CountedString16"> 1852986c8b3dSmrg <fieldref>nColors</fieldref> 1853986c8b3dSmrg </list> 1854986c8b3dSmrg <list name="shapes" type="Shape"> 1855986c8b3dSmrg <fieldref>nShapes</fieldref> 1856986c8b3dSmrg </list> 1857986c8b3dSmrg <list name="sections" type="Section"> 1858986c8b3dSmrg <fieldref>nSections</fieldref> 1859986c8b3dSmrg </list> 1860986c8b3dSmrg <list name="doodads" type="Doodad"> 1861986c8b3dSmrg <fieldref>nDoodads</fieldref> 1862986c8b3dSmrg </list> 1863986c8b3dSmrg <list name="keyAliases" type="KeyAlias"> 1864986c8b3dSmrg <fieldref>nKeyAliases</fieldref> 1865986c8b3dSmrg </list> 1866986c8b3dSmrg </reply> 1867986c8b3dSmrg </request> 1868f591e195Smrg --> 1869986c8b3dSmrg 1870f591e195Smrg <!-- XXX: Property and doodads are broken, which renders SetGeometry useless 1871986c8b3dSmrg <request name="SetGeometry" opcode="20"> 1872986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 1873986c8b3dSmrg <field name="nShapes" type="CARD8" /> 1874986c8b3dSmrg <field name="nSections" type="CARD8" /> 1875986c8b3dSmrg <field name="name" type="ATOM" /> 1876986c8b3dSmrg <field name="widthMM" type="CARD16" /> 1877986c8b3dSmrg <field name="heightMM" type="CARD16" /> 1878986c8b3dSmrg <field name="nProperties" type="CARD16" /> 1879986c8b3dSmrg <field name="nColors" type="CARD16" /> 1880986c8b3dSmrg <field name="nDoodads" type="CARD16" /> 1881986c8b3dSmrg <field name="nKeyAliases" type="CARD16" /> 1882986c8b3dSmrg <field name="baseColorNdx" type="CARD8" /> 1883986c8b3dSmrg <field name="labelColorNdx" type="CARD8" /> 1884986c8b3dSmrg <pad bytes="2" /> 1885986c8b3dSmrg <field name="labelFont" type="CountedString16" /> 1886986c8b3dSmrg <list name="properties" type="Property"> 1887986c8b3dSmrg <fieldref>nProperties</fieldref> 1888986c8b3dSmrg </list> 1889986c8b3dSmrg <list name="colors" type="CountedString16"> 1890986c8b3dSmrg <fieldref>nColors</fieldref> 1891986c8b3dSmrg </list> 1892986c8b3dSmrg <list name="shapes" type="Shape"> 1893986c8b3dSmrg <fieldref>nShapes</fieldref> 1894986c8b3dSmrg </list> 1895986c8b3dSmrg <list name="sections" type="Section"> 1896986c8b3dSmrg <fieldref>nSections</fieldref> 1897986c8b3dSmrg </list> 1898986c8b3dSmrg <list name="doodads" type="Doodad"> 1899986c8b3dSmrg <fieldref>nDoodads</fieldref> 1900986c8b3dSmrg </list> 1901986c8b3dSmrg <list name="keyAliases" type="KeyAlias"> 1902986c8b3dSmrg <fieldref>nKeyAliases</fieldref> 1903986c8b3dSmrg </list> 1904986c8b3dSmrg </request> 1905f591e195Smrg --> 1906986c8b3dSmrg 1907986c8b3dSmrg <request name="PerClientFlags" opcode="21"> 1908986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 1909986c8b3dSmrg <pad bytes="2" /> 1910986c8b3dSmrg <field name="change" type="CARD32" mask="PerClientFlag" /> 1911986c8b3dSmrg <field name="value" type="CARD32" mask="PerClientFlag" /> 1912986c8b3dSmrg <field name="ctrlsToChange" type="CARD32" mask="BoolCtrl" /> 1913986c8b3dSmrg <field name="autoCtrls" type="CARD32" mask="BoolCtrl" /> 1914986c8b3dSmrg <field name="autoCtrlsValues" type="CARD32" mask="BoolCtrl" /> 1915986c8b3dSmrg <reply> 1916986c8b3dSmrg <field name="deviceID" type="CARD8"/> 1917986c8b3dSmrg <field name="supported" type="CARD32" mask="PerClientFlag" /> 1918986c8b3dSmrg <field name="value" type="CARD32" mask="PerClientFlag" /> 1919986c8b3dSmrg <field name="autoCtrls" type="CARD32" mask="BoolCtrl" /> 1920986c8b3dSmrg <field name="autoCtrlsValues" type="CARD32" mask="BoolCtrl" /> 1921986c8b3dSmrg <pad bytes="8" /> 1922986c8b3dSmrg </reply> 1923986c8b3dSmrg </request> 1924986c8b3dSmrg 1925986c8b3dSmrg <request name="ListComponents" opcode="22"> 1926986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 1927986c8b3dSmrg <field name="maxNames" type="CARD16" /> 1928f591e195Smrg <!-- XXX: Intermixed fixed size fields and lists are broken 1929986c8b3dSmrg <field name="keymapsSpecLen" type="CARD8" /> 1930986c8b3dSmrg <list name="keymapsSpec" type="STRING8"> 1931986c8b3dSmrg <fieldref>keymapsSpecLen</fieldref> 1932986c8b3dSmrg </list> 1933986c8b3dSmrg <field name="keycodesSpecLen" type="CARD8" /> 1934986c8b3dSmrg <list name="keycodesSpec" type="STRING8"> 1935986c8b3dSmrg <fieldref>keycodesSpecLen</fieldref> 1936986c8b3dSmrg </list> 1937986c8b3dSmrg <field name="typesSpecLen" type="CARD8" /> 1938986c8b3dSmrg <list name="typesSpec" type="STRING8"> 1939986c8b3dSmrg <fieldref>typesSpecLen</fieldref> 1940986c8b3dSmrg </list> 1941986c8b3dSmrg <field name="compatMapSpecLen" type="CARD8" /> 1942986c8b3dSmrg <list name="compatMapSpec" type="STRING8"> 1943986c8b3dSmrg <fieldref>compatMapSpecLen</fieldref> 1944986c8b3dSmrg </list> 1945986c8b3dSmrg <field name="symbolsSpecLen" type="CARD8" /> 1946986c8b3dSmrg <list name="symbolsSpec" type="STRING8"> 1947986c8b3dSmrg <fieldref>symbolsSpecLen</fieldref> 1948986c8b3dSmrg </list> 1949986c8b3dSmrg <field name="geometrySpecLen" type="CARD8" /> 1950986c8b3dSmrg <list name="geometrySpec" type="STRING8"> 1951986c8b3dSmrg <fieldref>geometrySpecLen</fieldref> 1952986c8b3dSmrg </list> 1953f591e195Smrg --> 1954986c8b3dSmrg <reply> 1955986c8b3dSmrg <field name="deviceID" type="CARD8" /> 1956986c8b3dSmrg <field name="nKeymaps" type="CARD16" /> 1957986c8b3dSmrg <field name="nKeycodes" type="CARD16" /> 1958986c8b3dSmrg <field name="nTypes" type="CARD16" /> 1959986c8b3dSmrg <field name="nCompatMaps" type="CARD16" /> 1960986c8b3dSmrg <field name="nSymbols" type="CARD16" /> 1961986c8b3dSmrg <field name="nGeometries" type="CARD16" /> 1962986c8b3dSmrg <field name="extra" type="CARD16" /> 1963986c8b3dSmrg <pad bytes="10" /> 1964986c8b3dSmrg <list name="keymaps" type="Listing"> 1965986c8b3dSmrg <fieldref>nKeymaps</fieldref> 1966986c8b3dSmrg </list> 1967986c8b3dSmrg <list name="keycodes" type="Listing"> 1968986c8b3dSmrg <fieldref>nKeycodes</fieldref> 1969986c8b3dSmrg </list> 1970986c8b3dSmrg <list name="types" type="Listing"> 1971986c8b3dSmrg <fieldref>nTypes</fieldref> 1972986c8b3dSmrg </list> 1973986c8b3dSmrg <list name="compatMaps" type="Listing"> 1974986c8b3dSmrg <fieldref>nCompatMaps</fieldref> 1975986c8b3dSmrg </list> 1976986c8b3dSmrg <list name="symbols" type="Listing"> 1977986c8b3dSmrg <fieldref>nSymbols</fieldref> 1978986c8b3dSmrg </list> 1979986c8b3dSmrg <list name="geometries" type="Listing"> 1980986c8b3dSmrg <fieldref>nGeometries</fieldref> 1981986c8b3dSmrg </list> 1982986c8b3dSmrg </reply> 1983986c8b3dSmrg </request> 1984986c8b3dSmrg 1985986c8b3dSmrg <request name="GetKbdByName" opcode="23"> 1986986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 1987986c8b3dSmrg <field name="need" type="CARD16" mask="GBNDetail" /> 1988986c8b3dSmrg <field name="want" type="CARD16" mask="GBNDetail" /> 1989986c8b3dSmrg <field name="load" type="BOOL" /> 1990986c8b3dSmrg <pad bytes="1" /> 1991f591e195Smrg <!-- XXX: Intermixed fixed size fields and lists are broken 1992986c8b3dSmrg <field name="keymapsSpecLen" type="CARD8" /> 1993986c8b3dSmrg <list name="keymapsSpec" type="STRING8"> 1994986c8b3dSmrg <fieldref>keymapsSpecLen</fieldref> 1995986c8b3dSmrg </list> 1996986c8b3dSmrg <field name="keycodesSpecLen" type="CARD8" /> 1997986c8b3dSmrg <list name="keycodesSpec" type="STRING8"> 1998986c8b3dSmrg <fieldref>keycodesSpecLen</fieldref> 1999986c8b3dSmrg </list> 2000986c8b3dSmrg <field name="typesSpecLen" type="CARD8" /> 2001986c8b3dSmrg <list name="typesSpec" type="STRING8"> 2002986c8b3dSmrg <fieldref>typesSpecLen</fieldref> 2003986c8b3dSmrg </list> 2004986c8b3dSmrg <field name="compatMapSpecLen" type="CARD8" /> 2005986c8b3dSmrg <list name="compatMapSpec" type="STRING8"> 2006986c8b3dSmrg <fieldref>compatMapSpecLen</fieldref> 2007986c8b3dSmrg </list> 2008986c8b3dSmrg <field name="symbolsSpecLen" type="CARD8" /> 2009986c8b3dSmrg <list name="symbolsSpec" type="STRING8"> 2010986c8b3dSmrg <fieldref>symbolsSpecLen</fieldref> 2011986c8b3dSmrg </list> 2012986c8b3dSmrg <field name="geometrySpecLen" type="CARD8" /> 2013986c8b3dSmrg <list name="geometrySpec" type="STRING8"> 2014986c8b3dSmrg <fieldref>geometrySpecLen</fieldref> 2015986c8b3dSmrg </list> 2016f591e195Smrg --> 2017986c8b3dSmrg <reply> 2018986c8b3dSmrg <field name="deviceID" type="CARD8" /> 2019986c8b3dSmrg <field name="minKeyCode" type="KEYCODE" /> 2020986c8b3dSmrg <field name="maxKeyCode" type="KEYCODE" /> 2021986c8b3dSmrg <field name="loaded" type="BOOL" /> 2022986c8b3dSmrg <field name="newKeyboard" type="BOOL" /> 2023986c8b3dSmrg <field name="found" type="CARD16" mask="GBNDetail" /> 2024986c8b3dSmrg <field name="reported" type="CARD16" mask="GBNDetail" /> 2025986c8b3dSmrg <pad bytes="16" /> 2026986c8b3dSmrg <switch name="replies"> 2027986c8b3dSmrg <fieldref>reported</fieldref> 2028986c8b3dSmrg <bitcase name="types"> 2029986c8b3dSmrg <enumref ref="GBNDetail">Types</enumref> 2030f591e195Smrg <enumref ref="GBNDetail">ClientSymbols</enumref> 2031f591e195Smrg <enumref ref="GBNDetail">ServerSymbols</enumref> 2032986c8b3dSmrg <!-- from the spec, this has to be a GetMap reply --> 2033986c8b3dSmrg <field name="getmap_type" type="CARD8" /> 2034986c8b3dSmrg <!-- done 'emulating' GetMap reply header--> 2035986c8b3dSmrg <field name="typeDeviceID" type="CARD8" /> 2036986c8b3dSmrg <!-- from the spec, this has to be a GetMap reply --> 2037986c8b3dSmrg <field name="getmap_sequence" type="CARD16" /> 2038986c8b3dSmrg <field name="getmap_length" type="CARD32" /> 2039986c8b3dSmrg <!-- done 'emulating' GetMap reply header--> 2040986c8b3dSmrg <pad bytes="2" /> 2041986c8b3dSmrg <field name="typeMinKeyCode" type="KEYCODE" /> 2042986c8b3dSmrg <field name="typeMaxKeyCode" type="KEYCODE" /> 2043f591e195Smrg <field name="present" type="CARD16" mask="MapPart" /> 2044986c8b3dSmrg <field name="firstType" type="CARD8" /> 2045986c8b3dSmrg <field name="nTypes" type="CARD8" /> 2046986c8b3dSmrg <field name="totalTypes" type="CARD8" /> 2047986c8b3dSmrg <field name="firstKeySym" type="KEYCODE" /> 2048986c8b3dSmrg <field name="totalSyms" type="CARD16" /> 2049986c8b3dSmrg <field name="nKeySyms" type="CARD8" /> 2050986c8b3dSmrg <field name="firstKeyAction" type="KEYCODE" /> 2051986c8b3dSmrg <field name="totalActions" type="CARD16" /> 2052986c8b3dSmrg <field name="nKeyActions" type="CARD8" /> 2053986c8b3dSmrg <field name="firstKeyBehavior" type="KEYCODE" /> 2054986c8b3dSmrg <field name="nKeyBehaviors" type="CARD8" /> 2055986c8b3dSmrg <field name="totalKeyBehaviors" type="CARD8" /> 2056986c8b3dSmrg <field name="firstKeyExplicit" type="KEYCODE" /> 2057986c8b3dSmrg <field name="nKeyExplicit" type="CARD8" /> 2058986c8b3dSmrg <field name="totalKeyExplicit" type="CARD8" /> 2059986c8b3dSmrg <field name="firstModMapKey" type="KEYCODE" /> 2060986c8b3dSmrg <field name="nModMapKeys" type="CARD8" /> 2061986c8b3dSmrg <field name="totalModMapKeys" type="CARD8" /> 2062986c8b3dSmrg <field name="firstVModMapKey" type="KEYCODE" /> 2063986c8b3dSmrg <field name="nVModMapKeys" type="CARD8" /> 2064986c8b3dSmrg <field name="totalVModMapKeys" type="CARD8" /> 2065986c8b3dSmrg <pad bytes="1" /> 2066986c8b3dSmrg <field name="virtualMods" type="CARD16" mask="VMod" /> 2067986c8b3dSmrg <switch name="map"> 2068986c8b3dSmrg <fieldref>present</fieldref> 2069986c8b3dSmrg <bitcase> 2070986c8b3dSmrg <enumref ref="MapPart">KeyTypes</enumref> 2071986c8b3dSmrg <list name="types_rtrn" type="KeyType"> 2072986c8b3dSmrg <fieldref>nTypes</fieldref> 2073986c8b3dSmrg </list> 2074986c8b3dSmrg </bitcase> 2075986c8b3dSmrg <bitcase> 2076986c8b3dSmrg <enumref ref="MapPart">KeySyms</enumref> 2077986c8b3dSmrg <list name="syms_rtrn" type="KeySymMap"> 2078986c8b3dSmrg <fieldref>nKeySyms</fieldref> 2079986c8b3dSmrg </list> 2080986c8b3dSmrg </bitcase> 2081986c8b3dSmrg <bitcase> 2082986c8b3dSmrg <enumref ref="MapPart">KeyActions</enumref> 2083986c8b3dSmrg <list name="acts_rtrn_count" type="CARD8"> 2084986c8b3dSmrg <fieldref>nKeyActions</fieldref> 2085986c8b3dSmrg </list> 2086891601f5Smrg <pad align="4" /> 2087986c8b3dSmrg <list name="acts_rtrn_acts" type="Action"> 2088986c8b3dSmrg <fieldref>totalActions</fieldref> 2089986c8b3dSmrg </list> 2090986c8b3dSmrg </bitcase> 2091986c8b3dSmrg <bitcase> 2092986c8b3dSmrg <enumref ref="MapPart">KeyBehaviors</enumref> 2093986c8b3dSmrg <list name="behaviors_rtrn" type="SetBehavior"> 2094986c8b3dSmrg <fieldref>totalKeyBehaviors</fieldref> 2095986c8b3dSmrg </list> 2096986c8b3dSmrg </bitcase> 2097986c8b3dSmrg <bitcase> 2098986c8b3dSmrg <enumref ref="MapPart">VirtualMods</enumref> 2099986c8b3dSmrg <list name="vmods_rtrn" type="CARD8" mask="ModMask"> 2100f591e195Smrg <popcount><fieldref>virtualMods</fieldref></popcount> 2101986c8b3dSmrg </list> 2102891601f5Smrg <pad align="4" /> 2103986c8b3dSmrg </bitcase> 2104986c8b3dSmrg <bitcase> 2105986c8b3dSmrg <enumref ref="MapPart">ExplicitComponents</enumref> 2106986c8b3dSmrg <list name="explicit_rtrn" type="SetExplicit"> 2107986c8b3dSmrg <fieldref>totalKeyExplicit</fieldref> 2108986c8b3dSmrg </list> 2109891601f5Smrg <pad align="4" /> 2110986c8b3dSmrg </bitcase> 2111986c8b3dSmrg <bitcase> 2112986c8b3dSmrg <enumref ref="MapPart">ModifierMap</enumref> 2113986c8b3dSmrg <list name="modmap_rtrn" type="KeyModMap"> 2114986c8b3dSmrg <fieldref>totalModMapKeys</fieldref> 2115986c8b3dSmrg </list> 2116891601f5Smrg <pad align="4" /> 2117986c8b3dSmrg </bitcase> 2118986c8b3dSmrg <bitcase> 2119986c8b3dSmrg <enumref ref="MapPart">VirtualModMap</enumref> 2120986c8b3dSmrg <list name="vmodmap_rtrn" type="KeyVModMap"> 2121986c8b3dSmrg <fieldref>totalVModMapKeys</fieldref> 2122986c8b3dSmrg </list> 2123986c8b3dSmrg </bitcase> 2124986c8b3dSmrg </switch> 2125986c8b3dSmrg </bitcase> 2126986c8b3dSmrg <bitcase name="compat_map"> 2127986c8b3dSmrg <enumref ref="GBNDetail">CompatMap</enumref> 2128f591e195Smrg <!-- from the spec, this has to include a reply header --> 2129f591e195Smrg <field name="compatmap_type" type="CARD8" /> 2130986c8b3dSmrg <field name="compatDeviceID" type="CARD8" /> 2131f591e195Smrg <field name="compatmap_sequence" type="CARD16" /> 2132f591e195Smrg <field name="compatmap_length" type="CARD32" /> 2133f591e195Smrg <!-- done 'emulating' reply header --> 2134986c8b3dSmrg <field name="groupsRtrn" type="CARD8" mask="SetOfGroup" /> 2135986c8b3dSmrg <pad bytes="1" /> 2136986c8b3dSmrg <field name="firstSIRtrn" type="CARD16" /> 2137986c8b3dSmrg <field name="nSIRtrn" type="CARD16" /> 2138986c8b3dSmrg <field name="nTotalSI" type="CARD16" /> 2139986c8b3dSmrg <pad bytes="16" /> 2140f591e195Smrg <list name="si_rtrn" type="SymInterpret"> 2141f591e195Smrg <fieldref>nSIRtrn</fieldref> 2142986c8b3dSmrg </list> 2143986c8b3dSmrg <list name="group_rtrn" type="ModDef"> 2144986c8b3dSmrg <popcount> 2145986c8b3dSmrg <fieldref>groupsRtrn</fieldref> 2146986c8b3dSmrg </popcount> 2147986c8b3dSmrg </list> 2148986c8b3dSmrg </bitcase> 2149986c8b3dSmrg <bitcase name="indicator_maps"> 2150986c8b3dSmrg <enumref ref="GBNDetail">IndicatorMaps</enumref> 2151f591e195Smrg <!-- from the spec, this has to include a reply header --> 2152f591e195Smrg <field name="indicatormap_type" type="CARD8" /> 2153986c8b3dSmrg <field name="indicatorDeviceID" type="CARD8" /> 2154f591e195Smrg <field name="indicatormap_sequence" type="CARD16" /> 2155f591e195Smrg <field name="indicatormap_length" type="CARD32" /> 2156f591e195Smrg <!-- done 'emulating' reply header --> 2157986c8b3dSmrg <field name="which" type="CARD32" /> 2158986c8b3dSmrg <field name="realIndicators" type="CARD32" /> 2159986c8b3dSmrg <field name="nIndicators" type="CARD8" /> 2160986c8b3dSmrg <pad bytes="15" /> 2161986c8b3dSmrg <list name="maps" type="IndicatorMap"> 2162986c8b3dSmrg <fieldref>nIndicators</fieldref> 2163986c8b3dSmrg </list> 2164986c8b3dSmrg </bitcase> 2165986c8b3dSmrg <bitcase name="key_names"> 2166986c8b3dSmrg <enumref ref="GBNDetail">KeyNames</enumref> 2167f591e195Smrg <enumref ref="GBNDetail">OtherNames</enumref> 2168f591e195Smrg <!-- from the spec, this has to include a reply header --> 2169f591e195Smrg <field name="keyname_type" type="CARD8" /> 2170986c8b3dSmrg <field name="keyDeviceID" type="CARD8" /> 2171f591e195Smrg <field name="keyname_sequence" type="CARD16" /> 2172f591e195Smrg <field name="keyname_length" type="CARD32" /> 2173f591e195Smrg <!-- done 'emulating' reply header --> 2174986c8b3dSmrg <field name="which" type="CARD32" mask="NameDetail" /> 2175986c8b3dSmrg <field name="keyMinKeyCode" type="KEYCODE" /> 2176986c8b3dSmrg <field name="keyMaxKeyCode" type="KEYCODE" /> 2177986c8b3dSmrg <field name="nTypes" type="CARD8" /> 2178986c8b3dSmrg <field name="groupNames" type="CARD8" mask="SetOfGroup" /> 2179986c8b3dSmrg <field name="virtualMods" type="CARD16" mask="VMod" /> 2180986c8b3dSmrg <field name="firstKey" type="KEYCODE" /> 2181986c8b3dSmrg <field name="nKeys" type="CARD8" /> 2182986c8b3dSmrg <field name="indicators" type="CARD32" /> 2183986c8b3dSmrg <field name="nRadioGroups" type="CARD8" /> 2184986c8b3dSmrg <field name="nKeyAliases" type="CARD8" /> 2185986c8b3dSmrg <field name="nKTLevels" type="CARD16" /> 2186986c8b3dSmrg <pad bytes="4" /> 2187986c8b3dSmrg <switch name="valueList"> 2188986c8b3dSmrg <fieldref>which</fieldref> 2189986c8b3dSmrg <bitcase> 2190986c8b3dSmrg <enumref ref="NameDetail">Keycodes</enumref> 2191986c8b3dSmrg <field name="keycodesName" type="ATOM" /> 2192986c8b3dSmrg </bitcase> 2193986c8b3dSmrg <bitcase> 2194986c8b3dSmrg <enumref ref="NameDetail">Geometry</enumref> 2195986c8b3dSmrg <field name="geometryName" type="ATOM" /> 2196986c8b3dSmrg </bitcase> 2197986c8b3dSmrg <bitcase> 2198986c8b3dSmrg <enumref ref="NameDetail">Symbols</enumref> 2199986c8b3dSmrg <field name="symbolsName" type="ATOM" /> 2200986c8b3dSmrg </bitcase> 2201986c8b3dSmrg <bitcase> 2202986c8b3dSmrg <enumref ref="NameDetail">PhysSymbols</enumref> 2203986c8b3dSmrg <field name="physSymbolsName" type="ATOM" /> 2204986c8b3dSmrg </bitcase> 2205986c8b3dSmrg <bitcase> 2206986c8b3dSmrg <enumref ref="NameDetail">Types</enumref> 2207986c8b3dSmrg <field name="typesName" type="ATOM" /> 2208986c8b3dSmrg </bitcase> 2209986c8b3dSmrg <bitcase> 2210986c8b3dSmrg <enumref ref="NameDetail">Compat</enumref> 2211986c8b3dSmrg <field name="compatName" type="ATOM" /> 2212986c8b3dSmrg </bitcase> 2213986c8b3dSmrg <bitcase> 2214986c8b3dSmrg <enumref ref="NameDetail">KeyTypeNames</enumref> 2215986c8b3dSmrg <list name="typeNames" type="ATOM"> 2216986c8b3dSmrg <fieldref>nTypes</fieldref> 2217986c8b3dSmrg </list> 2218986c8b3dSmrg </bitcase> 2219986c8b3dSmrg <bitcase> 2220986c8b3dSmrg <enumref ref="NameDetail">KTLevelNames</enumref> 2221986c8b3dSmrg <list name="nLevelsPerType" type="CARD8"> 2222b26960f7Smrg <fieldref>nTypes</fieldref> 2223986c8b3dSmrg </list> 2224891601f5Smrg <pad align="4" /> 2225986c8b3dSmrg <list name="ktLevelNames" type="ATOM"> 2226986c8b3dSmrg <sumof ref="nLevelsPerType" /> 2227986c8b3dSmrg </list> 2228986c8b3dSmrg </bitcase> 2229986c8b3dSmrg <bitcase> 2230986c8b3dSmrg <enumref ref="NameDetail">IndicatorNames</enumref> 2231986c8b3dSmrg <list name="indicatorNames" type="ATOM"> 2232986c8b3dSmrg <popcount> 2233986c8b3dSmrg <fieldref>indicators</fieldref> 2234986c8b3dSmrg </popcount> 2235986c8b3dSmrg </list> 2236986c8b3dSmrg </bitcase> 2237986c8b3dSmrg <bitcase> 2238986c8b3dSmrg <enumref ref="NameDetail">VirtualModNames</enumref> 2239986c8b3dSmrg <list name="virtualModNames" type="ATOM"> 2240986c8b3dSmrg <popcount> 2241986c8b3dSmrg <fieldref>virtualMods</fieldref> 2242986c8b3dSmrg </popcount> 2243986c8b3dSmrg </list> 2244986c8b3dSmrg </bitcase> 2245986c8b3dSmrg <bitcase> 2246986c8b3dSmrg <enumref ref="NameDetail">GroupNames</enumref> 2247986c8b3dSmrg <list name="groups" type="ATOM"> 2248986c8b3dSmrg <popcount> 2249986c8b3dSmrg <fieldref>groupNames</fieldref> 2250986c8b3dSmrg </popcount> 2251986c8b3dSmrg </list> 2252986c8b3dSmrg </bitcase> 2253986c8b3dSmrg <bitcase> 2254986c8b3dSmrg <enumref ref="NameDetail">KeyNames</enumref> 2255986c8b3dSmrg <list name="keyNames" type="KeyName"> 2256986c8b3dSmrg <fieldref>nKeys</fieldref> 2257986c8b3dSmrg </list> 2258986c8b3dSmrg </bitcase> 2259986c8b3dSmrg <bitcase> 2260986c8b3dSmrg <enumref ref="NameDetail">KeyAliases</enumref> 2261986c8b3dSmrg <list name="keyAliases" type="KeyAlias"> 2262986c8b3dSmrg <fieldref>nKeyAliases</fieldref> 2263986c8b3dSmrg </list> 2264986c8b3dSmrg </bitcase> 2265986c8b3dSmrg <bitcase> 2266986c8b3dSmrg <enumref ref="NameDetail">RGNames</enumref> 2267986c8b3dSmrg <list name="radioGroupNames" type="ATOM"> 2268986c8b3dSmrg <fieldref>nRadioGroups</fieldref> 2269986c8b3dSmrg </list> 2270986c8b3dSmrg </bitcase> 2271986c8b3dSmrg </switch> 2272986c8b3dSmrg </bitcase> 2273986c8b3dSmrg <bitcase name="geometry"> 2274986c8b3dSmrg <enumref ref="GBNDetail">Geometry</enumref> 2275f591e195Smrg <!-- from the spec, this has to include a reply header --> 2276f591e195Smrg <field name="geometry_type" type="CARD8" /> 2277986c8b3dSmrg <field name="geometryDeviceID" type="CARD8" /> 2278f591e195Smrg <field name="geometry_sequence" type="CARD16" /> 2279f591e195Smrg <field name="geometry_length" type="CARD32" /> 2280f591e195Smrg <!-- done 'emulating' reply header --> 2281986c8b3dSmrg <field name="name" type="ATOM" /> 2282986c8b3dSmrg <field name="geometryFound" type="BOOL" /> 2283986c8b3dSmrg <pad bytes="1" /> 2284986c8b3dSmrg <field name="widthMM" type="CARD16" /> 2285986c8b3dSmrg <field name="heightMM" type="CARD16" /> 2286986c8b3dSmrg <field name="nProperties" type="CARD16" /> 2287986c8b3dSmrg <field name="nColors" type="CARD16" /> 2288986c8b3dSmrg <field name="nShapes" type="CARD16" /> 2289986c8b3dSmrg <field name="nSections" type="CARD16" /> 2290986c8b3dSmrg <field name="nDoodads" type="CARD16" /> 2291986c8b3dSmrg <field name="nKeyAliases" type="CARD16" /> 2292986c8b3dSmrg <field name="baseColorNdx" type="CARD8" /> 2293986c8b3dSmrg <field name="labelColorNdx" type="CARD8" /> 2294986c8b3dSmrg <field name="labelFont" type="CountedString16" /> 2295f591e195Smrg <!-- XXX: Property is broken 2296986c8b3dSmrg <list name="properties" type="Property"> 2297986c8b3dSmrg <fieldref>nProperties</fieldref> 2298986c8b3dSmrg </list> 2299986c8b3dSmrg <list name="colors" type="CountedString16"> 2300986c8b3dSmrg <fieldref>nColors</fieldref> 2301986c8b3dSmrg </list> 2302986c8b3dSmrg <list name="shapes" type="Shape"> 2303986c8b3dSmrg <fieldref>nShapes</fieldref> 2304986c8b3dSmrg </list> 2305f591e195Smrg --> 2306f591e195Smrg <!-- XXX: doodads are broken 2307986c8b3dSmrg <list name="sections" type="Section"> 2308986c8b3dSmrg <fieldref>nSections</fieldref> 2309986c8b3dSmrg </list> 2310986c8b3dSmrg <list name="doodads" type="Doodad"> 2311986c8b3dSmrg <fieldref>nDoodads</fieldref> 2312986c8b3dSmrg </list> 2313986c8b3dSmrg <list name="keyAliases" type="KeyAlias"> 2314986c8b3dSmrg <fieldref>nKeyAliases</fieldref> 2315986c8b3dSmrg </list> 2316f591e195Smrg --> 2317986c8b3dSmrg </bitcase> 2318986c8b3dSmrg </switch> 2319986c8b3dSmrg </reply> 2320986c8b3dSmrg </request> 2321986c8b3dSmrg 2322986c8b3dSmrg <request name="GetDeviceInfo" opcode="24"> 2323986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 2324986c8b3dSmrg <field name="wanted" type="CARD16" mask="XIFeature" /> 2325986c8b3dSmrg <field name="allButtons" type="BOOL" /> 2326986c8b3dSmrg <field name="firstButton" type="CARD8" /> 2327986c8b3dSmrg <field name="nButtons" type="CARD8" /> 2328986c8b3dSmrg <pad bytes="1" /> 2329986c8b3dSmrg <field name="ledClass" type="LedClassSpec" enum="LedClass" /> 2330986c8b3dSmrg <field name="ledID" type="IDSpec" altenum="ID" /> 2331986c8b3dSmrg <reply> 2332986c8b3dSmrg <field name="deviceID" type="CARD8" /> 2333986c8b3dSmrg <field name="present" type="CARD16" mask="XIFeature" /> 2334986c8b3dSmrg <field name="supported" type="CARD16" mask="XIFeature" /> 2335986c8b3dSmrg <field name="unsupported" type="CARD16" mask="XIFeature" /> 2336986c8b3dSmrg <field name="nDeviceLedFBs" type="CARD16" /> 2337986c8b3dSmrg <field name="firstBtnWanted" type="CARD8" /> 2338986c8b3dSmrg <field name="nBtnsWanted" type="CARD8" /> 2339986c8b3dSmrg <field name="firstBtnRtrn" type="CARD8" /> 2340986c8b3dSmrg <field name="nBtnsRtrn" type="CARD8" /> 2341986c8b3dSmrg <field name="totalBtns" type="CARD8" /> 2342986c8b3dSmrg <field name="hasOwnState" type="BOOL" /> 2343986c8b3dSmrg <field name="dfltKbdFB" type="CARD16" altenum="ID" /> 2344986c8b3dSmrg <field name="dfltLedFB" type="CARD16" altenum="ID" /> 2345986c8b3dSmrg <pad bytes="2" /> 2346986c8b3dSmrg <field name="devType" type="ATOM" /> 2347986c8b3dSmrg <field name="nameLen" type="CARD16" /> 2348986c8b3dSmrg <list name="name" type="STRING8"> 2349986c8b3dSmrg <fieldref>nameLen</fieldref> 2350986c8b3dSmrg </list> 2351891601f5Smrg <pad align="4" /> 2352986c8b3dSmrg <list name="btnActions" type="Action"> 2353986c8b3dSmrg <fieldref>nBtnsRtrn</fieldref> 2354986c8b3dSmrg </list> 2355986c8b3dSmrg <list name="leds" type="DeviceLedInfo"> 2356986c8b3dSmrg <fieldref>nDeviceLedFBs</fieldref> 2357986c8b3dSmrg </list> 2358986c8b3dSmrg </reply> 2359986c8b3dSmrg </request> 2360986c8b3dSmrg 2361986c8b3dSmrg 2362986c8b3dSmrg <request name="SetDeviceInfo" opcode="25"> 2363986c8b3dSmrg <field name="deviceSpec" type="DeviceSpec" /> 2364986c8b3dSmrg <field name="firstBtn" type="CARD8" /> 2365986c8b3dSmrg <field name="nBtns" type="CARD8" /> 2366986c8b3dSmrg <field name="change" type="CARD16" mask="XIFeature" /> 2367986c8b3dSmrg <field name="nDeviceLedFBs" type="CARD16" /> 2368986c8b3dSmrg <list name="btnActions" type="Action"> 2369986c8b3dSmrg <fieldref>nBtns</fieldref> 2370986c8b3dSmrg </list> 2371986c8b3dSmrg <list name="leds" type="DeviceLedInfo"> 2372986c8b3dSmrg <fieldref>nDeviceLedFBs</fieldref> 2373986c8b3dSmrg </list> 2374986c8b3dSmrg </request> 2375986c8b3dSmrg 2376986c8b3dSmrg <request name="SetDebuggingFlags" opcode="101"> 2377986c8b3dSmrg <field name="msgLength" type="CARD16" /> 2378986c8b3dSmrg <pad bytes="2" /> 2379986c8b3dSmrg <field name="affectFlags" type="CARD32" /> 2380986c8b3dSmrg <field name="flags" type="CARD32" /> 2381986c8b3dSmrg <field name="affectCtrls" type="CARD32" /> 2382986c8b3dSmrg <field name="ctrls" type="CARD32" /> 2383986c8b3dSmrg <list name="message" type="STRING8"> 2384986c8b3dSmrg <fieldref>msgLength</fieldref> 2385986c8b3dSmrg </list> 2386986c8b3dSmrg <reply> 2387986c8b3dSmrg <pad bytes="1" /> 2388986c8b3dSmrg <field name="currentFlags" type="CARD32" /> 2389986c8b3dSmrg <field name="currentCtrls" type="CARD32" /> 2390986c8b3dSmrg <field name="supportedFlags" type="CARD32" /> 2391986c8b3dSmrg <field name="supportedCtrls" type="CARD32" /> 2392986c8b3dSmrg <pad bytes="8" /> 2393986c8b3dSmrg </reply> 2394986c8b3dSmrg </request> 2395986c8b3dSmrg 2396986c8b3dSmrg <!-- Events --> 2397986c8b3dSmrg 2398f591e195Smrg <event name="NewKeyboardNotify" number="0"> 2399986c8b3dSmrg <field name="xkbType" type="CARD8" /> 2400986c8b3dSmrg <field name="time" type="TIMESTAMP" /> 2401986c8b3dSmrg <field name="deviceID" type="CARD8" /> 2402986c8b3dSmrg <field name="oldDeviceID" type="CARD8" /> 2403986c8b3dSmrg <field name="minKeyCode" type="KEYCODE" /> 2404986c8b3dSmrg <field name="maxKeyCode" type="KEYCODE" /> 2405986c8b3dSmrg <field name="oldMinKeyCode" type="KEYCODE" /> 2406986c8b3dSmrg <field name="oldMaxKeyCode" type="KEYCODE" /> 2407986c8b3dSmrg <field name="requestMajor" type="CARD8" /> 2408986c8b3dSmrg <field name="requestMinor" type="CARD8" /> 2409986c8b3dSmrg <field name="changed" type="CARD16" mask="NKNDetail" /> 2410986c8b3dSmrg <pad bytes="14" /> 2411986c8b3dSmrg </event> 2412986c8b3dSmrg 2413f591e195Smrg <event name="MapNotify" number="1"> 2414986c8b3dSmrg <field name="xkbType" type="CARD8" /> 2415986c8b3dSmrg <field name="time" type="TIMESTAMP" /> 2416986c8b3dSmrg <field name="deviceID" type="CARD8" /> 2417986c8b3dSmrg <field name="ptrBtnActions" type="CARD8" /> 2418986c8b3dSmrg <field name="changed" type="CARD16" mask="MapPart" /> 2419986c8b3dSmrg <field name="minKeyCode" type="KEYCODE" /> 2420986c8b3dSmrg <field name="maxKeyCode" type="KEYCODE" /> 2421986c8b3dSmrg <field name="firstType" type="CARD8" /> 2422986c8b3dSmrg <field name="nTypes" type="CARD8" /> 2423986c8b3dSmrg <field name="firstKeySym" type="KEYCODE" /> 2424986c8b3dSmrg <field name="nKeySyms" type="CARD8" /> 2425986c8b3dSmrg <field name="firstKeyAct" type="KEYCODE" /> 2426986c8b3dSmrg <field name="nKeyActs" type="CARD8" /> 2427986c8b3dSmrg <field name="firstKeyBehavior" type="KEYCODE" /> 2428986c8b3dSmrg <field name="nKeyBehavior" type="CARD8" /> 2429986c8b3dSmrg <field name="firstKeyExplicit" type="KEYCODE" /> 2430986c8b3dSmrg <field name="nKeyExplicit" type="CARD8" /> 2431986c8b3dSmrg <field name="firstModMapKey" type="KEYCODE" /> 2432986c8b3dSmrg <field name="nModMapKeys" type="CARD8" /> 2433986c8b3dSmrg <field name="firstVModMapKey" type="KEYCODE" /> 2434986c8b3dSmrg <field name="nVModMapKeys" type="CARD8" /> 2435986c8b3dSmrg <field name="virtualMods" type="CARD16" mask="VMod" /> 2436986c8b3dSmrg <pad bytes="2" /> 2437986c8b3dSmrg </event> 2438986c8b3dSmrg 2439f591e195Smrg <event name="StateNotify" number="2"> 2440986c8b3dSmrg <field name="xkbType" type="CARD8" /> 2441986c8b3dSmrg <field name="time" type="TIMESTAMP" /> 2442986c8b3dSmrg <field name="deviceID" type="CARD8" /> 2443986c8b3dSmrg <field name="mods" type="CARD8" mask="ModMask" /> 2444986c8b3dSmrg <field name="baseMods" type="CARD8" mask="ModMask" /> 2445986c8b3dSmrg <field name="latchedMods" type="CARD8" mask="ModMask" /> 2446986c8b3dSmrg <field name="lockedMods" type="CARD8" mask="ModMask" /> 2447986c8b3dSmrg <field name="group" type="CARD8" enum="Group" /> 2448986c8b3dSmrg <field name="baseGroup" type="INT16" /> 2449986c8b3dSmrg <field name="latchedGroup" type="INT16" /> 2450986c8b3dSmrg <field name="lockedGroup" type="CARD8" enum="Group" /> 2451986c8b3dSmrg <field name="compatState" type="CARD8" mask="ModMask" /> 2452986c8b3dSmrg <field name="grabMods" type="CARD8" mask="ModMask" /> 2453986c8b3dSmrg <field name="compatGrabMods" type="CARD8" mask="ModMask" /> 2454986c8b3dSmrg <field name="lookupMods" type="CARD8" mask="ModMask" /> 2455986c8b3dSmrg <field name="compatLoockupMods" type="CARD8" mask="ModMask" /> 2456986c8b3dSmrg <field name="ptrBtnState" type="CARD16" mask="KeyButMask" /> 2457986c8b3dSmrg <field name="changed" type="CARD16" mask="StatePart" /> 2458986c8b3dSmrg <field name="keycode" type="KEYCODE" /> 2459986c8b3dSmrg <field name="eventType" type="CARD8" /> 2460986c8b3dSmrg <field name="requestMajor" type="CARD8" /> 2461986c8b3dSmrg <field name="requestMinor" type="CARD8" /> 2462986c8b3dSmrg </event> 2463986c8b3dSmrg 2464f591e195Smrg <event name="ControlsNotify" number="3"> 2465986c8b3dSmrg <field name="xkbType" type="CARD8" /> 2466986c8b3dSmrg <field name="time" type="TIMESTAMP" /> 2467986c8b3dSmrg <field name="deviceID" type="CARD8" /> 2468986c8b3dSmrg <field name="numGroups" type="CARD8" /> 2469986c8b3dSmrg <pad bytes="2" /> 2470986c8b3dSmrg <field name="changedControls" type="CARD32" mask="Control" /> 2471986c8b3dSmrg <field name="enabledControls" type="CARD32" mask="BoolCtrl" /> 2472986c8b3dSmrg <field name="enabledControlChanges" type="CARD32" mask="BoolCtrl" /> 2473986c8b3dSmrg <field name="keycode" type="KEYCODE" /> 2474986c8b3dSmrg <field name="eventType" type="CARD8" /> 2475986c8b3dSmrg <field name="requestMajor" type="CARD8" /> 2476986c8b3dSmrg <field name="requestMinor" type="CARD8" /> 2477986c8b3dSmrg <pad bytes="4" /> 2478986c8b3dSmrg </event> 2479986c8b3dSmrg 2480f591e195Smrg <event name="IndicatorStateNotify" number="4"> 2481986c8b3dSmrg <field name="xkbType" type="CARD8" /> 2482986c8b3dSmrg <field name="time" type="TIMESTAMP" /> 2483986c8b3dSmrg <field name="deviceID" type="CARD8" /> 2484986c8b3dSmrg <pad bytes="3" /> 2485986c8b3dSmrg <field name="state" type="CARD32" /> 2486986c8b3dSmrg <field name="stateChanged" type="CARD32" /> 2487986c8b3dSmrg <pad bytes="12" /> 2488986c8b3dSmrg </event> 2489986c8b3dSmrg 2490f591e195Smrg <event name="IndicatorMapNotify" number="5"> 2491986c8b3dSmrg <field name="xkbType" type="CARD8" /> 2492986c8b3dSmrg <field name="time" type="TIMESTAMP" /> 2493986c8b3dSmrg <field name="deviceID" type="CARD8" /> 2494986c8b3dSmrg <pad bytes="3" /> 2495986c8b3dSmrg <field name="state" type="CARD32" /> 2496986c8b3dSmrg <field name="mapChanged" type="CARD32" /> 2497986c8b3dSmrg <pad bytes="12" /> 2498986c8b3dSmrg </event> 2499986c8b3dSmrg 2500f591e195Smrg <event name="NamesNotify" number="6"> 2501986c8b3dSmrg <field name="xkbType" type="CARD8" /> 2502986c8b3dSmrg <field name="time" type="TIMESTAMP" /> 2503986c8b3dSmrg <field name="deviceID" type="CARD8" /> 2504986c8b3dSmrg <pad bytes="1" /> 2505986c8b3dSmrg <field name="changed" type="CARD16" mask="NameDetail" /> 2506986c8b3dSmrg <field name="firstType" type="CARD8" /> 2507986c8b3dSmrg <field name="nTypes" type="CARD8" /> 2508986c8b3dSmrg <field name="firstLevelName" type="CARD8" /> 2509986c8b3dSmrg <field name="nLevelNames" type="CARD8" /> 2510986c8b3dSmrg <pad bytes="1" /> 2511986c8b3dSmrg <field name="nRadioGroups" type="CARD8" /> 2512986c8b3dSmrg <field name="nKeyAliases" type="CARD8" /> 2513986c8b3dSmrg <field name="changedGroupNames" type="CARD8" mask="SetOfGroup" /> 2514986c8b3dSmrg <field name="changedVirtualMods" type="CARD16" mask="VMod" /> 2515986c8b3dSmrg <field name="firstKey" type="KEYCODE" /> 2516986c8b3dSmrg <field name="nKeys" type="CARD8" /> 2517986c8b3dSmrg <field name="changedIndicators" type="CARD32" /> 2518986c8b3dSmrg <pad bytes="4" /> 2519986c8b3dSmrg </event> 2520986c8b3dSmrg 2521f591e195Smrg <event name="CompatMapNotify" number="7"> 2522986c8b3dSmrg <field name="xkbType" type="CARD8" /> 2523986c8b3dSmrg <field name="time" type="TIMESTAMP" /> 2524986c8b3dSmrg <field name="deviceID" type="CARD8" /> 2525986c8b3dSmrg <field name="changedGroups" type="CARD8" mask="SetOfGroup" /> 2526986c8b3dSmrg <field name="firstSI" type="CARD16" /> 2527986c8b3dSmrg <field name="nSI" type="CARD16" /> 2528986c8b3dSmrg <field name="nTotalSI" type="CARD16" /> 2529986c8b3dSmrg <pad bytes="16" /> 2530986c8b3dSmrg </event> 2531986c8b3dSmrg 2532f591e195Smrg <event name="BellNotify" number="8"> 2533986c8b3dSmrg <field name="xkbType" type="CARD8" /> 2534986c8b3dSmrg <field name="time" type="TIMESTAMP" /> 2535986c8b3dSmrg <field name="deviceID" type="CARD8" /> 2536986c8b3dSmrg <field name="bellClass" type="CARD8" enum="BellClassResult" /> 2537986c8b3dSmrg <field name="bellID" type="CARD8" /> 2538986c8b3dSmrg <field name="percent" type="CARD8" /> 2539986c8b3dSmrg <field name="pitch" type="CARD16" /> 2540986c8b3dSmrg <field name="duration" type="CARD16" /> 2541986c8b3dSmrg <field name="name" type="ATOM" /> 2542986c8b3dSmrg <field name="window" type="WINDOW" /> 2543986c8b3dSmrg <field name="eventOnly" type="BOOL" /> 2544986c8b3dSmrg <pad bytes="7" /> 2545986c8b3dSmrg </event> 2546986c8b3dSmrg 2547f591e195Smrg <event name="ActionMessage" number="9"> 2548986c8b3dSmrg <field name="xkbType" type="CARD8" /> 2549986c8b3dSmrg <field name="time" type="TIMESTAMP" /> 2550986c8b3dSmrg <field name="deviceID" type="CARD8" /> 2551986c8b3dSmrg <field name="keycode" type="KEYCODE" /> 2552986c8b3dSmrg <field name="press" type="BOOL" /> 2553986c8b3dSmrg <field name="keyEventFollows" type="BOOL" /> 2554986c8b3dSmrg <field name="mods" type="CARD8" mask="ModMask" /> 2555986c8b3dSmrg <field name="group" type="CARD8" enum="Group" /> 2556986c8b3dSmrg <list name="message" type="STRING8"> 2557986c8b3dSmrg <value>8</value> 2558986c8b3dSmrg </list> 2559986c8b3dSmrg <pad bytes="10" /> 2560986c8b3dSmrg </event> 2561986c8b3dSmrg 2562f591e195Smrg <event name="AccessXNotify" number="10"> 2563986c8b3dSmrg <field name="xkbType" type="CARD8" /> 2564986c8b3dSmrg <field name="time" type="TIMESTAMP" /> 2565986c8b3dSmrg <field name="deviceID" type="CARD8" /> 2566986c8b3dSmrg <field name="keycode" type="KEYCODE" /> 2567986c8b3dSmrg <field name="detailt" type="CARD16" mask="AXNDetail" /> 2568986c8b3dSmrg <field name="slowKeysDelay" type="CARD16" /> 2569986c8b3dSmrg <field name="debounceDelay" type="CARD16" /> 2570986c8b3dSmrg <pad bytes="16" /> 2571986c8b3dSmrg </event> 2572986c8b3dSmrg 2573f591e195Smrg <event name="ExtensionDeviceNotify" number="11"> 2574986c8b3dSmrg <field name="xkbType" type="CARD8" /> 2575986c8b3dSmrg <field name="time" type="TIMESTAMP" /> 2576986c8b3dSmrg <field name="deviceID" type="CARD8" /> 2577986c8b3dSmrg <pad bytes="1" /> 2578986c8b3dSmrg <field name="reason" type="CARD16" mask="XIFeature" /> 2579986c8b3dSmrg <field name="ledClass" type="CARD16" enum="LedClassResult" /> 2580f591e195Smrg <field name="ledID" type="CARD16" /> 2581986c8b3dSmrg <field name="ledsDefined" type="CARD32" /> 2582986c8b3dSmrg <field name="ledState" type="CARD32" /> 2583986c8b3dSmrg <field name="firstButton" type="CARD8" /> 2584986c8b3dSmrg <field name="nButtons" type="CARD8" /> 2585986c8b3dSmrg <field name="supported" type="CARD16" mask="XIFeature" /> 2586986c8b3dSmrg <field name="unsupported" type="CARD16" mask="XIFeature" /> 2587986c8b3dSmrg <pad bytes="2" /> 2588986c8b3dSmrg </event> 2589986c8b3dSmrg</xcb> 2590