randr.xml revision f591e195
1d4401354Smrg<?xml version="1.0" encoding="utf-8"?> 2d4401354Smrg<!-- 3d4401354SmrgCopyright (C) 2006 Jeremy Kolb, Ian Osgood 4d4401354SmrgAll Rights Reserved. 5d4401354Smrg 6d4401354SmrgPermission is hereby granted, free of charge, to any person obtaining a copy 7d4401354Smrgof this software and associated documentation files (the "Software"), to deal 8d4401354Smrgin the Software without restriction, including without limitation the rights 9d4401354Smrgto use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10d4401354Smrgcopies of the Software, and to permit persons to whom the Software is 11d4401354Smrgfurnished to do so, subject to the following conditions: 12d4401354Smrg 13d4401354SmrgThe above copyright notice and this permission notice shall be included in all 14d4401354Smrgcopies or substantial portions of the Software. 15d4401354Smrg 16d4401354SmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17d4401354SmrgIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18d4401354SmrgFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19d4401354SmrgAUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 20d4401354SmrgACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 21d4401354SmrgWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22d4401354Smrg 23d4401354SmrgExcept as contained in this notice, the names of the authors or their 24d4401354Smrginstitutions shall not be used in advertising or otherwise to promote the 25d4401354Smrgsale, use or other dealings in this Software without prior written 26d4401354Smrgauthorization from the authors. 27d4401354Smrg--> 28d4401354Smrg 29d4401354Smrg<xcb header="randr" extension-xname="RANDR" extension-name="RandR" 30f591e195Smrg major-version="1" minor-version="4"> 31d4401354Smrg 32d4401354Smrg <import>xproto</import> 33d4401354Smrg <import>render</import> 34d4401354Smrg 35d4401354Smrg <!-- XIDs --> 36d4401354Smrg <xidtype name="MODE" /> 37d4401354Smrg <xidtype name="CRTC" /> 38d4401354Smrg <xidtype name="OUTPUT" /> 39f591e195Smrg <xidtype name="PROVIDER" /> 40d4401354Smrg 41d4401354Smrg <!-- Errors --> 42d4401354Smrg 43f591e195Smrg <error name="BadOutput" number="0" /> 44f591e195Smrg <error name="BadCrtc" number="1" /> 45f591e195Smrg <error name="BadMode" number="2" /> 46f591e195Smrg <error name="BadProvider" number="3" /> 47d4401354Smrg 48d4401354Smrg <!-- Requests --> 49d4401354Smrg 50d4401354Smrg <enum name="Rotation"> 51d4401354Smrg <item name="Rotate_0"> <bit>0</bit></item> 52d4401354Smrg <item name="Rotate_90"> <bit>1</bit></item> 53d4401354Smrg <item name="Rotate_180"><bit>2</bit></item> 54d4401354Smrg <item name="Rotate_270"><bit>3</bit></item> 55d4401354Smrg <item name="Reflect_X"> <bit>4</bit></item> 56d4401354Smrg <item name="Reflect_Y"> <bit>5</bit></item> 57d4401354Smrg </enum> 58d4401354Smrg 59d4401354Smrg <struct name="ScreenSize"> 60d4401354Smrg <field type="CARD16" name="width" /> <!-- pixels --> 61d4401354Smrg <field type="CARD16" name="height" /> 62d4401354Smrg <field type="CARD16" name="mwidth" /> <!-- millimeters --> 63d4401354Smrg <field type="CARD16" name="mheight" /> 64d4401354Smrg </struct> 65d4401354Smrg 66d4401354Smrg <struct name="RefreshRates"> 67d4401354Smrg <field type="CARD16" name="nRates" /> 68d4401354Smrg <list type="CARD16" name="rates"> 69d4401354Smrg <fieldref>nRates</fieldref> 70d4401354Smrg </list> 71d4401354Smrg </struct> 72d4401354Smrg 73d4401354Smrg <request name="QueryVersion" opcode="0"> 74d4401354Smrg <field type="CARD32" name="major_version" /> 75d4401354Smrg <field type="CARD32" name="minor_version" /> 76d4401354Smrg <reply> 77d4401354Smrg <pad bytes="1" /> 78d4401354Smrg <field type="CARD32" name="major_version" /> 79d4401354Smrg <field type="CARD32" name="minor_version" /> 80d4401354Smrg <pad bytes="16" /> 81d4401354Smrg </reply> 82d4401354Smrg </request> 83d4401354Smrg 84d4401354Smrg <!-- Skip obsolete opcode 1 so old clients fail immediately --> 85d4401354Smrg 86d4401354Smrg <enum name="SetConfig"> 87d4401354Smrg <item name="Success"><value>0</value></item> 88d4401354Smrg <item name="InvalidConfigTime"><value>1</value></item> 89d4401354Smrg <item name="InvalidTime"><value>2</value></item> 90d4401354Smrg <item name="Failed"><value>3</value></item> 91d4401354Smrg </enum> 92d4401354Smrg 93d4401354Smrg <!-- This is for the 1.1 version request. I don't believe we need to specify a 1.0 request 94d4401354Smrg as few things used randr 1.0. The only difference is the removal of refresh and padding I think. 95d4401354Smrg BEWARE: the docs lie! 96d4401354Smrg --> 97d4401354Smrg <request name="SetScreenConfig" opcode="2"> 98d4401354Smrg <field type="WINDOW" name="window" /> 99d4401354Smrg <field type="TIMESTAMP" name="timestamp" /> 100d4401354Smrg <field type="TIMESTAMP" name="config_timestamp" /> 101d4401354Smrg <field type="CARD16" name="sizeID" /> 102d4401354Smrg <field type="CARD16" name="rotation" mask="Rotation" /> 103d4401354Smrg <field type="CARD16" name="rate" /> 104d4401354Smrg <pad bytes="2" /> 105d4401354Smrg <reply> 106d4401354Smrg <field type="CARD8" name="status" enum="SetConfig" /> 107d4401354Smrg <field type="TIMESTAMP" name="new_timestamp" /> 108d4401354Smrg <field type="TIMESTAMP" name="config_timestamp" /> 109d4401354Smrg <field type="WINDOW" name="root" /> 110d4401354Smrg <field type="CARD16" name="subpixel_order" enum="SubPixel" /> 111d4401354Smrg <pad bytes="10" /> 112d4401354Smrg </reply> 113d4401354Smrg </request> 114d4401354Smrg 115d4401354Smrg <!-- opcode 3 is obsolete --> 116d4401354Smrg 117d4401354Smrg <enum name="NotifyMask" > 118f591e195Smrg <item name="ScreenChange"> <bit>0</bit></item> 119f591e195Smrg <!-- New in version 1.2 --> 120f591e195Smrg <item name="CrtcChange"> <bit>1</bit></item> 121f591e195Smrg <item name="OutputChange"> <bit>2</bit></item> 122f591e195Smrg <item name="OutputProperty"> <bit>3</bit></item> 123f591e195Smrg <!-- New in version 1.4 --> 124f591e195Smrg <item name="ProviderChange"> <bit>4</bit></item> 125f591e195Smrg <item name="ProviderProperty"><bit>5</bit></item> 126f591e195Smrg <item name="ResourceChange"> <bit>6</bit></item> 127d4401354Smrg </enum> 128d4401354Smrg 129d4401354Smrg <request name="SelectInput" opcode="4"> 130d4401354Smrg <field type="WINDOW" name="window" /> 131d4401354Smrg <field type="CARD16" name="enable" mask="NotifyMask" /> 132d4401354Smrg <pad bytes="2" /> 133d4401354Smrg </request> 134d4401354Smrg 135d4401354Smrg <!-- 136d4401354Smrg I think this is correct. It works. though I believe nInfo is a bit high... 137d4401354Smrg --> 138d4401354Smrg <request name="GetScreenInfo" opcode="5"> 139d4401354Smrg <field type="WINDOW" name="window" /> 140d4401354Smrg <reply> 141d4401354Smrg <field type="CARD8" name="rotations" mask="Rotation" /> 142d4401354Smrg <field type="WINDOW" name="root" /> 143d4401354Smrg <field type="TIMESTAMP" name="timestamp" /> 144d4401354Smrg <field type="TIMESTAMP" name="config_timestamp" /> 145d4401354Smrg <field type="CARD16" name="nSizes" /> 146d4401354Smrg <field type="CARD16" name="sizeID" /> 147d4401354Smrg <field type="CARD16" name="rotation" mask="Rotation" /> 148d4401354Smrg <field type="CARD16" name="rate" /> 149d4401354Smrg <field type="CARD16" name="nInfo" /> 150d4401354Smrg <pad bytes="2" /> 151d4401354Smrg <list type="ScreenSize" name="sizes"> 152d4401354Smrg <fieldref>nSizes</fieldref> 153d4401354Smrg </list> 154d4401354Smrg <list type="RefreshRates" name="rates"> 155d4401354Smrg <op op="-"> 156d4401354Smrg <fieldref>nInfo</fieldref> 157d4401354Smrg <fieldref>nSizes</fieldref> 158d4401354Smrg </op> 159d4401354Smrg </list> 160d4401354Smrg </reply> 161d4401354Smrg </request> 162d4401354Smrg 163d4401354Smrg <!-- new in version 1.2 --> 164d4401354Smrg 165d4401354Smrg <request name="GetScreenSizeRange" opcode="6"> 166d4401354Smrg <field type="WINDOW" name="window" /> 167d4401354Smrg <reply> 168d4401354Smrg <pad bytes="1" /> 169d4401354Smrg <field type="CARD16" name="min_width" /> 170d4401354Smrg <field type="CARD16" name="min_height" /> 171d4401354Smrg <field type="CARD16" name="max_width" /> 172d4401354Smrg <field type="CARD16" name="max_height" /> 173d4401354Smrg <pad bytes="16" /> 174d4401354Smrg </reply> 175d4401354Smrg </request> 176d4401354Smrg 177d4401354Smrg <request name="SetScreenSize" opcode="7"> 178d4401354Smrg <field type="WINDOW" name="window" /> 179d4401354Smrg <field type="CARD16" name="width" /> <!-- pixels --> 180d4401354Smrg <field type="CARD16" name="height" /> 181d4401354Smrg <field type="CARD32" name="mm_width" /> <!-- millimeters --> 182d4401354Smrg <field type="CARD32" name="mm_height" /> 183d4401354Smrg </request> 184d4401354Smrg 185d4401354Smrg <!-- for GetScreenResources.ModeInfo.ModeFlag --> 186d4401354Smrg <enum name="ModeFlag"> 187d4401354Smrg <item name="HsyncPositive"> <bit>0</bit></item> 188d4401354Smrg <item name="HsyncNegative"> <bit>1</bit></item> 189d4401354Smrg <item name="VsyncPositive"> <bit>2</bit></item> 190d4401354Smrg <item name="VsyncNegative"> <bit>3</bit></item> 191d4401354Smrg <item name="Interlace"> <bit>4</bit></item> 192d4401354Smrg <item name="DoubleScan"> <bit>5</bit></item> 193d4401354Smrg <item name="Csync"> <bit>6</bit></item> 194d4401354Smrg <item name="CsyncPositive"> <bit>7</bit></item> 195d4401354Smrg <item name="CsyncNegative"> <bit>8</bit></item> 196d4401354Smrg <item name="HskewPresent"> <bit>9</bit></item> 197d4401354Smrg <item name="Bcast"> <bit>10</bit></item> 198d4401354Smrg <item name="PixelMultiplex"><bit>11</bit></item> 199d4401354Smrg <item name="DoubleClock"> <bit>12</bit></item> 200d4401354Smrg <item name="HalveClock"> <bit>13</bit></item> 201d4401354Smrg </enum> 202d4401354Smrg 203d4401354Smrg <struct name="ModeInfo"> 204d4401354Smrg <field type="CARD32" name="id" /> 205d4401354Smrg <field type="CARD16" name="width" /> 206d4401354Smrg <field type="CARD16" name="height" /> 207d4401354Smrg <field type="CARD32" name="dot_clock" /> 208d4401354Smrg <field type="CARD16" name="hsync_start" /> 209d4401354Smrg <field type="CARD16" name="hsync_end" /> 210d4401354Smrg <field type="CARD16" name="htotal" /> 211d4401354Smrg <field type="CARD16" name="hskew" /> 212d4401354Smrg <field type="CARD16" name="vsync_start" /> 213d4401354Smrg <field type="CARD16" name="vsync_end" /> 214d4401354Smrg <field type="CARD16" name="vtotal" /> 215d4401354Smrg <field type="CARD16" name="name_len" /> 216d4401354Smrg <field type="CARD32" name="mode_flags" mask="ModeFlag" /> 217d4401354Smrg <!-- the mode name itself --> 218d4401354Smrg </struct> 219d4401354Smrg 220d4401354Smrg <request name="GetScreenResources" opcode="8"> 221d4401354Smrg <field type="WINDOW" name="window" /> 222d4401354Smrg <reply> 223d4401354Smrg <pad bytes="1" /> 224d4401354Smrg <field type="TIMESTAMP" name="timestamp" /> 225d4401354Smrg <field type="TIMESTAMP" name="config_timestamp" /> 226d4401354Smrg <field type="CARD16" name="num_crtcs" /> 227d4401354Smrg <field type="CARD16" name="num_outputs" /> 228d4401354Smrg <field type="CARD16" name="num_modes" /> 229d4401354Smrg <field type="CARD16" name="names_len" /> 230d4401354Smrg <pad bytes="8" /> 231d4401354Smrg <list type="CRTC" name="crtcs"> 232d4401354Smrg <fieldref>num_crtcs</fieldref> 233d4401354Smrg </list> 234d4401354Smrg <list type="OUTPUT" name="outputs"> 235d4401354Smrg <fieldref>num_outputs</fieldref> 236d4401354Smrg </list> 237d4401354Smrg <list type="ModeInfo" name="modes"> 238d4401354Smrg <fieldref>num_modes</fieldref> 239d4401354Smrg </list> 240d4401354Smrg <!-- FIXME: this is *not* null separated! 241d4401354Smrg One must use ModeInfo.name_len from each previous 242d4401354Smrg ModeInfo to infer the position of the name. --> 243d4401354Smrg <list type="BYTE" name="names"> 244d4401354Smrg <fieldref>names_len</fieldref> 245d4401354Smrg </list> 246d4401354Smrg </reply> 247d4401354Smrg </request> 248d4401354Smrg 249d4401354Smrg <!-- for GetOutputInfo.connection --> 250d4401354Smrg <enum name="Connection"> 251f591e195Smrg <item name="Connected"> <value>0</value> </item> 252f591e195Smrg <item name="Disconnected"> <value>1</value> </item> 253f591e195Smrg <item name="Unknown"> <value>2</value> </item> 254d4401354Smrg </enum> 255d4401354Smrg 256d4401354Smrg <request name="GetOutputInfo" opcode="9"> 257d4401354Smrg <field type="OUTPUT" name="output" /> 258d4401354Smrg <field type="TIMESTAMP" name="config_timestamp" /> 259d4401354Smrg <reply> 260d4401354Smrg <field type="CARD8" name="status" enum="SetConfig" /> 261d4401354Smrg <field type="TIMESTAMP" name="timestamp" /> 262d4401354Smrg <field type="CRTC" name="crtc" /> 263d4401354Smrg <field type="CARD32" name="mm_width" /> <!-- millimeters --> 264d4401354Smrg <field type="CARD32" name="mm_height" /> 265d4401354Smrg <field type="CARD8" name="connection" enum="Connection" /> 266d4401354Smrg <field type="CARD8" name="subpixel_order" enum="SubPixel" /> 267d4401354Smrg <field type="CARD16" name="num_crtcs" /> 268d4401354Smrg <field type="CARD16" name="num_modes" /> 269d4401354Smrg <field type="CARD16" name="num_preferred" /> 270d4401354Smrg <field type="CARD16" name="num_clones" /> 271d4401354Smrg <field type="CARD16" name="name_len" /> 272d4401354Smrg <list type="CRTC" name="crtcs"> 273d4401354Smrg <fieldref>num_crtcs</fieldref> 274d4401354Smrg </list> 275d4401354Smrg <list type="MODE" name="modes"> 276d4401354Smrg <fieldref>num_modes</fieldref> 277d4401354Smrg </list> 278d4401354Smrg <list type="OUTPUT" name="clones"> 279d4401354Smrg <fieldref>num_clones</fieldref> 280d4401354Smrg </list> 281d4401354Smrg <list type="BYTE" name="name"> 282d4401354Smrg <fieldref>name_len</fieldref> 283d4401354Smrg </list> 284d4401354Smrg </reply> 285d4401354Smrg </request> 286d4401354Smrg 287d4401354Smrg <request name="ListOutputProperties" opcode="10"> 288d4401354Smrg <field type="OUTPUT" name="output" /> 289d4401354Smrg <reply> 290d4401354Smrg <pad bytes="1" /> 291d4401354Smrg <field type="CARD16" name="num_atoms" /> 292d4401354Smrg <pad bytes="22" /> 293d4401354Smrg <list type="ATOM" name="atoms"> 294d4401354Smrg <fieldref>num_atoms</fieldref> 295d4401354Smrg </list> 296d4401354Smrg </reply> 297d4401354Smrg </request> 298d4401354Smrg 299d4401354Smrg <request name="QueryOutputProperty" opcode="11"> 300d4401354Smrg <field type="OUTPUT" name="output" /> 301d4401354Smrg <field type="ATOM" name="property" /> 302d4401354Smrg <reply> 303d4401354Smrg <pad bytes="1" /> 304d4401354Smrg <field type="BOOL" name="pending" /> 305d4401354Smrg <field type="BOOL" name="range" /> 306d4401354Smrg <field type="BOOL" name="immutable" /> 307d4401354Smrg <pad bytes="21" /> 308d4401354Smrg <list type="INT32" name="validValues"> 309d4401354Smrg <fieldref>length</fieldref> 310d4401354Smrg </list> 311d4401354Smrg </reply> 312d4401354Smrg </request> 313d4401354Smrg 314d4401354Smrg <request name="ConfigureOutputProperty" opcode="12"> 315d4401354Smrg <field type="OUTPUT" name="output" /> 316d4401354Smrg <field type="ATOM" name="property" /> 317d4401354Smrg <field type="BOOL" name="pending" /> 318d4401354Smrg <field type="BOOL" name="range" /> 319d4401354Smrg <pad bytes="2" /> 320d4401354Smrg <list type="INT32" name="values" /> 321d4401354Smrg </request> 322d4401354Smrg 323d4401354Smrg <request name="ChangeOutputProperty" opcode="13"> 324d4401354Smrg <field type="OUTPUT" name="output" /> 325d4401354Smrg <field type="ATOM" name="property" /> 326d4401354Smrg <field type="ATOM" name="type" /> 327d4401354Smrg <field type="CARD8" name="format" /> 328d4401354Smrg <field type="CARD8" name="mode" enum="PropMode" /> 329d4401354Smrg <pad bytes="2" /> 330d4401354Smrg <field type="CARD32" name="num_units" /> 331d4401354Smrg <list type="void" name="data"> 332d4401354Smrg <op op="/"> 333d4401354Smrg <op op="*"> 334d4401354Smrg <fieldref>num_units</fieldref> 335d4401354Smrg <fieldref>format</fieldref> 336d4401354Smrg </op> 337d4401354Smrg <value>8</value> 338d4401354Smrg </op> 339d4401354Smrg </list> 340d4401354Smrg </request> 341d4401354Smrg 342d4401354Smrg <request name="DeleteOutputProperty" opcode="14"> 343d4401354Smrg <field type="OUTPUT" name="output" /> 344d4401354Smrg <field type="ATOM" name="property" /> 345d4401354Smrg </request> 346d4401354Smrg 347d4401354Smrg <!-- NOTE: num_items depends on format (8/16/32) --> 348d4401354Smrg <request name="GetOutputProperty" opcode="15"> 349d4401354Smrg <field type="OUTPUT" name="output" /> 350d4401354Smrg <field type="ATOM" name="property" /> 351d4401354Smrg <field type="ATOM" name="type" altenum="GetPropertyType" /> 352d4401354Smrg <field type="CARD32" name="long_offset" /> 353d4401354Smrg <field type="CARD32" name="long_length" /> 354d4401354Smrg <field type="BOOL" name="delete" /> 355d4401354Smrg <field type="BOOL" name="pending" /> 356d4401354Smrg <pad bytes="2" /> 357d4401354Smrg <reply> 358d4401354Smrg <field type="CARD8" name="format" /> 359d4401354Smrg <field type="ATOM" name="type" altenum="Atom" /> 360d4401354Smrg <field type="CARD32" name="bytes_after" /> 361d4401354Smrg <field type="CARD32" name="num_items" /> 362d4401354Smrg <pad bytes="12" /> 363d4401354Smrg <list type="BYTE" name="data"> 364d4401354Smrg <!-- n * format / 8 --> 365d4401354Smrg <op op="*"> 366d4401354Smrg <fieldref>num_items</fieldref> 367d4401354Smrg <op op="/"> 368d4401354Smrg <fieldref>format</fieldref> 369d4401354Smrg <value>8</value> 370d4401354Smrg </op> 371d4401354Smrg </op> 372d4401354Smrg </list> 373d4401354Smrg </reply> 374d4401354Smrg </request> 375d4401354Smrg 376d4401354Smrg <request name="CreateMode" opcode="16"> 377d4401354Smrg <field type="WINDOW" name="window" /> 378d4401354Smrg <field type="ModeInfo" name="mode_info" /> 379d4401354Smrg <list type="char" name="name" /> 380d4401354Smrg <reply> 381d4401354Smrg <pad bytes="1" /> 382d4401354Smrg <field type="MODE" name="mode" /> 383d4401354Smrg <pad bytes="20" /> 384d4401354Smrg </reply> 385d4401354Smrg </request> 386d4401354Smrg 387d4401354Smrg <request name="DestroyMode" opcode="17"> 388d4401354Smrg <field type="MODE" name="mode" /> 389d4401354Smrg </request> 390d4401354Smrg 391d4401354Smrg <request name="AddOutputMode" opcode="18"> 392d4401354Smrg <field type="OUTPUT" name="output" /> 393d4401354Smrg <field type="MODE" name="mode" /> 394d4401354Smrg </request> 395d4401354Smrg 396d4401354Smrg <request name="DeleteOutputMode" opcode="19"> 397d4401354Smrg <field type="OUTPUT" name="output" /> 398d4401354Smrg <field type="MODE" name="mode" /> 399d4401354Smrg </request> 400d4401354Smrg 401d4401354Smrg <request name="GetCrtcInfo" opcode="20"> 402d4401354Smrg <field type="CRTC" name="crtc" /> 403d4401354Smrg <field type="TIMESTAMP" name="config_timestamp" /> 404d4401354Smrg <reply> 405d4401354Smrg <field type="CARD8" name="status" enum="SetConfig" /> 406d4401354Smrg <field type="TIMESTAMP" name="timestamp" /> 407d4401354Smrg <field type="INT16" name="x" /> 408d4401354Smrg <field type="INT16" name="y" /> 409d4401354Smrg <field type="CARD16" name="width" /> 410d4401354Smrg <field type="CARD16" name="height" /> 411d4401354Smrg <field type="MODE" name="mode" /> 412d4401354Smrg <field type="CARD16" name="rotation" mask="Rotation" /> 413d4401354Smrg <field type="CARD16" name="rotations" mask="Rotation" /> 414d4401354Smrg <field type="CARD16" name="num_outputs" /> 415d4401354Smrg <field type="CARD16" name="num_possible_outputs" /> 416d4401354Smrg <list type="OUTPUT" name="outputs"> 417d4401354Smrg <fieldref>num_outputs</fieldref> 418d4401354Smrg </list> 419d4401354Smrg <list type="OUTPUT" name="possible"> 420d4401354Smrg <fieldref>num_possible_outputs</fieldref> 421d4401354Smrg </list> 422d4401354Smrg </reply> 423d4401354Smrg </request> 424d4401354Smrg 425d4401354Smrg <request name="SetCrtcConfig" opcode="21"> 426d4401354Smrg <field type="CRTC" name="crtc" /> 427d4401354Smrg <field type="TIMESTAMP" name="timestamp" /> 428d4401354Smrg <field type="TIMESTAMP" name="config_timestamp" /> 429d4401354Smrg <field type="INT16" name="x" /> 430d4401354Smrg <field type="INT16" name="y" /> 431d4401354Smrg <field type="MODE" name="mode" /> 432d4401354Smrg <field type="CARD16" name="rotation" mask="Rotation" /> 433d4401354Smrg <pad bytes="2" /> 434d4401354Smrg <list type="OUTPUT" name="outputs" /> 435d4401354Smrg <reply> 436d4401354Smrg <field type="CARD8" name="status" enum="SetConfig" /> 437d4401354Smrg <field type="TIMESTAMP" name="timestamp" /> 438d4401354Smrg <pad bytes="20" /> 439d4401354Smrg </reply> 440d4401354Smrg </request> 441d4401354Smrg 442d4401354Smrg <request name="GetCrtcGammaSize" opcode="22"> 443d4401354Smrg <field type="CRTC" name="crtc" /> 444d4401354Smrg <reply> 445d4401354Smrg <pad bytes="1" /> 446d4401354Smrg <field type="CARD16" name="size" /> 447d4401354Smrg <pad bytes="22" /> 448d4401354Smrg </reply> 449d4401354Smrg </request> 450d4401354Smrg 451d4401354Smrg <request name="GetCrtcGamma" opcode="23"> 452d4401354Smrg <field type="CRTC" name="crtc" /> 453d4401354Smrg <reply> 454d4401354Smrg <pad bytes="1" /> 455d4401354Smrg <field type="CARD16" name="size" /> 456d4401354Smrg <pad bytes="22" /> 457d4401354Smrg <list type="CARD16" name="red"> 458d4401354Smrg <fieldref>size</fieldref> 459d4401354Smrg </list> 460d4401354Smrg <list type="CARD16" name="green"> 461d4401354Smrg <fieldref>size</fieldref> 462d4401354Smrg </list> 463d4401354Smrg <list type="CARD16" name="blue"> 464d4401354Smrg <fieldref>size</fieldref> 465d4401354Smrg </list> 466d4401354Smrg </reply> 467d4401354Smrg </request> 468d4401354Smrg 469d4401354Smrg <request name="SetCrtcGamma" opcode="24"> 470d4401354Smrg <field type="CRTC" name="crtc" /> 471d4401354Smrg <field type="CARD16" name="size" /> 472d4401354Smrg <pad bytes="2"/> 473d4401354Smrg <list type="CARD16" name="red"> 474d4401354Smrg <fieldref>size</fieldref> 475d4401354Smrg </list> 476d4401354Smrg <list type="CARD16" name="green"> 477d4401354Smrg <fieldref>size</fieldref> 478d4401354Smrg </list> 479d4401354Smrg <list type="CARD16" name="blue"> 480d4401354Smrg <fieldref>size</fieldref> 481d4401354Smrg </list> 482d4401354Smrg </request> 483d4401354Smrg 484d4401354Smrg <!-- new in 1.3 --> 485d4401354Smrg 486d4401354Smrg <request name="GetScreenResourcesCurrent" opcode="25"> 487d4401354Smrg <field type="WINDOW" name="window" /> 488d4401354Smrg <reply> 489d4401354Smrg <pad bytes="1" /> 490d4401354Smrg <field type="TIMESTAMP" name="timestamp" /> 491d4401354Smrg <field type="TIMESTAMP" name="config_timestamp" /> 492d4401354Smrg <field type="CARD16" name="num_crtcs" /> 493d4401354Smrg <field type="CARD16" name="num_outputs" /> 494d4401354Smrg <field type="CARD16" name="num_modes" /> 495d4401354Smrg <field type="CARD16" name="names_len" /> 496d4401354Smrg <pad bytes="8" /> 497d4401354Smrg <list type="CRTC" name="crtcs"> 498d4401354Smrg <fieldref>num_crtcs</fieldref> 499d4401354Smrg </list> 500d4401354Smrg <list type="OUTPUT" name="outputs"> 501d4401354Smrg <fieldref>num_outputs</fieldref> 502d4401354Smrg </list> 503d4401354Smrg <list type="ModeInfo" name="modes"> 504d4401354Smrg <fieldref>num_modes</fieldref> 505d4401354Smrg </list> 506d4401354Smrg <!-- FIXME: this is *not* null separated! 507d4401354Smrg One must use ModeInfo.name_len from each previous 508d4401354Smrg ModeInfo to infer the position of the name. --> 509d4401354Smrg <list type="BYTE" name="names"> 510d4401354Smrg <fieldref>names_len</fieldref> 511d4401354Smrg </list> 512d4401354Smrg </reply> 513d4401354Smrg </request> 514d4401354Smrg 515f591e195Smrg <enum name="Transform"> 516f591e195Smrg <!-- Introduced in version 1.3, but not referenced. --> 517f591e195Smrg <item name="Unit"> <bit>0</bit></item> 518f591e195Smrg <item name="ScaleUp"> <bit>1</bit></item> 519f591e195Smrg <item name="ScaleDown"> <bit>2</bit></item> 520f591e195Smrg <item name="Projective"> <bit>3</bit></item> 521f591e195Smrg </enum> 522f591e195Smrg 523d4401354Smrg <request name="SetCrtcTransform" opcode="26"> 524d4401354Smrg <field type="CRTC" name="crtc" /> 525d4401354Smrg <field type="TRANSFORM" name="transform" /> 526d4401354Smrg <field type="CARD16" name="filter_len" /> 527d4401354Smrg <pad bytes="2" /> 528d4401354Smrg <list type="char" name="filter_name"> 529d4401354Smrg <fieldref>filter_len</fieldref> 530d4401354Smrg </list> 531d4401354Smrg <list type="FIXED" name="filter_params" /> 532d4401354Smrg </request> 533d4401354Smrg 534d4401354Smrg <request name="GetCrtcTransform" opcode="27"> 535d4401354Smrg <field type="CRTC" name="crtc" /> 536d4401354Smrg <reply> 537d4401354Smrg <pad bytes="1" /> 538d4401354Smrg <field type="TRANSFORM" name="pending_transform" /> 539d4401354Smrg <field type="BOOL" name="has_transforms" /> 540d4401354Smrg <pad bytes="3" /> 541d4401354Smrg <field type="TRANSFORM" name="current_transform" /> 542d4401354Smrg <pad bytes="4" /> 543d4401354Smrg <field type="CARD16" name="pending_len" /> 544d4401354Smrg <field type="CARD16" name="pending_nparams" /> 545d4401354Smrg <field type="CARD16" name="current_len" /> 546d4401354Smrg <field type="CARD16" name="current_nparams" /> 547d4401354Smrg <list type="char" name="pending_filter_name" > 548d4401354Smrg <fieldref>pending_len</fieldref> 549d4401354Smrg </list> 550d4401354Smrg <list type="FIXED" name="pending_params" > 551d4401354Smrg <fieldref>pending_nparams</fieldref> 552d4401354Smrg </list> 553d4401354Smrg <list type="char" name="current_filter_name" > 554d4401354Smrg <fieldref>current_len</fieldref> 555d4401354Smrg </list> 556d4401354Smrg <list type="FIXED" name="current_params" > 557d4401354Smrg <fieldref>current_nparams</fieldref> 558d4401354Smrg </list> 559d4401354Smrg </reply> 560d4401354Smrg </request> 561d4401354Smrg 562d4401354Smrg <request name="GetPanning" opcode="28"> 563d4401354Smrg <field type="CRTC" name="crtc" /> 564d4401354Smrg <reply> 565d4401354Smrg <field type="CARD8" name="status" enum="SetConfig" /> 566d4401354Smrg <field type="TIMESTAMP" name="timestamp" /> 567d4401354Smrg <field type="CARD16" name="left" /> 568d4401354Smrg <field type="CARD16" name="top" /> 569d4401354Smrg <field type="CARD16" name="width" /> 570d4401354Smrg <field type="CARD16" name="height" /> 571d4401354Smrg <field type="CARD16" name="track_left" /> 572d4401354Smrg <field type="CARD16" name="track_top" /> 573d4401354Smrg <field type="CARD16" name="track_width" /> 574d4401354Smrg <field type="CARD16" name="track_height" /> 575d4401354Smrg <field type="INT16" name="border_left" /> 576d4401354Smrg <field type="INT16" name="border_top" /> 577d4401354Smrg <field type="INT16" name="border_right" /> 578d4401354Smrg <field type="INT16" name="border_bottom" /> 579d4401354Smrg </reply> 580d4401354Smrg </request> 581d4401354Smrg 582d4401354Smrg <request name="SetPanning" opcode="29"> 583d4401354Smrg <field type="CRTC" name="crtc" /> 584d4401354Smrg <field type="TIMESTAMP" name="timestamp" /> 585d4401354Smrg <field type="CARD16" name="left" /> 586d4401354Smrg <field type="CARD16" name="top" /> 587d4401354Smrg <field type="CARD16" name="width" /> 588d4401354Smrg <field type="CARD16" name="height" /> 589d4401354Smrg <field type="CARD16" name="track_left" /> 590d4401354Smrg <field type="CARD16" name="track_top" /> 591d4401354Smrg <field type="CARD16" name="track_width" /> 592d4401354Smrg <field type="CARD16" name="track_height" /> 593d4401354Smrg <field type="INT16" name="border_left" /> 594d4401354Smrg <field type="INT16" name="border_top" /> 595d4401354Smrg <field type="INT16" name="border_right" /> 596d4401354Smrg <field type="INT16" name="border_bottom" /> 597d4401354Smrg <reply> 598d4401354Smrg <field type="CARD8" name="status" enum="SetConfig" /> 599d4401354Smrg <field type="TIMESTAMP" name="timestamp" /> 600d4401354Smrg </reply> 601d4401354Smrg </request> 602d4401354Smrg 603d4401354Smrg <request name="SetOutputPrimary" opcode="30"> 604d4401354Smrg <field type="WINDOW" name="window" /> 605d4401354Smrg <field type="OUTPUT" name="output" /> 606d4401354Smrg </request> 607d4401354Smrg 608d4401354Smrg <request name="GetOutputPrimary" opcode="31"> 609d4401354Smrg <field type="WINDOW" name="window" /> 610d4401354Smrg <reply> 611d4401354Smrg <pad bytes="1" /> 612d4401354Smrg <field type="OUTPUT" name="output" /> 613d4401354Smrg </reply> 614d4401354Smrg </request> 615d4401354Smrg 616f591e195Smrg <!-- New in version 1.4 --> 617f591e195Smrg 618f591e195Smrg <request name="GetProviders" opcode="32"> 619f591e195Smrg <field type="WINDOW" name="window" /> 620f591e195Smrg <reply> 621f591e195Smrg <pad bytes="1" /> 622f591e195Smrg <field type="TIMESTAMP" name="timestamp" /> 623f591e195Smrg <field type="CARD16" name="num_providers" /> 624f591e195Smrg <pad bytes="18" /> 625f591e195Smrg <list type="PROVIDER" name="providers"> 626f591e195Smrg <fieldref>num_providers</fieldref> 627f591e195Smrg </list> 628f591e195Smrg </reply> 629f591e195Smrg </request> 630f591e195Smrg 631f591e195Smrg <enum name="ProviderCapability"> 632f591e195Smrg <item name="SourceOutput"> <bit>0</bit></item> 633f591e195Smrg <item name="SinkOutput"> <bit>1</bit></item> 634f591e195Smrg <item name="SourceOffload"> <bit>2</bit></item> 635f591e195Smrg <item name="SinkOffload"> <bit>3</bit></item> 636f591e195Smrg </enum> 637f591e195Smrg 638f591e195Smrg <request name="GetProviderInfo" opcode="33"> 639f591e195Smrg <field type="PROVIDER" name="provider" /> 640f591e195Smrg <field type="TIMESTAMP" name="config_timestamp" /> 641f591e195Smrg <reply> 642f591e195Smrg <field type="CARD8" name="status" /> 643f591e195Smrg <field type="TIMESTAMP" name="timestamp" /> 644f591e195Smrg <field type="CARD32" name="capabilities" mask="ProviderCapability" /> 645f591e195Smrg <field type="CARD16" name="num_crtcs" /> 646f591e195Smrg <field type="CARD16" name="num_outputs" /> 647f591e195Smrg <field type="CARD16" name="num_associated_providers" /> 648f591e195Smrg <field type="CARD16" name="name_len" /> 649f591e195Smrg <pad bytes="8" /> 650f591e195Smrg <list type="CRTC" name="crtcs"> 651f591e195Smrg <fieldref>num_crtcs</fieldref> 652f591e195Smrg </list> 653f591e195Smrg <list type="OUTPUT" name="outputs"> 654f591e195Smrg <fieldref>num_outputs</fieldref> 655f591e195Smrg </list> 656f591e195Smrg <list type="PROVIDER" name="associated_providers"> 657f591e195Smrg <fieldref>num_associated_providers</fieldref> 658f591e195Smrg </list> 659f591e195Smrg <list type="CARD32" name="associated_capability"> 660f591e195Smrg <fieldref>num_associated_providers</fieldref> 661f591e195Smrg </list> 662f591e195Smrg <list type="char" name="name"> 663f591e195Smrg <fieldref>name_len</fieldref> 664f591e195Smrg </list> 665f591e195Smrg <!-- XXX: Prepared for the future. Until xcbgen supports 666f591e195Smrg the align attribute in <pad>, we ignore the 667f591e195Smrg trailing pad bytes here. 668f591e195Smrg <pad align="4" /> 669f591e195Smrg --> 670f591e195Smrg </reply> 671f591e195Smrg </request> 672f591e195Smrg 673f591e195Smrg <request name="SetProviderOffloadSink" opcode="34"> 674f591e195Smrg <field type="PROVIDER" name="provider" /> 675f591e195Smrg <field type="PROVIDER" name="sink_provider" /> 676f591e195Smrg <field type="TIMESTAMP" name="config_timestamp" /> 677f591e195Smrg </request> 678f591e195Smrg 679f591e195Smrg <request name="SetProviderOutputSource" opcode="35"> 680f591e195Smrg <field type="PROVIDER" name="provider" /> 681f591e195Smrg <field type="PROVIDER" name="source_provider" /> 682f591e195Smrg <field type="TIMESTAMP" name="config_timestamp" /> 683f591e195Smrg </request> 684f591e195Smrg 685f591e195Smrg <request name="ListProviderProperties" opcode="36"> 686f591e195Smrg <field type="PROVIDER" name="provider" /> 687f591e195Smrg <reply> 688f591e195Smrg <pad bytes="1" /> 689f591e195Smrg <field type="CARD16" name="num_atoms" /> 690f591e195Smrg <pad bytes="22" /> 691f591e195Smrg <list type="ATOM" name="atoms"> 692f591e195Smrg <fieldref>num_atoms</fieldref> 693f591e195Smrg </list> 694f591e195Smrg </reply> 695f591e195Smrg </request> 696f591e195Smrg 697f591e195Smrg <request name="QueryProviderProperty" opcode="37"> 698f591e195Smrg <field type="PROVIDER" name="provider" /> 699f591e195Smrg <field type="ATOM" name="property" /> 700f591e195Smrg <reply> 701f591e195Smrg <pad bytes="1" /> 702f591e195Smrg <field type="BOOL" name="pending" /> 703f591e195Smrg <field type="BOOL" name="range" /> 704f591e195Smrg <field type="BOOL" name="immutable" /> 705f591e195Smrg <pad bytes="21" /> 706f591e195Smrg <list type="INT32" name="valid_values"> 707f591e195Smrg <fieldref>length</fieldref> 708f591e195Smrg </list> 709f591e195Smrg </reply> 710f591e195Smrg </request> 711f591e195Smrg 712f591e195Smrg <request name="ConfigureProviderProperty" opcode="38"> 713f591e195Smrg <field type="PROVIDER" name="provider" /> 714f591e195Smrg <field type="ATOM" name="property" /> 715f591e195Smrg <field type="BOOL" name="pending" /> 716f591e195Smrg <field type="BOOL" name="range" /> 717f591e195Smrg <pad bytes="2" /> 718f591e195Smrg <list type="INT32" name="values" /> 719f591e195Smrg </request> 720f591e195Smrg 721f591e195Smrg <request name="ChangeProviderProperty" opcode="39"> 722f591e195Smrg <field type="PROVIDER" name="provider" /> 723f591e195Smrg <field type="ATOM" name="property" /> 724f591e195Smrg <field type="ATOM" name="type" /> 725f591e195Smrg <field type="CARD8" name="format" /> 726f591e195Smrg <field type="CARD8" name="mode" /> 727f591e195Smrg <pad bytes="2" /> 728f591e195Smrg <field type="CARD32" name="num_items" /> 729f591e195Smrg <list type="void" name="data"> 730f591e195Smrg <op op="*"> 731f591e195Smrg <fieldref>num_items</fieldref> 732f591e195Smrg <op op="/"> 733f591e195Smrg <fieldref>format</fieldref> 734f591e195Smrg <value>8</value> 735f591e195Smrg </op> 736f591e195Smrg </op> 737f591e195Smrg </list> 738f591e195Smrg </request> 739f591e195Smrg 740f591e195Smrg <request name="DeleteProviderProperty" opcode="40"> 741f591e195Smrg <field type="PROVIDER" name="provider" /> 742f591e195Smrg <field type="ATOM" name="property" /> 743f591e195Smrg </request> 744f591e195Smrg 745f591e195Smrg <request name="GetProviderProperty" opcode="41"> 746f591e195Smrg <field type="PROVIDER" name="provider" /> 747f591e195Smrg <field type="ATOM" name="property" /> 748f591e195Smrg <field type="ATOM" name="type" /> <!-- AnyProperty --> 749f591e195Smrg <field type="CARD32" name="long_offset" /> 750f591e195Smrg <field type="CARD32" name="long_length" /> 751f591e195Smrg <field type="BOOL" name="delete" /> 752f591e195Smrg <field type="BOOL" name="pending" /> 753f591e195Smrg <pad bytes="2" /> 754f591e195Smrg <reply> 755f591e195Smrg <field type="CARD8" name="format" /> 756f591e195Smrg <field type="ATOM" name="type" /> <!-- None --> 757f591e195Smrg <field type="CARD32" name="bytes_after" /> 758f591e195Smrg <field type="CARD32" name="num_items" /> 759f591e195Smrg <pad bytes="12" /> 760f591e195Smrg <list type="void" name="data"> 761f591e195Smrg <op op="*"> 762f591e195Smrg <fieldref>num_items</fieldref> 763f591e195Smrg <op op="/"> 764f591e195Smrg <fieldref>format</fieldref> 765f591e195Smrg <value>8</value> 766f591e195Smrg </op> 767f591e195Smrg </op> 768f591e195Smrg </list> 769f591e195Smrg </reply> 770f591e195Smrg </request> 771f591e195Smrg 772d4401354Smrg <!-- Events --> 773d4401354Smrg 774d4401354Smrg <event name="ScreenChangeNotify" number="0"> 775d4401354Smrg <field type="CARD8" name="rotation" mask="Rotation" /> 776d4401354Smrg <field type="TIMESTAMP" name="timestamp" /> 777d4401354Smrg <field type="TIMESTAMP" name="config_timestamp" /> 778d4401354Smrg <field type="WINDOW" name="root" /> 779d4401354Smrg <field type="WINDOW" name="request_window" /> 780d4401354Smrg <field type="CARD16" name="sizeID" /> 781d4401354Smrg <field type="CARD16" name="subpixel_order" enum="SubPixel" /> 782d4401354Smrg <field type="CARD16" name="width" /> 783d4401354Smrg <field type="CARD16" name="height" /> 784d4401354Smrg <field type="CARD16" name="mwidth" /> 785d4401354Smrg <field type="CARD16" name="mheight" /> 786d4401354Smrg </event> 787d4401354Smrg 788d4401354Smrg <!-- New in version 1.2 --> 789d4401354Smrg 790d4401354Smrg <!-- subcode --> 791d4401354Smrg <enum name="Notify" > 792f591e195Smrg <item name="CrtcChange"> <value>0</value></item> 793f591e195Smrg <item name="OutputChange"> <value>1</value></item> 794f591e195Smrg <item name="OutputProperty"> <value>2</value></item> 795f591e195Smrg <item name="ProviderChange"> <value>3</value></item> 796f591e195Smrg <item name="ProviderProperty"><value>4</value></item> 797f591e195Smrg <item name="ResourceChange"> <value>5</value></item> 798d4401354Smrg </enum> 799d4401354Smrg 800d4401354Smrg <struct name="CrtcChange"> 801d4401354Smrg <field type="TIMESTAMP" name="timestamp" /> 802d4401354Smrg <field type="WINDOW" name="window" /> 803d4401354Smrg <field type="CRTC" name="crtc" /> 804d4401354Smrg <field type="MODE" name="mode" /> 805d4401354Smrg <field type="CARD16" name="rotation" mask="Rotation" /> 806d4401354Smrg <pad bytes="2" /> 807d4401354Smrg <field type="INT16" name="x" /> 808d4401354Smrg <field type="INT16" name="y" /> 809d4401354Smrg <field type="CARD16" name="width" /> 810d4401354Smrg <field type="CARD16" name="height" /> 811d4401354Smrg </struct> 812d4401354Smrg 813d4401354Smrg <struct name="OutputChange"> 814d4401354Smrg <field type="TIMESTAMP" name="timestamp" /> 815d4401354Smrg <field type="TIMESTAMP" name="config_timestamp" /> 816d4401354Smrg <field type="WINDOW" name="window" /> 817d4401354Smrg <field type="OUTPUT" name="output" /> 818d4401354Smrg <field type="CRTC" name="crtc" /> 819d4401354Smrg <field type="MODE" name="mode" /> 820d4401354Smrg <field type="CARD16" name="rotation" mask="Rotation" /> 821d4401354Smrg <field type="CARD8" name="connection" enum="Connection" /> 822d4401354Smrg <field type="CARD8" name="subpixel_order" enum="SubPixel" /> 823d4401354Smrg </struct> 824d4401354Smrg 825d4401354Smrg <struct name="OutputProperty"> 826d4401354Smrg <field type="WINDOW" name="window" /> 827d4401354Smrg <field type="OUTPUT" name="output" /> 828d4401354Smrg <field type="ATOM" name="atom" /> 829d4401354Smrg <field type="TIMESTAMP" name="timestamp" /> 830d4401354Smrg <field type="CARD8" name="status" enum="Property" /> 831d4401354Smrg <pad bytes="11" /> 832d4401354Smrg </struct> 833d4401354Smrg 834f591e195Smrg <!-- New in version 1.4 --> 835f591e195Smrg 836f591e195Smrg <struct name="ProviderChange"> 837f591e195Smrg <field type="TIMESTAMP" name="timestamp" /> 838f591e195Smrg <field type="WINDOW" name="window" /> 839f591e195Smrg <field type="PROVIDER" name="provider" /> 840f591e195Smrg <pad bytes="16" /> 841f591e195Smrg </struct> 842f591e195Smrg 843f591e195Smrg <struct name="ProviderProperty"> 844f591e195Smrg <field type="WINDOW" name="window" /> 845f591e195Smrg <field type="PROVIDER" name="provider" /> 846f591e195Smrg <field type="ATOM" name="atom" /> 847f591e195Smrg <field type="TIMESTAMP" name="timestamp" /> 848f591e195Smrg <field type="CARD8" name="state" /> 849f591e195Smrg <pad bytes="11" /> 850f591e195Smrg </struct> 851f591e195Smrg 852f591e195Smrg <struct name="ResourceChange"> 853f591e195Smrg <field type="TIMESTAMP" name="timestamp" /> 854f591e195Smrg <field type="WINDOW" name="window" /> 855f591e195Smrg <pad bytes="20" /> 856f591e195Smrg </struct> 857f591e195Smrg 858d4401354Smrg <union name="NotifyData"> 859f591e195Smrg <field type="CrtcChange" name="cc" /> 860f591e195Smrg <field type="OutputChange" name="oc" /> 861f591e195Smrg <field type="OutputProperty" name="op" /> 862f591e195Smrg <field type="ProviderChange" name="pc" /> 863f591e195Smrg <field type="ProviderProperty" name="pp" /> 864f591e195Smrg <field type="ResourceChange" name="rc" /> 865d4401354Smrg </union> 866d4401354Smrg 867d4401354Smrg <event name="Notify" number="1"> 868d4401354Smrg <field type="CARD8" name="subCode" enum="Notify" /> 869d4401354Smrg <field type="NotifyData" name="u" /> 870d4401354Smrg </event> 871d4401354Smrg</xcb> 872