1
mirror of https://github.com/mpv-player/mpv synced 2024-08-04 14:59:58 +02:00

Add support for XScreenSaverSuspend

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25494 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
reimar 2007-12-22 11:09:43 +00:00
parent acec444aa5
commit defbb2a545
2 changed files with 46 additions and 1 deletions

25
configure vendored
View File

@ -363,6 +363,7 @@ Video output:
--enable-xinerama enable Xinerama support [autodetect]
--enable-x11 enable X11 video output [autodetect]
--enable-xshape enable XShape support [autodetect]
--disable-xss disable screensaver support via xss [autodetect]
--enable-fbdev enable FBDev video output [autodetect]
--enable-mlib enable mediaLib video output (Solaris) [disable]
--enable-3dfx enable obsolete /dev/3dfx video output [disable]
@ -514,6 +515,7 @@ _mencoder=yes
_mplayer=yes
_x11=auto
_xshape=auto
_xss=auto
_dga1=auto
_dga2=auto
_xv=auto
@ -812,6 +814,8 @@ for ac_option do
--disable-x11) _x11=no ;;
--enable-xshape) _xshape=yes ;;
--disable-xshape) _xshape=no ;;
--enable-xss) _xss=yes ;;
--disable-xss) _xss=no ;;
--enable-xv) _xv=yes ;;
--disable-xv) _xv=no ;;
--enable-xvmc) _xvmc=yes ;;
@ -3907,6 +3911,26 @@ else
fi
echores "$_x11"
echocheck "Xss screensaver extensions"
if test "$_xss" = auto ; then
cat > $TMPC << EOF
#include <X11/Xlib.h>
#include <X11/extensions/scrnsaver.h>
int main(void) {
XScreenSaverSuspend(NULL, True);
return 0;
}
EOF
_xss=no
cc_check -lXss && _xss=yes
fi
if test "$_xss" = yes ; then
_def_xss='#define HAVE_XSS 1'
_libs_mplayer="$_libs_mplayer -lXss"
else
_def_xss='#undef HAVE_XSS'
fi
echores "$_xss"
echocheck "DPMS"
_xdpms3=no
@ -8497,6 +8521,7 @@ $_def_dvb
$_def_dvb_in
$_def_svga
$_def_vesa
$_def_xss
$_def_xdpms
$_def_aa
$_def_caca

View File

@ -1702,6 +1702,22 @@ static void xscreensaver_enable(void)
xs_windowid = 0;
}
static int xss_suspend(Bool suspend)
{
#ifndef HAVE_XSS
return 0;
#else
int event, error, major, minor;
if (XScreenSaverQueryExtension(mDisplay, &event, &error) != True ||
XScreenSaverQueryVersion(mDisplay, &major, &minor) != True)
return 0;
if (major < 1 || major == 1 && minor < 1)
return 0;
XScreenSaverSuspend(mDisplay, suspend);
return 1;
#endif
}
/*
* End of XScreensaver stuff
*/
@ -1709,6 +1725,8 @@ static void xscreensaver_enable(void)
void saver_on(Display * mDisplay)
{
if (xss_suspend(False))
return;
#ifdef HAVE_XDPMS
if (dpms_disabled)
{
@ -1767,9 +1785,11 @@ void saver_on(Display * mDisplay)
void saver_off(Display * mDisplay)
{
#ifdef HAVE_XDPMS
int nothing;
if (xss_suspend(True))
return;
#ifdef HAVE_XDPMS
if (DPMSQueryExtension(mDisplay, &nothing, &nothing))
{
BOOL onoff;