1ea1d6981Smrg<?xml version="1.0" encoding="UTF-8" ?> 2ea1d6981Smrg<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 3ea1d6981Smrg "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" 4ea1d6981Smrg[ 5ea1d6981Smrg<!ENTITY % defs SYSTEM "defs.ent"> %defs; 6ea1d6981Smrg]> 7ea1d6981Smrg 8ea1d6981Smrg<book id="dpms"> 9ea1d6981Smrg 10ea1d6981Smrg<bookinfo> 11ea1d6981Smrg <title>X Display Power Management Signaling (DPMS) Extension Protocol Specification</title> 12ea1d6981Smrg <subtitle>X Project Team Standard</subtitle> 13ea1d6981Smrg <authorgroup> 14ea1d6981Smrg <author> 15ea1d6981Smrg <firstname>Rob </firstname><surname>Lembree</surname> 16ea1d6981Smrg <affiliation><orgname>Digital Equipment Corporation</orgname></affiliation> 17ea1d6981Smrg <email>lembree@zk3.dec.com</email> 18ea1d6981Smrg </author> 19ea1d6981Smrg </authorgroup> 20ea1d6981Smrg <releaseinfo>X Version 11, Release &fullrelvers;</releaseinfo> 21ea1d6981Smrg <releaseinfo>Version 1.0</releaseinfo> 22ea1d6981Smrg <copyright><year>1996</year><holder>Digital Equipment Corporation</holder></copyright> 23ea1d6981Smrg 24ea1d6981Smrg<legalnotice> 25ea1d6981Smrg<para> 26ea1d6981SmrgPermission to use, copy, modify, distribute, and sell this 27ea1d6981Smrgdocumentation for any purpose is hereby granted without fee, 28ea1d6981Smrgprovided that the above copyright notice and this permission 29ea1d6981Smrgnotice appear in all copies. Digital Equipment Corporation 30ea1d6981Smrgmakes no representations about the suitability for any purpose 31ea1d6981Smrgof the information in this document. This documentation is 32ea1d6981Smrgprovided “as is” without express or implied warranty. 33ea1d6981Smrg</para> 34ea1d6981Smrg 35ea1d6981Smrg</legalnotice> 36ea1d6981Smrg</bookinfo> 37ea1d6981Smrg 38ea1d6981Smrg<chapter id="Overview"> 39ea1d6981Smrg<title>Overview</title> 40ea1d6981Smrg<para> 41ea1d6981SmrgThis extension provides X Protocol control over the VESA Display 42ea1d6981SmrgPower Management Signaling (DPMS) characteristics of video boards 43ea1d6981Smrgunder control of the X Window System.<footnote> 44ea1d6981Smrg<para> 45ea1d6981Smrg<emphasis remap='I'>X Window System</emphasis> is a trademark of The Open Group. 46ea1d6981Smrg</para> 47ea1d6981Smrg</footnote> 48ea1d6981Smrg</para> 49ea1d6981Smrg 50ea1d6981Smrg 51ea1d6981Smrg<para> 52ea1d6981Smrg<!-- .LP --> 53ea1d6981SmrgTraditionally, the X Window System has provided for both blanking and 54ea1d6981Smrgnon-blanking screen savers. Timeouts associated with these built-in 55ea1d6981Smrgscreen saver mechanisms are limited to idle (dwell) time, and a change 56ea1d6981Smrgtimeout that specifies the change interval for non-blanking screen savers. 57ea1d6981Smrg</para> 58ea1d6981Smrg<para> 59ea1d6981Smrg<!-- .LP --> 60ea1d6981SmrgThe United States' Environmental Protection Agency (EPA) Energy Star program 61ea1d6981Smrgrequires that monitors power down after some idle time by default. 62ea1d6981SmrgWhile it is possible to simply overload the existing screen saver timeouts, 63ea1d6981Smrgthis solution leaves the non-privileged user little to no control over 64ea1d6981Smrgthe DPMS characteristics of his or her system. For example, disabling 65ea1d6981SmrgDPMS would require some unintended side effect in the core screen saver, 66ea1d6981Smrgsuch as disabling the changing of a non-blanking screen saver. Providing 67ea1d6981Smrgclients with this control requires an extension to the core X Window System 68ea1d6981SmrgProtocol, and this extension seeks to fill this gap. 69ea1d6981Smrg</para> 70ea1d6981Smrg<para> 71ea1d6981Smrg<!-- .LP --> 72ea1d6981SmrgThe design goal of the DPMS extension is to be a logical extension to 73ea1d6981Smrgthe traditional screen saver. The protocol and sample implementation is 74ea1d6981Smrgdesigned to use the same date types and time units as the screen saver. 75ea1d6981SmrgThe sample implementation works independently from the screen saver so that 76ea1d6981Smrgpolicy as it pertains to the interaction between screen saver and DPMS can 77ea1d6981Smrgbe deferred to the user or screen saver application. The extension has 78ea1d6981Smrgbeen tested with and shown to work correctly with both the internal blanking 79ea1d6981Smrgand non-blanking screen savers, as well as with screen saver extension 80ea1d6981Smrgclients. 81ea1d6981Smrg</para> 82ea1d6981Smrg<para> 83ea1d6981SmrgThe DPMS extension is designed to be simple, yet export sufficient 84ea1d6981SmrgVESA DPMS information to enable full function clients to be written. 85ea1d6981SmrgIncluded is the ability to sense DPMS capability, set and get DPMS timeouts, 86ea1d6981Smrgenable and disable individual DPMS modes, enable and disable DPMS (without 87ea1d6981Smrgdestroying timeout values), and sense current DPMS on/off state and 88ea1d6981Smrgpower level. 89ea1d6981Smrg</para> 90ea1d6981Smrg<para> 91ea1d6981SmrgThere are four power levels specified by the Video Electronics Standards 92ea1d6981SmrgAssociation (VESA) Display Power Management Signaling (DPMS) standard. 93ea1d6981SmrgThese are: 94ea1d6981Smrg</para> 95ea1d6981Smrg 96ea1d6981Smrg<literallayout class="monospaced"> 97ea1d6981Smrg<function>DPMS Extension Power Levels</function> 98ea1d6981Smrg 0 DPMSModeOn In use 99ea1d6981Smrg 1 DPMSModeStandby Blanked, low power 100ea1d6981Smrg 2 DPMSModeSuspend Blanked, lower power 101ea1d6981Smrg 3 DPMSModeOff Shut off, awaiting activity 102ea1d6981Smrg</literallayout> 103ea1d6981Smrg 104ea1d6981Smrg<para> 105ea1d6981SmrgIt is logical to assume that successive DPMS modes be chronologically 106ea1d6981Smrgat the same time or later than one another, and the protocol is designed 107ea1d6981Smrgto enforce this rule. 108ea1d6981Smrg</para> 109ea1d6981Smrg 110ea1d6981Smrg<para> 111d63b911fSmrgNote however that a conscious decision is made to decouple the timeouts 112ea1d6981Smrgassociated with screen saver from the DPMS timeouts. While it might be 113ea1d6981Smrgconsidered logical to require that the first non-zero DPMS timeout be 114ea1d6981Smrggreater than or equal to the screen saver timeout, this is intentionally 115ea1d6981Smrgomitted, leaving this policy decision to the user or the screen saver 116ea1d6981Smrgapplication. In the case of a laptop where power may be scarce, the 117ea1d6981Smrgimportance of power savings should supersede the screen saver. If the 118ea1d6981Smrglaptop user plugs the unit in and power is no longer a scarce commodity, 119ea1d6981Smrgit may be decided to make DPMS less aggressive, or disable it completely. 120ea1d6981Smrg</para> 121ea1d6981Smrg</chapter> 122ea1d6981Smrg 123ea1d6981Smrg<chapter id="Requests"> 124ea1d6981Smrg<title>Requests</title> 125ea1d6981Smrg<para> 126ea1d6981Smrg<olink targetdoc='dpmslib' targetptr='DPMSGetVersion'><function>DPMSGetVersion</function></olink> 127ea1d6981Smrg</para> 128ea1d6981Smrg 129ea1d6981Smrg<informaltable frame="none"> 130ea1d6981Smrg <?dbfo keep-together="always" ?> 131ea1d6981Smrg <tgroup cols='1' align='left' colsep='0' rowsep='0'> 132ea1d6981Smrg <colspec colname='c1' colwidth="1.0*"/> 133ea1d6981Smrg <tbody> 134ea1d6981Smrg <row> 135ea1d6981Smrg <entry> 136ea1d6981Smrg<emphasis remap='I'>client_major_version</emphasis>: CARD16 137ea1d6981Smrg </entry> 138ea1d6981Smrg </row> 139ea1d6981Smrg <row> 140ea1d6981Smrg <entry> 141ea1d6981Smrg<emphasis remap='I'>client_minor_version</emphasis>: CARD16 142ea1d6981Smrg </entry> 143ea1d6981Smrg </row> 144ea1d6981Smrg <row> 145ea1d6981Smrg <entry>=></entry> 146ea1d6981Smrg </row> 147ea1d6981Smrg <row> 148ea1d6981Smrg <entry> 149ea1d6981Smrg<emphasis remap='I'>server_major_version</emphasis>: CARD16 150ea1d6981Smrg </entry> 151ea1d6981Smrg </row> 152ea1d6981Smrg <row> 153ea1d6981Smrg <entry> 154ea1d6981Smrg<emphasis remap='I'>server_minor_version</emphasis>: CARD16 155ea1d6981Smrg </entry> 156ea1d6981Smrg </row> 157ea1d6981Smrg </tbody> 158ea1d6981Smrg </tgroup> 159ea1d6981Smrg</informaltable> 160ea1d6981Smrg 161ea1d6981Smrg<para> 162ea1d6981SmrgIf supplied, the <emphasis remap='I'>client_major_version</emphasis> and 163ea1d6981Smrg<emphasis remap='I'>client_minor_version</emphasis> indicate what version 164ea1d6981Smrgof the protocol the 165ea1d6981Smrgclient wants the server to implement. The server version numbers 166ea1d6981Smrgreturned indicate the protocol this extension actually supports. This 167ea1d6981Smrgmight not equal the version sent by the client. An implementation can 168ea1d6981Smrg(but need not) support more than one version simultaneously. The 169ea1d6981Smrg<emphasis remap='I'>server_major_version</emphasis> and the 170ea1d6981Smrg<emphasis remap='I'>server_minor_version</emphasis> are a 171ea1d6981Smrgmechanism to support future revisions of the Display Power Management 172ea1d6981SmrgSignaling protocol which may be necessary. In general, the major version 173ea1d6981Smrgwould increment for incompatible changes, and the minor version would 174ea1d6981Smrgincrement for small, upward-compatible changes. Servers that support the 175ea1d6981Smrgprotocol defined in this document will return a 176ea1d6981Smrg<emphasis remap='I'>server_major_version</emphasis> 177ea1d6981Smrgof one (1), and a <emphasis remap='I'>server_minor_version</emphasis> 1784627b59cSmrgof two (2). 179ea1d6981Smrg</para> 180ea1d6981Smrg 181ea1d6981Smrg<para> 182ea1d6981Smrg<olink targetdoc='dpmslib' targetptr='DPMSCapable'><function>DPMSCapable</function></olink> 183ea1d6981Smrg</para> 184ea1d6981Smrg 185ea1d6981Smrg<informaltable frame="none"> 186ea1d6981Smrg <?dbfo keep-together="always" ?> 187ea1d6981Smrg <tgroup cols='1' align='left' colsep='0' rowsep='0'> 188ea1d6981Smrg <colspec colname='c1' colwidth="1.0*"/> 189ea1d6981Smrg <tbody> 190ea1d6981Smrg <row> 191ea1d6981Smrg <entry>=></entry> 192ea1d6981Smrg </row> 193ea1d6981Smrg <row> 194ea1d6981Smrg <entry> 195ea1d6981Smrg<emphasis remap='I'>capable</emphasis>: BOOL 196ea1d6981Smrg </entry> 197ea1d6981Smrg </row> 198ea1d6981Smrg </tbody> 199ea1d6981Smrg </tgroup> 200ea1d6981Smrg</informaltable> 201ea1d6981Smrg 202ea1d6981Smrg<para> 203ea1d6981SmrgThis request is used to determine whether or not the currently running 204ea1d6981Smrgserver's devices are capable of DPMS operations. The truth value of this 205ea1d6981Smrgrequest is implementation defined, but is generally based on the capabilities 206ea1d6981Smrgof the graphic card and monitor combination. Also, the return value in the 207ea1d6981Smrgcase of heterogeneous multi-head servers is implementation defined. 208ea1d6981Smrg</para> 209ea1d6981Smrg 210ea1d6981Smrg<para> 211ea1d6981Smrg<olink targetdoc='dpmslib' targetptr='DPMSGetTimeouts'><function>DPMSGetTimeouts</function></olink> 212ea1d6981Smrg</para> 213ea1d6981Smrg 214ea1d6981Smrg<informaltable frame="none"> 215ea1d6981Smrg <?dbfo keep-together="always" ?> 216ea1d6981Smrg <tgroup cols='1' align='left' colsep='0' rowsep='0'> 217ea1d6981Smrg <colspec colname='c1' colwidth="1.0*"/> 218ea1d6981Smrg <tbody> 219ea1d6981Smrg <row> 220ea1d6981Smrg <entry>=></entry> 221ea1d6981Smrg </row> 222ea1d6981Smrg <row> 223ea1d6981Smrg <entry> 224ea1d6981Smrg<emphasis remap='I'>standby_timeout</emphasis>: CARD16 225ea1d6981Smrg </entry> 226ea1d6981Smrg </row> 227ea1d6981Smrg <row> 228ea1d6981Smrg <entry> 229ea1d6981Smrg<emphasis remap='I'>suspend_timeout</emphasis>: CARD16 230ea1d6981Smrg </entry> 231ea1d6981Smrg </row> 232ea1d6981Smrg <row> 233ea1d6981Smrg <entry> 234ea1d6981Smrg<emphasis remap='I'>off_timeout</emphasis>: CARD16 235ea1d6981Smrg </entry> 236ea1d6981Smrg </row> 237ea1d6981Smrg </tbody> 238ea1d6981Smrg </tgroup> 239ea1d6981Smrg</informaltable> 240ea1d6981Smrg 241ea1d6981Smrg<para> 242ea1d6981SmrgThis request returns the current values of the DPMS timeout values. All 243ea1d6981Smrgvalues are in units of seconds. 244ea1d6981Smrg</para> 245ea1d6981Smrg 246ea1d6981Smrg<para> 247ea1d6981Smrg<emphasis remap='I'>standby_timeout</emphasis> is the amount of time 248ea1d6981Smrgof inactivity before standby 249ea1d6981Smrgmode is invoked. The actual effects of this mode are implementation defined, 250ea1d6981Smrgbut in the case of DPMS compliant hardware, it is implemented by shutting off 251ea1d6981Smrgthe horizontal sync signal, and pulsing the vertical sync signal. Standby 252ea1d6981Smrgmode provides the quickest monitor recovery time. Note also that many 253ea1d6981Smrgmonitors implement this mode identically to suspend mode. A value of 254ea1d6981Smrgzero indicates that this mode is disabled. 255ea1d6981Smrg</para> 256ea1d6981Smrg 257ea1d6981Smrg<para> 258ea1d6981Smrg<emphasis remap='I'>suspend_timeout</emphasis> is the amount of time 259ea1d6981Smrgof inactivity before the second 260ea1d6981Smrglevel of power savings is invoked. Suspend mode's physical and electrical 261ea1d6981Smrgcharacteristics are implementation defined, but in DPMS compliant hardware, 262ea1d6981Smrgresults in the pulsing of the horizontal sync signal, and shutting off of 263ea1d6981Smrgthe vertical sync signal. Suspend mode recovery is considered to be slower 264ea1d6981Smrgthan standby mode, but faster than off mode, however this is monitor 265ea1d6981Smrgdependent. As noted above, many monitors implement this mode identically to 266ea1d6981Smrgstandby mode. A value of zero indicates that this mode is disabled. 267ea1d6981Smrg</para> 268ea1d6981Smrg 269ea1d6981Smrg<para> 270ea1d6981Smrg<emphasis remap='I'>off_timeout</emphasis> is the amount of time of 271ea1d6981Smrginactivity before the third and 272ea1d6981Smrgfinal level of power savings is invoked. Off mode's physical and electrical 273ea1d6981Smrgcharacteristics are implementation defined, but in DPMS compliant hardware, 274ea1d6981Smrgis implemented by shutting off both horizontal and vertical sync signals, 275ea1d6981Smrgresulting in the power-down of the monitor. Recovery time is implementation 276d63b911fSmrgdependent, but frequently is similar to the power-up time of the monitor. A 277ea1d6981Smrgvalue of zero indicates that this mode is disabled. 278ea1d6981Smrg</para> 279ea1d6981Smrg 280ea1d6981Smrg<para> 281ea1d6981Smrg<olink targetdoc='dpmslib' targetptr='DPMSSetTimeouts'><function>DPMSSetTimeouts</function></olink> 282ea1d6981Smrg</para> 283ea1d6981Smrg 284ea1d6981Smrg<informaltable frame="none"> 285ea1d6981Smrg <?dbfo keep-together="always" ?> 286ea1d6981Smrg <tgroup cols='1' align='left' colsep='0' rowsep='0'> 287ea1d6981Smrg <colspec colname='c1' colwidth="1.0*"/> 288ea1d6981Smrg <tbody> 289ea1d6981Smrg <row> 290ea1d6981Smrg <entry> 291ea1d6981Smrg<emphasis remap='I'>standby_timeout</emphasis>: CARD16 292ea1d6981Smrg </entry> 293ea1d6981Smrg </row> 294ea1d6981Smrg <row> 295ea1d6981Smrg <entry> 296ea1d6981Smrg<emphasis remap='I'>suspend_timeout</emphasis>: CARD16 297ea1d6981Smrg </entry> 298ea1d6981Smrg </row> 299ea1d6981Smrg <row> 300ea1d6981Smrg <entry> 301ea1d6981Smrg<emphasis remap='I'>off_timeout</emphasis>: CARD16 302ea1d6981Smrg </entry> 303ea1d6981Smrg </row> 304ea1d6981Smrg <row> 305ea1d6981Smrg <entry>=></entry> 306ea1d6981Smrg </row> 307ea1d6981Smrg </tbody> 308ea1d6981Smrg </tgroup> 309ea1d6981Smrg</informaltable> 310ea1d6981Smrg 311ea1d6981Smrg 312ea1d6981Smrg<para> 313ea1d6981SmrgAll values are in units of seconds. 314ea1d6981Smrg<emphasis remap='I'>standby_timeout</emphasis> is the amount of 315ea1d6981Smrgtime of inactivity before standby mode will be invoked. This is the 316ea1d6981Smrglightest level of power savings, and the monitor is generally immediately 317ea1d6981Smrgready upon detection of user activity. This is most often implemented by 318ea1d6981Smrgshutting off the horizontal sync signal to the monitor. 319ea1d6981SmrgA value of zero disables this mode. 320ea1d6981Smrg</para> 321ea1d6981Smrg 322ea1d6981Smrg<para> 323ea1d6981SmrgThe <emphasis remap='I'>suspend_timeout</emphasis> specifies the amount 324ea1d6981Smrgof time of inactivity 325ea1d6981Smrgbefore the screen is placed into suspend mode. Suspend mode is the 326ea1d6981Smrgmiddle level of power savings, resulting in a slightly longer recovery 327ea1d6981Smrgupon detection of activity. Suspend mode is most often implemented by 328ea1d6981Smrgpulsing the horizontal sync signal, and removing the vertical sync 329ea1d6981Smrgsignal. A value of zero disables this mode. 330ea1d6981Smrg</para> 331ea1d6981Smrg 332ea1d6981Smrg<para> 333ea1d6981SmrgThe <emphasis remap='I'>off_timeout</emphasis> specifies the amount of 334ea1d6981Smrgtime of inactivity before 335ea1d6981Smrgthe monitor is shut off. Off mode is the deepest level of power management, 336ea1d6981Smrgresulting in the greatest power savings and the longest recovery time. 337ea1d6981SmrgOff mode is most often implemented by removing both the horizontal and 338ea1d6981Smrgvertical signals. A value of zero disables this mode. 339ea1d6981Smrg</para> 340ea1d6981Smrg<para> 341ea1d6981SmrgThe values of successive power levels must be greater than or equal 342ea1d6981Smrgto the value of the previous (non-zero) level. A BadValue error is generated 343ea1d6981Smrgif an illegal combination is detected. 344ea1d6981Smrg</para> 345ea1d6981Smrg<para> 346ea1d6981Smrg<olink targetdoc='dpmslib' targetptr='DPMSEnable'><function>DPMSEnable</function></olink> 347ea1d6981Smrg</para> 348ea1d6981Smrg<para> 349ea1d6981Smrg=> 350ea1d6981Smrg</para> 351ea1d6981Smrg 352ea1d6981Smrg<para> 353ea1d6981SmrgThis request enables the DPMS characteristics of the server, using the 354ea1d6981Smrgserver's currently stored timeouts. If DPMS is already enabled, no change is 355ea1d6981Smrgeffected. 356ea1d6981Smrg</para> 357ea1d6981Smrg 358ea1d6981Smrg<para> 359ea1d6981Smrg<olink targetdoc='dpmslib' targetptr='DPMSDisable'><function>DPMSDisable</function></olink> 360ea1d6981Smrg</para> 361ea1d6981Smrg<para> 362ea1d6981Smrg=> 363ea1d6981Smrg</para> 364ea1d6981Smrg 365ea1d6981Smrg<para> 366ea1d6981SmrgThis request disables the DPMS characteristics of the server. It does 367ea1d6981Smrgnot affect the core or extension screen savers. If DPMS is already 368ea1d6981Smrgdisabled, no change is effected. This request is provided so that DPMS 369ea1d6981Smrgmay be disabled without damaging the server's stored timeout values. 370ea1d6981Smrg</para> 371ea1d6981Smrg 372ea1d6981Smrg<para> 373ea1d6981Smrg<olink targetdoc='dpmslib' targetptr='DPMSForceLevel'><function>DPMSForceLevel</function></olink> 374ea1d6981Smrg</para> 375ea1d6981Smrg 376ea1d6981Smrg<informaltable frame="none"> 377ea1d6981Smrg <?dbfo keep-together="always" ?> 378ea1d6981Smrg <tgroup cols='1' align='left' colsep='0' rowsep='0'> 379ea1d6981Smrg <colspec colname='c1' colwidth="1.0*"/> 380ea1d6981Smrg <tbody> 381ea1d6981Smrg <row> 382ea1d6981Smrg <entry> 383ea1d6981Smrg<emphasis remap='I'>power_level</emphasis>: CARD16 384ea1d6981Smrg </entry> 385ea1d6981Smrg </row> 386ea1d6981Smrg <row> 387ea1d6981Smrg <entry>=></entry> 388ea1d6981Smrg </row> 389ea1d6981Smrg </tbody> 390ea1d6981Smrg </tgroup> 391ea1d6981Smrg</informaltable> 392ea1d6981Smrg 393ea1d6981Smrg<para> 394ea1d6981SmrgThis request forces a specific DPMS level on the server. If DPMS is 395ea1d6981Smrgdisabled, a BadMatch error is generated. If an erroneous power level 396ea1d6981Smrgis specified, a BadValue error is returned, and the error value contains 397ea1d6981Smrgthe bad value. If the power level specified is already in effect, no 398ea1d6981Smrgchanges occur. Power Level must be one of DPMSModeOn, DPMSModeStandby, 399ea1d6981SmrgDPMSModeSuspend or DPMSModeOff. 400ea1d6981Smrg</para> 401ea1d6981Smrg 402ea1d6981Smrg<para> 403ea1d6981Smrg<olink targetdoc='dpmslib' targetptr='DPMSInfo'><function>DPMSInfo</function></olink> 404ea1d6981Smrg</para> 405ea1d6981Smrg 406ea1d6981Smrg<informaltable frame="none"> 407ea1d6981Smrg <?dbfo keep-together="always" ?> 408ea1d6981Smrg <tgroup cols='1' align='left' colsep='0' rowsep='0'> 409ea1d6981Smrg <colspec colname='c1' colwidth="1.0*"/> 410ea1d6981Smrg <tbody> 411ea1d6981Smrg <row> 412ea1d6981Smrg <entry>=></entry> 413ea1d6981Smrg </row> 414ea1d6981Smrg <row> 415ea1d6981Smrg <entry> 416ea1d6981Smrg<emphasis remap='I'>power_level</emphasis>: CARD16 417ea1d6981Smrg </entry> 418ea1d6981Smrg </row> 419ea1d6981Smrg <row> 420ea1d6981Smrg <entry> 421ea1d6981Smrg<emphasis remap='I'>state</emphasis>: BOOL 422ea1d6981Smrg </entry> 423ea1d6981Smrg </row> 424ea1d6981Smrg </tbody> 425ea1d6981Smrg </tgroup> 426ea1d6981Smrg</informaltable> 427ea1d6981Smrg 428ea1d6981Smrg<para> 429ea1d6981SmrgThis request returns information about the current DPMS state of the 430ea1d6981Smrgdisplay. <emphasis remap='I'>state</emphasis> is one of DPMSEnabled 431ea1d6981Smrgor DPMSDisabled. 432ea1d6981SmrgIf <emphasis remap='I'>state</emphasis> is DPMSEnabled, 433ea1d6981Smrg<emphasis remap='I'>power_level</emphasis> is returned as one 434ea1d6981Smrgof DPMSModeOn, DPMSModeStandby, DPMSModeSuspend or DPMSModeOff, otherwise 435ea1d6981Smrgit is undefined. 436ea1d6981Smrg</para> 437ea1d6981Smrg 4384627b59cSmrg<para> 4394627b59cSmrg<olink targetdoc='dpmslib' targetptr='DPMSSelectInput'><function>DPMSSelectInput</function></olink> 4404627b59cSmrg</para> 4414627b59cSmrg 4424627b59cSmrg<informaltable frame="none"> 4434627b59cSmrg <?dbfo keep-together="always" ?> 4444627b59cSmrg <tgroup cols='1' align='left' colsep='0' rowsep='0'> 4454627b59cSmrg <colspec colname='c1' colwidth="1.0*"/> 4464627b59cSmrg <tbody> 4474627b59cSmrg <row> 4484627b59cSmrg <entry> 4494627b59cSmrg<emphasis remap='I'>event_mask</emphasis>: CARD32 4504627b59cSmrg </entry> 4514627b59cSmrg </row> 4524627b59cSmrg <row> 4534627b59cSmrg <entry>=></entry> 4544627b59cSmrg </row> 4554627b59cSmrg </tbody> 4564627b59cSmrg </tgroup> 4574627b59cSmrg</informaltable> 4584627b59cSmrg 4594627b59cSmrg<para> 4604627b59cSmrgThis request specifies whether DPMS extension events should be generated for this client. 4614627b59cSmrgIf DPMSInfoNotifyMask is set in <emphasis remap='I'>event-mask</emphasis>, then DPMSInfoNotifyEvent 4624627b59cSmrgevents will be generated whenever the current DPMS on/off state or power level changes. 4634627b59cSmrgIf no bits are set, then no events will be generated. 4644627b59cSmrg</para> 4654627b59cSmrg 466ea1d6981Smrg</chapter> 467ea1d6981Smrg 4684627b59cSmrg<chapter id="Events"> 4694627b59cSmrg 4704627b59cSmrg<title>Events</title> 4714627b59cSmrg<para> 4724627b59cSmrgThe DPMS extension adds one event: 4734627b59cSmrg</para> 474ea1d6981Smrg<para> 4754627b59cSmrg<function>DPMSInfoNotifyEvent</function> 476ea1d6981Smrg</para> 4774627b59cSmrg 4784627b59cSmrg<informaltable frame="none"> 4794627b59cSmrg <?dbfo keep-together="always" ?> 4804627b59cSmrg <tgroup cols='1' align='left' colsep='0' rowsep='0'> 4814627b59cSmrg <colspec colname='c1' colwidth="1.0*"/> 4824627b59cSmrg <tbody> 4834627b59cSmrg <row> 4844627b59cSmrg <entry> 4854627b59cSmrg<emphasis remap='I'>timestamp</emphasis>: TIMESTAMP 4864627b59cSmrg </entry> 4874627b59cSmrg </row> 4884627b59cSmrg <row> 4894627b59cSmrg <entry> 4904627b59cSmrg<emphasis remap='I'>power_level</emphasis>: CARD16 4914627b59cSmrg </entry> 4924627b59cSmrg </row> 4934627b59cSmrg <row> 4944627b59cSmrg <entry> 4954627b59cSmrg<emphasis remap='I'>state</emphasis>: BOOL 4964627b59cSmrg </entry> 4974627b59cSmrg </row> 4984627b59cSmrg </tbody> 4994627b59cSmrg </tgroup> 5004627b59cSmrg</informaltable> 5014627b59cSmrg 5024627b59cSmrg<para> 5034627b59cSmrgThis event is delivered to clients that have requested 5044627b59cSmrgDPMSInfoNotifyMask events using the <function>DPMSSelectInput</function> request 5054627b59cSmrgwhenever the current DPMS on/off state or power level changes. 5064627b59cSmrg<emphasis remap='I'>state</emphasis> is one of DPMSEnabled or DPMSDisabled. 5074627b59cSmrgIf <emphasis remap='I'>state</emphasis> is DPMSEnabled, 5084627b59cSmrg<emphasis remap='I'>power_level</emphasis> is one 5094627b59cSmrgof DPMSModeOn, DPMSModeStandby, DPMSModeSuspend or DPMSModeOff, otherwise 5104627b59cSmrgit is undefined. 5114627b59cSmrg</para> 5124627b59cSmrg 513ea1d6981Smrg</chapter> 514ea1d6981Smrg 515ea1d6981Smrg<chapter id="Encoding"> 516ea1d6981Smrg<title>Encoding</title> 517ea1d6981Smrg<para> 518ea1d6981SmrgPlease refer to the X11 Protocol Encoding document as this document uses 519ea1d6981Smrgconventions established there. 520ea1d6981Smrg</para> 521ea1d6981Smrg 522ea1d6981Smrg<para> 523ea1d6981SmrgThe name of this extension is "DPMS". 524ea1d6981Smrg</para> 525ea1d6981Smrg 526ea1d6981Smrg<literallayout class="monospaced"> 527ea1d6981Smrg<olink targetdoc='dpmslib' targetptr='DPMSGetVersion'><function>DPMSGetVersion</function></olink> 528ea1d6981Smrg 1 CARD8 opcode 529ea1d6981Smrg 1 0 DPMS opcode 530ea1d6981Smrg 2 2 request length 531ea1d6981Smrg 2 CARD16 client_major_version 532ea1d6981Smrg 2 CARD16 client_minor_version 533ea1d6981Smrg=> 534ea1d6981Smrg 1 1 Reply 535ea1d6981Smrg 1 unused 536ea1d6981Smrg 2 CARD16 sequence number 537ea1d6981Smrg 4 0 length 538ea1d6981Smrg 2 CARD16 server_major_version 539ea1d6981Smrg 2 CARD16 server_minor_version 540ea1d6981Smrg 20 unused 541ea1d6981Smrg</literallayout> 542ea1d6981Smrg 543ea1d6981Smrg<literallayout class="monospaced"> 544ea1d6981Smrg<olink targetdoc='dpmslib' targetptr='DPMSCapable'><function>DPMSCapable</function></olink> 545ea1d6981Smrg 1 CARD8 opcode 546ea1d6981Smrg 1 1 DPMS opcode 547ea1d6981Smrg 2 1 request length 548ea1d6981Smrg=> 549ea1d6981Smrg 1 1 Reply 550ea1d6981Smrg 1 unused 551ea1d6981Smrg 2 CARD16 sequence number 552ea1d6981Smrg 4 0 length 553ea1d6981Smrg 1 BOOL capable 554ea1d6981Smrg 23 unused 555ea1d6981Smrg</literallayout> 556ea1d6981Smrg 557ea1d6981Smrg<literallayout class="monospaced"> 558ea1d6981Smrg<olink targetdoc='dpmslib' targetptr='DPMSGetTimeouts'><function>DPMSGetTimeouts</function></olink> 559ea1d6981Smrg 1 CARD8 opcode 560ea1d6981Smrg 1 2 DPMS opcode 561ea1d6981Smrg 2 1 request length 562ea1d6981Smrg=> 563ea1d6981Smrg 1 1 Reply 564ea1d6981Smrg 1 unused 565ea1d6981Smrg 2 CARD16 sequence number 566ea1d6981Smrg 4 0 length 567ea1d6981Smrg 2 CARD16 standby_timeout 568ea1d6981Smrg 2 CARD16 suspend_timeout 569ea1d6981Smrg 2 CARD16 off_timeout 570ea1d6981Smrg 18 unused 571ea1d6981Smrg</literallayout> 572ea1d6981Smrg 573ea1d6981Smrg<literallayout class="monospaced"> 574ea1d6981Smrg<olink targetdoc='dpmslib' targetptr='DPMSSetTimeouts'><function>DPMSSetTimeouts</function></olink> 575ea1d6981Smrg 1 CARD8 opcode 576ea1d6981Smrg 1 3 DPMS opcode 577ea1d6981Smrg 2 3 request length 578ea1d6981Smrg 2 CARD16 standby_timeout 579ea1d6981Smrg 2 CARD16 suspend_timeout 580ea1d6981Smrg 2 CARD16 off_timeout 581ea1d6981Smrg 2 unused 582ea1d6981Smrg=> 583ea1d6981Smrg</literallayout> 584ea1d6981Smrg 585ea1d6981Smrg<literallayout class="monospaced"> 586ea1d6981Smrg<olink targetdoc='dpmslib' targetptr='DPMSEnable'><function>DPMSEnable</function></olink> 587ea1d6981Smrg 1 CARD8 opcode 588ea1d6981Smrg 1 4 DPMS opcode 589ea1d6981Smrg 2 1 request length 590ea1d6981Smrg => 591ea1d6981Smrg</literallayout> 592ea1d6981Smrg 593ea1d6981Smrg<literallayout class="monospaced"> 594ea1d6981Smrg<olink targetdoc='dpmslib' targetptr='DPMSDisable'><function>DPMSDisable</function></olink> 595ea1d6981Smrg 1 CARD8 opcode 596ea1d6981Smrg 1 5 DPMS opcode 597ea1d6981Smrg 2 1 request length 598ea1d6981Smrg => 599ea1d6981Smrg</literallayout> 600ea1d6981Smrg 601ea1d6981Smrg<literallayout class="monospaced"> 602ea1d6981Smrg<olink targetdoc='dpmslib' targetptr='DPMSForceLevel'><function>DPMSForceLevel</function></olink> 603ea1d6981Smrg 1 CARD8 opcode 604ea1d6981Smrg 1 6 DPMS opcode 605ea1d6981Smrg 2 2 request length 606ea1d6981Smrg 2 power_level 607ea1d6981Smrg 0 DPMSModeOn 608ea1d6981Smrg 1 DPMSModeStandby 609ea1d6981Smrg 2 DPMSModeSuspend 610ea1d6981Smrg 3 DPMSModeOff 611ea1d6981Smrg 2 unused 612ea1d6981Smrg=> 613ea1d6981Smrg</literallayout> 614ea1d6981Smrg 615ea1d6981Smrg<literallayout class="monospaced"> 616ea1d6981Smrg<olink targetdoc='dpmslib' targetptr='DPMSInfo'><function>DPMSInfo</function></olink> 617ea1d6981Smrg 1 CARD8 opcode 618ea1d6981Smrg 1 7 DPMS opcode 619ea1d6981Smrg 2 1 request length 620ea1d6981Smrg=> 621ea1d6981Smrg 1 1 Reply 622ea1d6981Smrg 1 unused 623ea1d6981Smrg 2 CARD16 sequence number 624ea1d6981Smrg 4 0 length 625ea1d6981Smrg 2 power_level 626ea1d6981Smrg 0 DPMSModeOn 627ea1d6981Smrg 1 DPMSModeStandby 628ea1d6981Smrg 2 DPMSModeSuspend 629ea1d6981Smrg 3 DPMSModeOff 630ea1d6981Smrg 1 BOOL state 631ea1d6981Smrg 21 unused 632ea1d6981Smrg 633ea1d6981Smrg</literallayout> 6344627b59cSmrg 6354627b59cSmrg<literallayout class="monospaced"> 6364627b59cSmrg<olink targetdoc='dpmslib' targetptr='DPMSSelectInput'><function>DPMSSelectInput</function></olink> 6374627b59cSmrg 1 CARD8 opcode 6384627b59cSmrg 1 8 DPMS opcode 6394627b59cSmrg 2 2 request length 6404627b59cSmrg 4 event mask 6414627b59cSmrg 0 no events 6424627b59cSmrg 1 DPMSInfoNotifyMask 6434627b59cSmrg</literallayout> 6444627b59cSmrg 6454627b59cSmrg<literallayout class="monospaced"> 6464627b59cSmrg<olink targetdoc='dpmslib' targetptr='DPMSInfoNotifyEvent'><function>DPMSInfoNotifyEvent</function></olink> 6474627b59cSmrg 1 GenericEvent type 6484627b59cSmrg 1 CARD8 DPMS extension offset 6494627b59cSmrg 2 CARD16 sequence number 6504627b59cSmrg 4 0 length 6514627b59cSmrg 2 DPMSInfoNotify evtype 6524627b59cSmrg 2 unused 6534627b59cSmrg 4 TIMESTAMP timestamp 6544627b59cSmrg 2 power_level 6554627b59cSmrg 0 DPMSModeOn 6564627b59cSmrg 1 DPMSModeStandby 6574627b59cSmrg 2 DPMSModeSuspend 6584627b59cSmrg 3 DPMSModeOff 6594627b59cSmrg 1 BOOL state 6604627b59cSmrg 13 unused 6614627b59cSmrg</literallayout> 662ea1d6981Smrg</chapter> 663ea1d6981Smrg</book> 664