changeset 324:720c640332c8

Szebb es jobb screensaver-kikapcsolo resz xmga, xv, x11 support (sdl comming soon)
author laaz
date Tue, 10 Apr 2001 00:00:04 +0000
parents 639dec99c0fd
children b2fd5c172f80
files libvo/vo_x11.c libvo/vo_xmga.c libvo/vo_xv.c libvo/x11_common.c libvo/x11_common.h
diffstat 5 files changed, 62 insertions(+), 97 deletions(-) [+]
line wrap: on
line diff
--- a/libvo/vo_x11.c	Mon Apr 09 23:31:08 2001 +0000
+++ b/libvo/vo_x11.c	Tue Apr 10 00:00:04 2001 +0000
@@ -28,7 +28,6 @@
 #include <X11/Xlib.h>
 #include <X11/Xutil.h>
 #include <X11/extensions/XShm.h>
-#include <X11/extensions/dpms.h>
 #ifdef HAVE_XF86VM
 #include <X11/extensions/xf86vmode.h>
 #endif
@@ -67,8 +66,6 @@
 static XWindowAttributes attribs;
 static int X_already_started=0;
 
-static int timeout_save=0;
-static int dpms_disabled=0;
 //static int vo_dwidth,vo_dheight;
 
 #define SH_MEM
@@ -340,24 +337,7 @@
 
 // vo_initthread( mThread );
 
- if (DPMSQueryExtension(mDisplay, &nothing, &nothing))
- {
-     BOOL onoff;
-     CARD16 state;
-     DPMSInfo(mDisplay, &state, &onoff);
-     if (onoff)
-     {
-	 printf ("Disabling DPMS\n");
-	 dpms_disabled=1;
-         DPMSDisable(mDisplay);  // monitor powersave off
-     }
- }
-
- XGetScreenSaver(mDisplay, &timeout_save, &interval, &prefer_blank, &allow_exp);
- if (timeout_save)                                                       
-   XSetScreenSaver(mDisplay, 0, interval, prefer_blank, allow_exp);
-			     // switching off screensaver
-
+ saver_off(mDisplay);
  return 0;
 }
 
@@ -535,49 +515,19 @@
 static uint32_t query_format( uint32_t format )
 {
  if( !vo_init() ) return 0; // Can't open X11
- if( ( format&IMGFMT_BGR_MASK )==IMGFMT_BGR ){
-   int bpp=format&0xFF;
-   if( bpp==vo_depthonscreen ) return 1;
-   if( bpp==15 && vo_depthonscreen==16) return 1; // built-in conversion
-   if( bpp==24 && vo_depthonscreen==32) return 1; // built-in conversion
- }
+ if( ( format&IMGFMT_BGR_MASK )==IMGFMT_BGR && ( format&0xFF )==vo_depthonscreen ) return 1;
  switch( format )
- {
+  {
    case IMGFMT_YV12: return 1;
- }
+  }
  return 0;
 }
 
 
-
 static void
 uninit(void)
 {
-
- int nothing;
-
-// DMPSEnable doesn't work if there isn't a DPMSQueryExtension after it.
-// XSetScreenSaver doesn't work if there isn't an XGetScreensaver after it.
-
-if (dpms_disabled)
- {
-     if (DPMSQueryExtension(mDisplay, &nothing, &nothing))
-     {
-         printf ("Enabling DPMS\n");
-         DPMSEnable(mDisplay);  // restoring power saving settings
-	 DPMSQueryExtension(mDisplay, &nothing, &nothing);
-     }
- }
-
- if (timeout_save)
- {
-     int dummy, interval, prefer_blank, allow_exp;
-     XGetScreenSaver(mDisplay, &dummy, &interval, &prefer_blank, &allow_exp);
-     XSetScreenSaver(mDisplay, timeout_save, interval, prefer_blank, allow_exp); // screensaver
-     XGetScreenSaver(mDisplay, &timeout_save, &interval, &prefer_blank, &allow_exp);
- }
-
-
+saver_on(mDisplay); // screen saver back on
 #ifdef HAVE_XF86VM
         if (vidmodes!=NULL)
         {
--- a/libvo/vo_xmga.c	Mon Apr 09 23:31:08 2001 +0000
+++ b/libvo/vo_xmga.c	Tue Apr 10 00:00:04 2001 +0000
@@ -274,6 +274,8 @@
  XFlush( mDisplay );
  XSync( mDisplay,False );
 
+ saver_off(mDisplay);
+
  return 0;
 }
 
@@ -284,6 +286,7 @@
 static void
 uninit(void)
 {
+ saver_on(mDisplay);
  ioctl( f,MGA_VID_OFF,0 );
 printf("vo: uninit!\n");
 }
--- a/libvo/vo_xv.c	Mon Apr 09 23:31:08 2001 +0000
+++ b/libvo/vo_xv.c	Tue Apr 10 00:00:04 2001 +0000
@@ -24,7 +24,6 @@
 #include <X11/Xlib.h>
 #include <X11/Xutil.h>
 #include <X11/extensions/XShm.h>
-#include <X11/extensions/dpms.h>
 #include <errno.h>
 
 #include "x11_common.h"
@@ -79,9 +78,6 @@
 static uint32_t               drwX,drwY,drwWidth,drwHeight,drwBorderWidth,drwDepth;
 static uint32_t               drwcX,drwcY,dwidth,dheight,mFullscreen;
 
-static int timeout_save=0;
-static int dpms_disabled=0;
-
 /*
  * connect to server, create and map window,
  * allocate colors and (shared) memory
@@ -89,7 +85,6 @@
 static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format)
 {
  int screen;
- int nothing, interval, prefer_blank, allow_exp;
  char *hello = (title == NULL) ? "Xv render" : title;
  char *name = ":0.0";
  XSizeHints hint;
@@ -204,23 +199,7 @@
        fprintf( stderr,"[xv-fs] dcx: %d dcy: %d dx: %d dy: %d dw: %d dh: %d\n",drwcX,drwcY,drwX,drwY,drwWidth,drwHeight );
       }
 
-    if (DPMSQueryExtension(mydisplay, &nothing, &nothing))
-    {
-	BOOL onoff;
-	CARD16 state;
-	DPMSInfo(mydisplay, &state, &onoff);
-	if (onoff)
-	{
-	    dpms_disabled=1;
-	    DPMSDisable(mydisplay);  // monitor powersave off
-	}
-    }
-
-    XGetScreenSaver(mydisplay, &timeout_save, &interval, &prefer_blank, &allow_exp);
-    if (timeout_save)
-	XSetScreenSaver(mydisplay, 0, interval, prefer_blank, allow_exp);
-			// switching off screensaver
-
+     saver_off(mydisplay);  // turning off screen saver
      return 0;
     }
   }
@@ -412,25 +391,7 @@
 }
 
 static void uninit(void) {
- int nothing;
- if (DPMSQueryExtension(mydisplay, &nothing, &nothing))
- {
-     if (dpms_disabled)
-     {
- 	DPMSEnable(mydisplay);  // restoring power saving settings
-	DPMSQueryExtension(mydisplay, &nothing, &nothing);
-     }
- }
-
- if (timeout_save)
- {
-     int interval, prefer_blank, allow_exp, dummy;
-     XGetScreenSaver(mydisplay, &dummy, &interval, &prefer_blank, &allow_exp);
-     XSetScreenSaver(mydisplay, timeout_save, interval, prefer_blank, allow_exp);
-     XGetScreenSaver(mydisplay, &timeout_save, &interval, &prefer_blank, &allow_exp);
- }
-
-
+    saver_on(mydisplay); // screen saver back on
 }
 
 
--- a/libvo/x11_common.c	Mon Apr 09 23:31:08 2001 +0000
+++ b/libvo/x11_common.c	Tue Apr 10 00:00:04 2001 +0000
@@ -10,6 +10,7 @@
 
 #ifdef X11_FULLSCREEN
 
+#include <X11/Xmd.h>
 #include <X11/Xlib.h>
 #include <X11/Xutil.h>
 #include <X11/Xatom.h>
@@ -20,6 +21,9 @@
 int vo_dwidth=0;
 int vo_dheight=0;
 
+static int dpms_disabled=0;
+static int timeout_save=0;
+
 int vo_init( void )
 {
  int       CompletionType = -1;
@@ -151,3 +155,48 @@
 }
 
 #endif
+
+void saver_on(Display *mDisplay) {
+
+    int nothing;
+    if (dpms_disabled)
+    {
+	if (DPMSQueryExtension(mDisplay, &nothing, &nothing))
+	{
+	    printf ("Enabling DPMS\n");
+	    DPMSEnable(mDisplay);  // restoring power saving settings
+	    DPMSQueryExtension(mDisplay, &nothing, &nothing);
+	}
+    }
+    
+    if (timeout_save)
+    {
+	int dummy, interval, prefer_blank, allow_exp;
+	XGetScreenSaver(mDisplay, &dummy, &interval, &prefer_blank, &allow_exp);
+	XSetScreenSaver(mDisplay, timeout_save, interval, prefer_blank, allow_exp);
+	XGetScreenSaver(mDisplay, &timeout_save, &interval, &prefer_blank, &allow_exp);
+    }
+
+}
+
+void saver_off(Display *mDisplay) {
+
+    int interval, prefer_blank, allow_exp, nothing;
+
+    if (DPMSQueryExtension(mDisplay, &nothing, &nothing))
+    {
+	BOOL onoff;
+	CARD16 state;
+	DPMSInfo(mDisplay, &state, &onoff);
+	if (onoff)
+	{
+	    printf ("Disabling DPMS\n");
+	    dpms_disabled=1;
+		DPMSDisable(mDisplay);  // monitor powersave off
+	}
+    }
+    XGetScreenSaver(mDisplay, &timeout_save, &interval, &prefer_blank, &allow_exp);
+    if (timeout_save)
+	XSetScreenSaver(mDisplay, 0, interval, prefer_blank, allow_exp);
+		    // turning off screensaver
+}
\ No newline at end of file
--- a/libvo/x11_common.h	Mon Apr 09 23:31:08 2001 +0000
+++ b/libvo/x11_common.h	Tue Apr 10 00:00:04 2001 +0000
@@ -1,3 +1,4 @@
+#include <X11/extensions/dpms.h>
 
 #ifdef X11_FULLSCREEN
 
@@ -10,6 +11,7 @@
 int vo_init( void );
 void vo_x11_decoration( Display * vo_Display,Window w,int d );
 int vo_x11_check_events(Display *mydisplay);
-
 #endif
 
+void saver_off( Display * );
+void saver_on( Display * );