home *** CD-ROM | disk | FTP | other *** search
/ Enter 1999 April - Disc 1 / enter_04_1999_1.iso / OS2 / XFREE86 / XDOC.ZIP / XFree86 / lib / X11 / doc / DPMS.TXT < prev    next >
Encoding:
Text File  |  1999-01-09  |  13.0 KB  |  661 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.    X Display Power Management Signaling    (DPMS) Extension
  17.  
  18.            Protocol Specification
  19.  
  20.  
  21.  
  22.             Version 0.5    (DRAFT)
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.             Rob Lembree
  30.             lembree@zk3.dec.com
  31.  
  32.            Digital Equipment Corporation
  33.                24 April    1996
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73. Copyright c Digital Equipment Corporation, 1996
  74.  
  75. Permission to use, copy, modify, distribute, and sell this
  76. documentation for any purpose is hereby    granted    without    fee,
  77. provided that the above    copyright notice and this permission
  78. notice appear in all copies.  Digital Equipment    Corporation
  79. makes no representations about the suitability for any pur-
  80. pose of    the information    in this    document.  This    documenta-
  81. tion is    provided ``as is'' without express or implied war-
  82. ranty.
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139. 1.  Overview
  140.  
  141. This extension provides    X Protocol control over    the VESA
  142. Display    Power Management Signaling (DPMS) characteristics of
  143. video boards under control of the X Window System.
  144.  
  145. Traditionally, the X Window System has provided    for both
  146. blanking and non-blanking screen savers.  Timeouts associ-
  147. ated with these    built-in screen    saver mechanisms are limited
  148. to idle    (dwell)    time, and a change timeout that    specifies
  149. the change interval for    non-blanking screen savers.
  150.  
  151. The United States' Environmental Protection Agency (EPA)
  152. Energy Star program requires that monitors power down after
  153. some idle time by default.  While it is    possible to simply
  154. overload the existing screen saver timeouts, this solution
  155. leaves the non-privileged user little to no control over the
  156. DPMS characteristics of    his or her system.  For    example,
  157. disabling DPMS would require some unintended side effect in
  158. the core screen    saver, such as disabling the changing of a
  159. non-blanking screen saver.  Providing clients with this    con-
  160. trol requires an extension to the core X Window    System Pro-
  161. tocol, and this    extension seeks    to fill    this gap.
  162.  
  163. The design goal    of the DPMS extension is to be a logical
  164. extension to the traditional screen saver.  The    protocol and
  165. sample implementation is designed to use the same date types
  166. and time units as the screen saver. The    sample implementa-
  167. tion works independently from the screen saver so that pol-
  168. icy as it pertains to the interaction between screen saver
  169. and DPMS can be    deferred to the    user or    screen saver appli-
  170. cation.    The extension has been tested with and shown to    work
  171. correctly with both the    internal blanking and non-blanking
  172. screen savers, as well as with screen saver extension
  173. clients.
  174.  
  175. The DPMS extension is designed to be simple, yet export    suf-
  176. ficient    VESA DPMS information to enable    full function
  177. clients    to be written. Included    is the ability to sense    DPMS
  178. capability, set    and get    DPMS timeouts, enable and disable
  179. individual DPMS    modes, enable and disable DPMS (without    des-
  180. troying    timeout    values), and sense current DPMS    on/off state
  181. and power level.
  182.  
  183. There are four power levels specified by the Video Electron-
  184. ics Standards Association (VESA) Display Power Management
  185. Signaling (DPMS) standard.  These are:
  186.  
  187.  
  188. DPMS Extension Power Levels
  189.   0           DPMSModeOn       In use
  190. _________________________
  191. 1. X Window System is a    trademark of X Consortium, Inc.
  192.  
  193.  
  194.  
  195.  
  196.                  1
  197.  
  198.  
  199.  
  200.  
  201.  
  202. Display    Power Management Signaling (DPMS) Extension    DRAFT
  203.  
  204.  
  205.         1  DPMSModeStandby       Blanked, low    power
  206.   2           DPMSModeSuspend       Blanked, lower power
  207.   3           DPMSModeOff       Shut    off, awaiting activity
  208.  
  209.  
  210.  
  211. It is logical to assume    that successive    DPMS modes be chro-
  212. nologically at the same    time or    later than one another,    and
  213. the protocol is    designed to enforce this rule.
  214.  
  215. Note however that a concious decision is made to decouple
  216. the timeouts associated    with screen saver from the DPMS
  217. timeouts.  While it might be considered    logical    to require
  218. that the first non-zero    DPMS timeout be    greater    than or
  219. equal to the screen saver timeout, this    is intentionally
  220. omitted, leaving this policy decision to the user or the
  221. screen saver application.  In the case of a laptop where
  222. power may be scarce, the importance of power savings should
  223. supersede the screen saver.  If    the laptop user    plugs the
  224. unit in    and power is no    longer a scarce    commodity, it may be
  225. decided    to make    DPMS less aggressive, or disable it com-
  226. pletely.
  227.  
  228.  
  229. 2.  Requests
  230.  
  231. DPMSGetVersion
  232.  
  233.  
  234.      client_major_version: CARD16
  235.      client_minor_version: CARD16
  236.  
  237.    =>
  238.  
  239.      server_major_version: CARD16
  240.      server_minor_version: CARD16
  241.  
  242. If supplied, the client_major_version and
  243. client_minor_version indicate what version of the protocol
  244. the client wants the server to implement.  The server ver-
  245. sion numbers returned indicate the protocol this extension
  246. actually supports.  This might not equal the version sent by
  247. the client.  An    implementation can (but    need not) support
  248. more than one version simultaneously.  The
  249. server_major_version and the server_minor_version are a
  250. mechanism to support future revisions of the Display Power
  251. Management Signaling protocol which may    be necessary.  In
  252. general, the major version would increment for incompatible
  253. changes, and the minor version would increment for small,
  254. upward-compatible changes.  Servers that support the proto-
  255. col defined in this document will return a
  256. server_major_version of    one (1), and a server_minor_version
  257. of one (1).
  258.  
  259.  
  260.  
  261.  
  262.                  2
  263.  
  264.  
  265.  
  266.  
  267.  
  268. Display    Power Management Signaling (DPMS) Extension    DRAFT
  269.  
  270.  
  271. DPMSCapable
  272.  
  273.     =>
  274.  
  275.      capable: BOOL
  276.  
  277. This request is    used to    determine whether or not the
  278. currently running server's devices are capable of DPMS
  279. operations.  The truth value of    this request is    implementa-
  280. tion defined, but is generally based on    the capabilities of
  281. the graphic card and monitor combination.  Also, the return
  282. value in the case of heterogeneous multi-head servers is
  283. implementation defined.
  284.  
  285. DPMSGetTimeouts
  286.  
  287.    =>
  288.  
  289.      standby_timeout: CARD16
  290.      suspend_timeout: CARD16
  291.      off_timeout: CARD16
  292.  
  293. This request returns the current values    of the DPMS timeout
  294. values.     All values are    in units of seconds.
  295.  
  296. standby_timeout    is the amount of time of inactivity before
  297. standby    mode is    invoked. The actual effects of this mode are
  298. implementation defined,    but in the case    of DPMS    compliant
  299. hardware, it is    implemented by shutting    off the    horizontal
  300. sync signal, and pulsing the vertical sync signal. Standby
  301. mode provides the quickest monitor recovery time.  Note    also
  302. that many monitors implement this mode identically to
  303. suspend    mode.  A value of zero indicates that this mode    is
  304. disabled.
  305.  
  306. suspend_timeout    is the amount of time of inactivity before
  307. the second level of power savings is invoked. Suspend mode's
  308. physical and electrical    characteristics    are implementation
  309. defined, but in    DPMS compliant hardware, results in the
  310. pulsing    of the horizontal sync signal, and shutting off    of
  311. the vertical sync signal.  Suspend mode    recovery is con-
  312. sidered    to be slower than standby mode,    but faster than    off
  313. mode, however this is monitor dependent.  As noted above,
  314. many monitors implement    this mode identically to standby
  315. mode.  A value of zero indicates that this mode    is disabled.
  316.  
  317. off_timeout is the amount of time of inactivity    before the
  318. third and final    level of power savings is invoked. Off
  319. mode's physical    and electrical characteristics are implemen-
  320. tation defined,    but in DPMS compliant hardware,    is imple-
  321. mented by shutting off both horizontal and vertical sync
  322. signals, resulting in the power-down of    the monitor.
  323. Recovery time is implementation    dependant, but frequently is
  324. similar    to the power-up    time of    the monitor. A value of    zero
  325.  
  326.  
  327.  
  328.                  3
  329.  
  330.  
  331.  
  332.  
  333.  
  334. Display    Power Management Signaling (DPMS) Extension    DRAFT
  335.  
  336.  
  337. indicates that this mode is disabled.
  338.  
  339. DPMSSetTimeouts
  340.  
  341.      standby_timeout: CARD16
  342.      suspend_timeout: CARD16
  343.      off_timeout: CARD16
  344.     =>
  345.  
  346.  
  347. All values are in units    of seconds. standby_timeout is the
  348. amount of time of inactivity before standby mode will be
  349. invoked. This is the lightest level of power savings, and
  350. the monitor is generally immediately ready upon    detection of
  351. user activity.    This is    most often implemented by shutting
  352. off the    horizontal sync    signal to the monitor. A value of
  353. zero disables this mode.
  354.  
  355. The suspend_timeout specifies the amount of time of inac-
  356. tivity before the screen is placed into    suspend    mode.
  357. Suspend    mode is    the middle level of power savings, resulting
  358. in a slightly longer recovery upon detection of    activity.
  359. Suspend    mode is    most often implemented by pulsing the hor-
  360. izontal    sync signal, and removing the vertical sync signal.
  361. A value    of zero    disables this mode.
  362.  
  363. The off_timeout    specifies the amount of    time of    inactivity
  364. before the monitor is shut off.     Off mode is the deepest
  365. level of power management, resulting in    the greatest power
  366. savings    and the    longest    recovery time.    Off mode is most
  367. often implemented by removing both the horizontal and verti-
  368. cal signals. A value of    zero disables this mode.
  369.  
  370. The values of successive power levels must be greater than
  371. or equal to the    value of the previous (non-zero) level.     A
  372. BadValue error is generated if an illegal combination is
  373. detected.
  374.  
  375.  
  376. DPMSEnable
  377.  
  378.     =>
  379.  
  380.  
  381. This request enables the DPMS characteristics of the server,
  382. using the server's currently stored timeouts.  If DPMS is
  383. already    enabled, no change is effected.
  384.  
  385.  
  386. DPMSDisable
  387.  
  388.     =>
  389.  
  390.  
  391.  
  392.  
  393.  
  394.                  4
  395.  
  396.  
  397.  
  398.  
  399.  
  400. Display    Power Management Signaling (DPMS) Extension    DRAFT
  401.  
  402.  
  403. This request disables the DPMS characteristics of the
  404. server.     It does not affect the    core or    extension screen
  405. savers.     If DPMS is already disabled, no change    is effected.
  406. This request is    provided so that DPMS may be disabled
  407. without    damaging the server's stored timeout values.
  408.  
  409. DPMSForceLevel
  410.  
  411.      power_level: CARD16
  412.     =>
  413.  
  414.  
  415. This request forces a specific DPMS level on the server.  If
  416. DPMS is    disabled, a BadMatch error is generated.  If an
  417. erroneous power    level is specified, a BadValue error is
  418. returned, and the error    value contains the bad value.  If
  419. the power level    specified is already in    effect,    no changes
  420. occur.    Power Level must be one    of DPMSModeOn, DPMSMode-
  421. Standby, DPMSModeSuspend or DPMSModeOff.
  422.  
  423. DPMSInfo
  424.  
  425.     =>
  426.  
  427.      power_level: CARD16
  428.      state: BOOL
  429.  
  430. This request returns information about the current DPMS
  431. state of the display.  state is    one of DPMSEnabled or
  432. DPMSDisabled.  If state    is DPMSEnabled,    power_level is
  433. returned as one    of DPMSModeOn, DPMSModeStandby,    DPMSMo-
  434. deSuspend or DPMSModeOff, otherwise it is undefined.
  435.  
  436.  
  437. 3.  Events and Errors
  438.  
  439. No new events or errors    are defined by this extension.
  440.  
  441. 4.  Encoding
  442.  
  443. Please refer to    the X11    Protocol Encoding document as this
  444. document uses conventions established there.
  445.  
  446. The name of this extension is "DPMS".
  447.  
  448.  
  449. DPMSGetVersion
  450.   1  CARD8         opcode
  451.   1  0             DPMS opcode
  452.   2  2             request length
  453.   2  CARD16         client_major_version
  454.   2  CARD16         client_minor_version
  455.  
  456.  
  457.  
  458.  
  459.  
  460.                  5
  461.  
  462.  
  463.  
  464.  
  465.  
  466. Display    Power Management Signaling (DPMS) Extension    DRAFT
  467.  
  468.  
  469.  =>
  470.   1  1             Reply
  471.   1             unused
  472.   2  CARD16         sequence number
  473.   4  0             length
  474.   2  CARD16         server_major_version
  475.   2  CARD16         server_minor_version
  476.   20             unused
  477.  
  478.  
  479. DPMSCapable
  480.   1  CARD8         opcode
  481.   1  1             DPMS opcode
  482.   2  1             request length
  483.  
  484.  
  485.  =>
  486.   1  1             Reply
  487.   1             unused
  488.   2  CARD16         sequence number
  489.   4  0             length
  490.   1  BOOL         capable
  491.   23             unused
  492.  
  493.  
  494.  
  495. DPMSGetTimeouts
  496.   1  CARD8         opcode
  497.   1  2             DPMS opcode
  498.   2  1             request length
  499.  
  500.  
  501.  =>
  502.   1  1             Reply
  503.   1             unused
  504.   2  CARD16         sequence number
  505.   4  0             length
  506.   2  CARD16         standby_timeout
  507.   2  CARD16         suspend_timeout
  508.   2  CARD16         off_timeout
  509.   18             unused
  510.  
  511.  
  512.  
  513. DPMSSetTimeouts
  514.   1  CARD8         opcode
  515.   1  3             DPMS opcode
  516.   2  3             request length
  517.   2  CARD16         standby_timeout
  518.   2  CARD16         suspend_timeout
  519.   2  CARD16         off_timeout
  520.   2             unused
  521.  
  522.  
  523.  
  524.  
  525.  
  526.                  6
  527.  
  528.  
  529.  
  530.  
  531.  
  532. Display    Power Management Signaling (DPMS) Extension    DRAFT
  533.  
  534.  
  535.  =>
  536.  
  537.  
  538.  
  539. DPMSEnable
  540.   1  CARD8         opcode
  541.   1  4             DPMS opcode
  542.   2  1             request length
  543.  
  544.  
  545.  =>
  546.  
  547.  
  548.  
  549. DPMSDisable
  550.   1  CARD8         opcode
  551.   1  5             DPMS opcode
  552.   2  1             request length
  553.  
  554.  
  555.  =>
  556.  
  557.  
  558.  
  559. DPMSForceLevel
  560.   1  CARD8         opcode
  561.   1  6             DPMS opcode
  562.   2  2             request length
  563.   2             power_level
  564.      0           DPMSModeOn
  565.      1           DPMSModeStandby
  566.      2           DPMSModeSuspend
  567.      3           DPMSModeOff
  568.   2             unused
  569.  
  570.  
  571.  =>
  572.  
  573.  
  574.  
  575. DPMSInfo
  576.   1  CARD8         opcode
  577.   1  7             DPMS opcode
  578.   2  1             request length
  579.  
  580.  
  581.  =>
  582.   1  1             Reply
  583.   1             unused
  584.   2  CARD16         sequence number
  585.   4  0             length
  586.   2             power_level
  587.      0           DPMSModeOn
  588.      1           DPMSModeStandby
  589.  
  590.  
  591.  
  592.                  7
  593.  
  594.  
  595.  
  596.  
  597.  
  598. Display    Power Management Signaling (DPMS) Extension    DRAFT
  599.  
  600.  
  601.      2           DPMSModeSuspend
  602.      3           DPMSModeOff
  603.   1  BOOL         state
  604.   21             unused
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.                  8
  659.  
  660.  
  661.