Refactored the screensaver and DPMS timer code to use the screensaver timer
for both screensaver and DPMS. Removed the SetDPMSTimers() and FreeDPMSTimers() functions.
This commit is contained in:
parent
d1746ec0f0
commit
ae935832fa
14
ChangeLog
14
ChangeLog
|
@ -1,3 +1,17 @@
|
||||||
|
2006-03-24 Fredrik Höglund <fredrik@kde.org>
|
||||||
|
|
||||||
|
* Xext/dpms.c (ProcDPMSSetTimeouts):
|
||||||
|
* dix/main.c (main):
|
||||||
|
* hw/xfree86/common/xf86Xinput.c (xf86eqProcessInputEvents):
|
||||||
|
* hw/xfree86/loader/dixsym.c:
|
||||||
|
* os/WaitFor.c (NextDPMSTimeout), (ScreenSaverTimeoutExpire)
|
||||||
|
(SetScreenSaverTimer), (DPMSStandbyTimerExpire),
|
||||||
|
(DPMSSuspendTimerExpire), (DPMSOffTimerExpire), (FreeDPMSTimers),
|
||||||
|
(SetDPMSTimers):
|
||||||
|
Refactored the screensaver and DPMS timer code to use the screensaver
|
||||||
|
timer for both screensaver and DPMS. Removed the SetDPMSTimers()
|
||||||
|
and FreeDPMSTimers() functions.
|
||||||
|
|
||||||
2006-03-24 Kristian Høgsberg <krh@redhat.com>
|
2006-03-24 Kristian Høgsberg <krh@redhat.com>
|
||||||
|
|
||||||
* GL/glx/glxdri.c (__glXDRIscreenProbe): Make sure DRI module is
|
* GL/glx/glxdri.c (__glXDRIscreenProbe): Make sure DRI module is
|
||||||
|
|
|
@ -189,12 +189,12 @@ ProcDPMSSetTimeouts(client)
|
||||||
client->errorValue = stuff->suspend;
|
client->errorValue = stuff->suspend;
|
||||||
return BadValue;
|
return BadValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
DPMSStandbyTime = stuff->standby * MILLI_PER_SECOND;
|
DPMSStandbyTime = stuff->standby * MILLI_PER_SECOND;
|
||||||
DPMSSuspendTime = stuff->suspend * MILLI_PER_SECOND;
|
DPMSSuspendTime = stuff->suspend * MILLI_PER_SECOND;
|
||||||
DPMSOffTime = stuff->off * MILLI_PER_SECOND;
|
DPMSOffTime = stuff->off * MILLI_PER_SECOND;
|
||||||
SetDPMSTimers();
|
SetScreenSaverTimer();
|
||||||
|
|
||||||
return(client->noClientException);
|
return(client->noClientException);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $XdotOrg: xserver/xorg/dix/main.c,v 1.14 2005/07/03 08:53:38 daniels Exp $ */
|
/* $XdotOrg: xserver/xorg/dix/main.c,v 1.15 2006/02/15 20:44:12 ajax Exp $ */
|
||||||
/* $XFree86: xc/programs/Xserver/dix/main.c,v 3.43 2003/10/30 21:21:02 herrb Exp $ */
|
/* $XFree86: xc/programs/Xserver/dix/main.c,v 3.43 2003/10/30 21:21:02 herrb Exp $ */
|
||||||
/***********************************************************
|
/***********************************************************
|
||||||
|
|
||||||
|
@ -432,9 +432,6 @@ main(int argc, char *argv[], char *envp[])
|
||||||
InitRootWindow(WindowTable[i]);
|
InitRootWindow(WindowTable[i]);
|
||||||
DefineInitialRootWindow(WindowTable[0]);
|
DefineInitialRootWindow(WindowTable[0]);
|
||||||
SaveScreens(SCREEN_SAVER_FORCER, ScreenSaverReset);
|
SaveScreens(SCREEN_SAVER_FORCER, ScreenSaverReset);
|
||||||
#ifdef DPMSExtension
|
|
||||||
SetDPMSTimers();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef PANORAMIX
|
#ifdef PANORAMIX
|
||||||
if (!noPanoramiXExtension) {
|
if (!noPanoramiXExtension) {
|
||||||
|
@ -481,9 +478,6 @@ main(int argc, char *argv[], char *envp[])
|
||||||
WindowTable = NULL;
|
WindowTable = NULL;
|
||||||
FreeFonts();
|
FreeFonts();
|
||||||
|
|
||||||
#ifdef DPMSExtension
|
|
||||||
FreeDPMSTimers();
|
|
||||||
#endif
|
|
||||||
FreeAuditTimer();
|
FreeAuditTimer();
|
||||||
|
|
||||||
xfree(serverClient->devPrivates);
|
xfree(serverClient->devPrivates);
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
* authorization from the copyright holder(s) and author(s).
|
* authorization from the copyright holder(s) and author(s).
|
||||||
*/
|
*/
|
||||||
/* $XConsortium: xf86Xinput.c /main/14 1996/10/27 11:05:25 kaleb $ */
|
/* $XConsortium: xf86Xinput.c /main/14 1996/10/27 11:05:25 kaleb $ */
|
||||||
/* $XdotOrg: xc/programs/Xserver/hw/xfree86/common/xf86Xinput.c,v 1.4 2005/04/20 12:25:21 daniels Exp $ */
|
/* $XdotOrg: xserver/xorg/hw/xfree86/common/xf86Xinput.c,v 1.7 2005/10/21 19:06:13 ajax Exp $ */
|
||||||
|
|
||||||
#ifdef HAVE_XORG_CONFIG_H
|
#ifdef HAVE_XORG_CONFIG_H
|
||||||
#include <xorg-config.h>
|
#include <xorg-config.h>
|
||||||
|
@ -773,6 +773,9 @@ xf86eqProcessInputEvents ()
|
||||||
if (screenIsSaved == SCREEN_SAVER_ON)
|
if (screenIsSaved == SCREEN_SAVER_ON)
|
||||||
SaveScreens (SCREEN_SAVER_OFF, ScreenSaverReset);
|
SaveScreens (SCREEN_SAVER_OFF, ScreenSaverReset);
|
||||||
#ifdef DPMSExtension
|
#ifdef DPMSExtension
|
||||||
|
else if (DPMSPowerLevel != DPMSModeOn)
|
||||||
|
SetScreenSaverTimer();
|
||||||
|
|
||||||
if (DPMSPowerLevel != DPMSModeOn)
|
if (DPMSPowerLevel != DPMSModeOn)
|
||||||
DPMSSet(DPMSModeOn);
|
DPMSSet(DPMSModeOn);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $XdotOrg: xc/programs/Xserver/hw/xfree86/loader/dixsym.c,v 1.12 2005/05/30 18:44:55 ajax Exp $ */
|
/* $XdotOrg: xserver/xorg/hw/xfree86/loader/dixsym.c,v 1.20 2006/01/08 23:43:53 ajax Exp $ */
|
||||||
/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/dixsym.c,v 1.63 2003/12/03
|
/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/dixsym.c,v 1.63 2003/12/03
|
||||||
* 17:11:29 tsi Exp $ */
|
* 17:11:29 tsi Exp $ */
|
||||||
|
|
||||||
|
@ -473,9 +473,6 @@ LOOKUP dixLookupTab[] = {
|
||||||
SYMFUNC(TimerFree)
|
SYMFUNC(TimerFree)
|
||||||
SYMFUNC(TimerSet)
|
SYMFUNC(TimerSet)
|
||||||
SYMFUNC(TimerCancel)
|
SYMFUNC(TimerCancel)
|
||||||
#ifdef DPMSExtension
|
|
||||||
SYMFUNC(SetDPMSTimers)
|
|
||||||
#endif
|
|
||||||
/* io.c */
|
/* io.c */
|
||||||
SYMFUNC(WriteToClient)
|
SYMFUNC(WriteToClient)
|
||||||
SYMFUNC(SetCriticalOutputPending)
|
SYMFUNC(SetCriticalOutputPending)
|
||||||
|
|
195
os/WaitFor.c
195
os/WaitFor.c
|
@ -573,26 +573,89 @@ TimerInit(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef DPMSExtension
|
||||||
|
|
||||||
|
#define DPMS_CHECK_MODE(mode,time)\
|
||||||
|
if (time > 0 && DPMSPowerLevel < mode && timeout >= time)\
|
||||||
|
DPMSSet(mode);
|
||||||
|
|
||||||
|
#define DPMS_CHECK_TIMEOUT(time)\
|
||||||
|
if (time > 0 && (time - timeout) > 0)\
|
||||||
|
return time - timeout;
|
||||||
|
|
||||||
|
static CARD32
|
||||||
|
NextDPMSTimeout(INT32 timeout)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Return the amount of time remaining until we should set
|
||||||
|
* the next power level. Fallthroughs are intentional.
|
||||||
|
*/
|
||||||
|
switch (DPMSPowerLevel)
|
||||||
|
{
|
||||||
|
case DPMSModeOn:
|
||||||
|
DPMS_CHECK_TIMEOUT(DPMSStandbyTime)
|
||||||
|
|
||||||
|
case DPMSModeStandby:
|
||||||
|
DPMS_CHECK_TIMEOUT(DPMSSuspendTime)
|
||||||
|
|
||||||
|
case DPMSModeSuspend:
|
||||||
|
DPMS_CHECK_TIMEOUT(DPMSOffTime)
|
||||||
|
|
||||||
|
default: /* DPMSModeOff */
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif /* DPMSExtension */
|
||||||
|
|
||||||
static CARD32
|
static CARD32
|
||||||
ScreenSaverTimeoutExpire(OsTimerPtr timer,CARD32 now,pointer arg)
|
ScreenSaverTimeoutExpire(OsTimerPtr timer,CARD32 now,pointer arg)
|
||||||
{
|
{
|
||||||
INT32 timeout = now - lastDeviceEventTime.milliseconds;
|
INT32 timeout = now - lastDeviceEventTime.milliseconds;
|
||||||
|
CARD32 nextTimeout = 0;
|
||||||
|
|
||||||
if (timeout < ScreenSaverTime) {
|
#ifdef DPMSExtension
|
||||||
return ScreenSaverTime - timeout;
|
/*
|
||||||
|
* Check each mode lowest to highest, since a lower mode can
|
||||||
|
* have the same timeout as a higher one.
|
||||||
|
*/
|
||||||
|
if (DPMSEnabled)
|
||||||
|
{
|
||||||
|
DPMS_CHECK_MODE(DPMSModeOff, DPMSOffTime)
|
||||||
|
DPMS_CHECK_MODE(DPMSModeSuspend, DPMSSuspendTime)
|
||||||
|
DPMS_CHECK_MODE(DPMSModeStandby, DPMSStandbyTime)
|
||||||
|
|
||||||
|
nextTimeout = NextDPMSTimeout(timeout);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Only do the screensaver checks if we're not in a DPMS
|
||||||
|
* power saving mode
|
||||||
|
*/
|
||||||
|
if (DPMSPowerLevel != DPMSModeOn)
|
||||||
|
return nextTimeout;
|
||||||
|
#endif /* DPMSExtension */
|
||||||
|
|
||||||
|
if (!ScreenSaverTime)
|
||||||
|
return nextTimeout;
|
||||||
|
|
||||||
|
if (timeout < ScreenSaverTime)
|
||||||
|
{
|
||||||
|
return nextTimeout > 0 ?
|
||||||
|
MIN(ScreenSaverTime - timeout, nextTimeout) :
|
||||||
|
ScreenSaverTime - timeout;
|
||||||
}
|
}
|
||||||
|
|
||||||
ResetOsBuffers(); /* not ideal, but better than nothing */
|
ResetOsBuffers(); /* not ideal, but better than nothing */
|
||||||
SaveScreens(SCREEN_SAVER_ON, ScreenSaverActive);
|
SaveScreens(SCREEN_SAVER_ON, ScreenSaverActive);
|
||||||
|
|
||||||
#ifdef DPMSExtension
|
|
||||||
if (ScreenSaverInterval > 0 && DPMSPowerLevel == DPMSModeOn)
|
|
||||||
#else
|
|
||||||
if (ScreenSaverInterval > 0)
|
if (ScreenSaverInterval > 0)
|
||||||
#endif /* DPMSExtension */
|
{
|
||||||
return ScreenSaverInterval;
|
nextTimeout = nextTimeout > 0 ?
|
||||||
|
MIN(ScreenSaverInterval, nextTimeout) :
|
||||||
|
ScreenSaverInterval;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return nextTimeout;
|
||||||
}
|
}
|
||||||
|
|
||||||
static OsTimerPtr ScreenSaverTimer = NULL;
|
static OsTimerPtr ScreenSaverTimer = NULL;
|
||||||
|
@ -609,93 +672,39 @@ FreeScreenSaverTimer(void)
|
||||||
void
|
void
|
||||||
SetScreenSaverTimer(void)
|
SetScreenSaverTimer(void)
|
||||||
{
|
{
|
||||||
if (ScreenSaverTime > 0) {
|
CARD32 timeout = 0;
|
||||||
ScreenSaverTimer = TimerSet(ScreenSaverTimer, 0, ScreenSaverTime,
|
|
||||||
ScreenSaverTimeoutExpire, NULL);
|
|
||||||
} else if (ScreenSaverTimer) {
|
|
||||||
FreeScreenSaverTimer();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef DPMSExtension
|
#ifdef DPMSExtension
|
||||||
|
if (DPMSEnabled)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* A higher DPMS level has a timeout that's either less
|
||||||
|
* than or equal to that of a lower DPMS level.
|
||||||
|
*/
|
||||||
|
if (DPMSStandbyTime > 0)
|
||||||
|
timeout = DPMSStandbyTime;
|
||||||
|
|
||||||
static OsTimerPtr DPMSStandbyTimer = NULL;
|
else if (DPMSSuspendTime > 0)
|
||||||
static OsTimerPtr DPMSSuspendTimer = NULL;
|
timeout = DPMSSuspendTime;
|
||||||
static OsTimerPtr DPMSOffTimer = NULL;
|
|
||||||
|
|
||||||
static CARD32
|
else if (DPMSOffTime > 0)
|
||||||
DPMSStandbyTimerExpire(OsTimerPtr timer,CARD32 now,pointer arg)
|
timeout = DPMSOffTime;
|
||||||
{
|
|
||||||
INT32 timeout = now - lastDeviceEventTime.milliseconds;
|
|
||||||
|
|
||||||
if (timeout < DPMSStandbyTime) {
|
|
||||||
return DPMSStandbyTime - timeout;
|
|
||||||
}
|
}
|
||||||
if (DPMSPowerLevel < DPMSModeStandby) {
|
|
||||||
if (DPMSEnabled)
|
|
||||||
DPMSSet(DPMSModeStandby);
|
|
||||||
}
|
|
||||||
return DPMSStandbyTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
static CARD32
|
|
||||||
DPMSSuspendTimerExpire(OsTimerPtr timer,CARD32 now,pointer arg)
|
|
||||||
{
|
|
||||||
INT32 timeout = now - lastDeviceEventTime.milliseconds;
|
|
||||||
|
|
||||||
if (timeout < DPMSSuspendTime) {
|
|
||||||
return DPMSSuspendTime - timeout;
|
|
||||||
}
|
|
||||||
if (DPMSPowerLevel < DPMSModeSuspend) {
|
|
||||||
if (DPMSEnabled)
|
|
||||||
DPMSSet(DPMSModeSuspend);
|
|
||||||
}
|
|
||||||
return DPMSSuspendTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
static CARD32
|
|
||||||
DPMSOffTimerExpire(OsTimerPtr timer,CARD32 now,pointer arg)
|
|
||||||
{
|
|
||||||
INT32 timeout = now - lastDeviceEventTime.milliseconds;
|
|
||||||
|
|
||||||
if (timeout < DPMSOffTime) {
|
|
||||||
return DPMSOffTime - timeout;
|
|
||||||
}
|
|
||||||
if (DPMSPowerLevel < DPMSModeOff) {
|
|
||||||
if (DPMSEnabled)
|
|
||||||
DPMSSet(DPMSModeOff);
|
|
||||||
}
|
|
||||||
return DPMSOffTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
FreeDPMSTimers(void)
|
|
||||||
{
|
|
||||||
if (DPMSStandbyTimer) {
|
|
||||||
TimerFree(DPMSStandbyTimer);
|
|
||||||
DPMSStandbyTimer = NULL;
|
|
||||||
}
|
|
||||||
if (DPMSSuspendTimer) {
|
|
||||||
TimerFree(DPMSSuspendTimer);
|
|
||||||
DPMSSuspendTimer = NULL;
|
|
||||||
}
|
|
||||||
if (DPMSOffTimer) {
|
|
||||||
TimerFree(DPMSOffTimer);
|
|
||||||
DPMSOffTimer = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
_X_EXPORT void
|
|
||||||
SetDPMSTimers(void)
|
|
||||||
{
|
|
||||||
if (!DPMSEnabled)
|
|
||||||
return;
|
|
||||||
|
|
||||||
DPMSStandbyTimer = TimerSet(DPMSStandbyTimer, 0, DPMSStandbyTime,
|
|
||||||
DPMSStandbyTimerExpire, NULL);
|
|
||||||
DPMSSuspendTimer = TimerSet(DPMSSuspendTimer, 0, DPMSSuspendTime,
|
|
||||||
DPMSSuspendTimerExpire, NULL);
|
|
||||||
DPMSOffTimer = TimerSet(DPMSOffTimer, 0, DPMSOffTime,
|
|
||||||
DPMSOffTimerExpire, NULL);
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (ScreenSaverTime > 0)
|
||||||
|
{
|
||||||
|
timeout = timeout > 0 ?
|
||||||
|
MIN(ScreenSaverTime, timeout) :
|
||||||
|
ScreenSaverTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (timeout) {
|
||||||
|
ScreenSaverTimer = TimerSet(ScreenSaverTimer, 0, timeout,
|
||||||
|
ScreenSaverTimeoutExpire, NULL);
|
||||||
|
}
|
||||||
|
else if (ScreenSaverTimer) {
|
||||||
|
FreeScreenSaverTimer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue