xserver

xserver with xephyr scale patch
git clone https://git.neptards.moe/u3shit/xserver.git
Log | Files | Refs | README | LICENSE

xf86DPMS.c (2889B)


      1 /*
      2  * Copyright (c) 1997-2003 by The XFree86 Project, Inc.
      3  *
      4  * Permission is hereby granted, free of charge, to any person obtaining a
      5  * copy of this software and associated documentation files (the "Software"),
      6  * to deal in the Software without restriction, including without limitation
      7  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
      8  * and/or sell copies of the Software, and to permit persons to whom the
      9  * Software is furnished to do so, subject to the following conditions:
     10  *
     11  * The above copyright notice and this permission notice shall be included in
     12  * all copies or substantial portions of the Software.
     13  *
     14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     17  * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
     18  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
     19  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
     20  * OTHER DEALINGS IN THE SOFTWARE.
     21  *
     22  * Except as contained in this notice, the name of the copyright holder(s)
     23  * and author(s) shall not be used in advertising or otherwise to promote
     24  * the sale, use or other dealings in this Software without prior written
     25  * authorization from the copyright holder(s) and author(s).
     26  */
     27 
     28 /*
     29  * This file contains the DPMS functions required by the extension.
     30  */
     31 
     32 #ifdef HAVE_XORG_CONFIG_H
     33 #include <xorg-config.h>
     34 #endif
     35 
     36 #include <X11/X.h>
     37 #include "os.h"
     38 #include "globals.h"
     39 #include "windowstr.h"
     40 #include "xf86.h"
     41 #include "xf86Priv.h"
     42 #ifdef DPMSExtension
     43 #include <X11/extensions/dpmsconst.h>
     44 #include "dpmsproc.h"
     45 #endif
     46 #ifdef XSERVER_LIBPCIACCESS
     47 #include "xf86VGAarbiter.h"
     48 #endif
     49 
     50 #ifdef DPMSExtension
     51 static void
     52 xf86DPMS(ScreenPtr pScreen, int level)
     53 {
     54     ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
     55     if (pScrn->DPMSSet && pScrn->vtSema) {
     56         xf86VGAarbiterLock(pScrn);
     57         pScrn->DPMSSet(pScrn, level, 0);
     58         xf86VGAarbiterUnlock(pScrn);
     59     }
     60 }
     61 #endif
     62 
     63 Bool
     64 xf86DPMSInit(ScreenPtr pScreen, DPMSSetProcPtr set, int flags)
     65 {
     66 #ifdef DPMSExtension
     67     ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
     68     void *DPMSOpt;
     69     MessageType enabled_from = X_DEFAULT;
     70     Bool enabled = TRUE;
     71 
     72     DPMSOpt = xf86FindOption(pScrn->options, "dpms");
     73     if (DPMSDisabledSwitch) {
     74         enabled_from = X_CMDLINE;
     75         enabled = FALSE;
     76     }
     77     else if (DPMSOpt) {
     78         enabled_from = X_CONFIG;
     79         enabled = xf86CheckBoolOption(pScrn->options, "dpms", FALSE);
     80         xf86MarkOptionUsed(DPMSOpt);
     81     }
     82     if (enabled) {
     83         xf86DrvMsg(pScreen->myNum, enabled_from, "DPMS enabled\n");
     84         pScrn->DPMSSet = set;
     85         pScreen->DPMS = xf86DPMS;
     86     }
     87     return TRUE;
     88 #else
     89     return FALSE;
     90 #endif
     91 }