Mercurial > mplayer.hg
annotate libvo/x11_common.c @ 1550:39119eb74363
*** empty log message ***
author | zybi |
---|---|
date | Thu, 16 Aug 2001 11:42:10 +0000 |
parents | d40f2b686846 |
children | 5e4214a7540e |
rev | line source |
---|---|
448
198b46b739d8
qrva eletbe nem kene cvs-t elbaszni inkabb ne nyuljatok hozza baz+
arpi_esp
parents:
440
diff
changeset
|
1 |
32 | 2 #include <stdio.h> |
3 #include <stdlib.h> | |
448
198b46b739d8
qrva eletbe nem kene cvs-t elbaszni inkabb ne nyuljatok hozza baz+
arpi_esp
parents:
440
diff
changeset
|
4 |
198b46b739d8
qrva eletbe nem kene cvs-t elbaszni inkabb ne nyuljatok hozza baz+
arpi_esp
parents:
440
diff
changeset
|
5 #include "config.h" |
198b46b739d8
qrva eletbe nem kene cvs-t elbaszni inkabb ne nyuljatok hozza baz+
arpi_esp
parents:
440
diff
changeset
|
6 |
198b46b739d8
qrva eletbe nem kene cvs-t elbaszni inkabb ne nyuljatok hozza baz+
arpi_esp
parents:
440
diff
changeset
|
7 #ifdef X11_FULLSCREEN |
198b46b739d8
qrva eletbe nem kene cvs-t elbaszni inkabb ne nyuljatok hozza baz+
arpi_esp
parents:
440
diff
changeset
|
8 |
440
d19a3da6ac13
Pontscho's mixer, select, and hell-a-lot-of-stuff patch ;)
gabucino
parents:
416
diff
changeset
|
9 #include <string.h> |
32 | 10 #include <unistd.h> |
11 #include <sys/mman.h> | |
12 | |
13 #include "video_out.h" | |
14 | |
324 | 15 #include <X11/Xmd.h> |
32 | 16 #include <X11/Xlib.h> |
17 #include <X11/Xutil.h> | |
18 #include <X11/Xatom.h> | |
19 | |
1345
be674b95b485
x11_common does not compile, when the XDPMS extension is not available on the
jkeil
parents:
1266
diff
changeset
|
20 #ifdef HAVE_XDPMS |
448
198b46b739d8
qrva eletbe nem kene cvs-t elbaszni inkabb ne nyuljatok hozza baz+
arpi_esp
parents:
440
diff
changeset
|
21 #include <X11/extensions/dpms.h> |
1345
be674b95b485
x11_common does not compile, when the XDPMS extension is not available on the
jkeil
parents:
1266
diff
changeset
|
22 #endif |
448
198b46b739d8
qrva eletbe nem kene cvs-t elbaszni inkabb ne nyuljatok hozza baz+
arpi_esp
parents:
440
diff
changeset
|
23 |
1456
8c57a5a3c645
printfs cleanup - moved to higher -v level or moved to stderr
arpi
parents:
1447
diff
changeset
|
24 extern verbose; |
8c57a5a3c645
printfs cleanup - moved to higher -v level or moved to stderr
arpi
parents:
1447
diff
changeset
|
25 |
324 | 26 static int dpms_disabled=0; |
27 static int timeout_save=0; | |
28 | |
922
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
29 char* mDisplayName=NULL; |
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
30 Display* mDisplay; |
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
31 Window mRootWin; |
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
32 int mScreen; |
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
33 int mLocalDisplay; |
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
34 |
384 | 35 |
36 void vo_hidecursor ( Display *disp , Window win ) | |
37 { | |
458
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
38 Cursor no_ptr; |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
39 Pixmap bm_no; |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
40 XColor black,dummy; |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
41 Colormap colormap; |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
42 static unsigned char bm_no_data[] = { 0,0,0,0, 0,0,0,0 }; |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
43 |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
44 colormap = DefaultColormap(disp,DefaultScreen(disp)); |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
45 XAllocNamedColor(disp,colormap,"black",&black,&dummy); |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
46 bm_no = XCreateBitmapFromData(disp, win, bm_no_data, 8,8); |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
47 no_ptr=XCreatePixmapCursor(disp, bm_no, bm_no,&black, &black,0, 0); |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
48 XDefineCursor(disp,win,no_ptr); |
384 | 49 } |
50 | |
51 | |
32 | 52 int vo_init( void ) |
53 { | |
922
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
54 // int mScreen; |
32 | 55 int bpp; |
1137
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
56 unsigned int mask; |
922
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
57 // char * DisplayName = ":0.0"; |
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
58 // Display * mDisplay; |
32 | 59 XImage * mXImage; |
922
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
60 // Window mRootWin; |
32 | 61 static XWindowAttributes attribs; |
62 | |
63 if(vo_depthonscreen) return 1; // already called | |
64 | |
922
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
65 if (!mDisplayName) |
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
66 if (!(mDisplayName=getenv("DISPLAY"))) |
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
67 mDisplayName=strdup(":0.0"); |
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
68 |
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
69 mDisplay=XOpenDisplay(mDisplayName); |
32 | 70 if ( !mDisplay ) |
71 { | |
922
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
72 printf( "vo: couldn't open the X11 display (%s)!\n",mDisplayName ); |
32 | 73 return 0; |
74 } | |
75 mScreen=DefaultScreen( mDisplay ); // Screen ID. | |
76 mRootWin=RootWindow( mDisplay,mScreen );// Root window ID. | |
77 vo_screenwidth=DisplayWidth( mDisplay,mScreen ); | |
78 vo_screenheight=DisplayHeight( mDisplay,mScreen ); | |
79 // get color depth: | |
80 // XGetWindowAttributes(mydisplay, DefaultRootWindow(mDisplay), &attribs); | |
81 XGetWindowAttributes(mDisplay, mRootWin, &attribs); | |
82 vo_depthonscreen=attribs.depth; | |
83 // get bits/pixel: | |
84 mXImage=XGetImage( mDisplay,mRootWin,0,0,1,1,AllPlanes,ZPixmap ); | |
85 bpp=mXImage->bits_per_pixel; | |
1137
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
86 if((vo_depthonscreen+7)/8 != (bpp+7)/8) vo_depthonscreen=bpp; // by A'rpi |
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
87 mask=mXImage->red_mask|mXImage->green_mask|mXImage->blue_mask; |
1456
8c57a5a3c645
printfs cleanup - moved to higher -v level or moved to stderr
arpi
parents:
1447
diff
changeset
|
88 if(verbose) |
1137
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
89 printf("vo: X11 color mask: %X (R:%lX G:%lX B:%lX)\n", |
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
90 mask,mXImage->red_mask,mXImage->green_mask,mXImage->blue_mask); |
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
91 if(((vo_depthonscreen+7)/8)==2){ |
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
92 if(mask==0x7FFF) vo_depthonscreen=15; else |
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
93 if(mask==0xFFFF) vo_depthonscreen=16; |
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
94 } |
32 | 95 XDestroyImage( mXImage ); |
922
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
96 // XCloseDisplay( mDisplay ); |
1447
e82fbd67ae60
better local display connection patch by Adam Tla/lka atlka@pg.gda.pl
arpi
parents:
1415
diff
changeset
|
97 /* slightly improved local display detection AST */ |
e82fbd67ae60
better local display connection patch by Adam Tla/lka atlka@pg.gda.pl
arpi
parents:
1415
diff
changeset
|
98 if ( strncmp(mDisplayName, "unix:", 5) == 0) |
e82fbd67ae60
better local display connection patch by Adam Tla/lka atlka@pg.gda.pl
arpi
parents:
1415
diff
changeset
|
99 mDisplayName += 4; |
e82fbd67ae60
better local display connection patch by Adam Tla/lka atlka@pg.gda.pl
arpi
parents:
1415
diff
changeset
|
100 else if ( strncmp(mDisplayName, "localhost:", 10) == 0) |
e82fbd67ae60
better local display connection patch by Adam Tla/lka atlka@pg.gda.pl
arpi
parents:
1415
diff
changeset
|
101 mDisplayName += 9; |
922
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
102 if (*mDisplayName==':') mLocalDisplay=1; else mLocalDisplay=0; |
1137
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
103 printf("vo: X11 running at %dx%d depth: %d (\"%s\" => %s display)\n",vo_screenwidth,vo_screenheight,vo_depthonscreen,mDisplayName,mLocalDisplay?"local":"remote"); |
32 | 104 return 1; |
105 } | |
106 | |
107 #include "../linux/keycodes.h" | |
108 #include "wskeys.h" | |
109 | |
110 extern void mplayer_put_key(int code); | |
111 | |
112 void vo_x11_putkey(int key){ | |
113 switch ( key ) | |
114 { | |
115 case wsLeft: mplayer_put_key(KEY_LEFT); break; | |
116 case wsRight: mplayer_put_key(KEY_RIGHT); break; | |
117 case wsUp: mplayer_put_key(KEY_UP); break; | |
118 case wsDown: mplayer_put_key(KEY_DOWN); break; | |
119 case wsSpace: mplayer_put_key(' '); break; | |
120 case wsEscape: mplayer_put_key(KEY_ESC); break; | |
121 case wsEnter: mplayer_put_key(KEY_ENTER); break; | |
651 | 122 case wsPageUp: mplayer_put_key(KEY_PAGE_UP); break; |
123 case wsPageDown: mplayer_put_key(KEY_PAGE_DOWN); break; | |
32 | 124 case wsq: |
125 case wsQ: mplayer_put_key('q'); break; | |
126 case wsp: | |
127 case wsP: mplayer_put_key('p'); break; | |
128 case wsMinus: | |
129 case wsGrayMinus: mplayer_put_key('-'); break; | |
130 case wsPlus: | |
131 case wsGrayPlus: mplayer_put_key('+'); break; | |
464 | 132 case wsGrayMul: |
133 case wsMul: mplayer_put_key('*'); break; | |
134 case wsGrayDiv: | |
135 case wsDiv: mplayer_put_key('/'); break; | |
516 | 136 case wsm: |
137 case wsM: mplayer_put_key('m'); break; | |
655 | 138 case wso: |
139 case wsO: mplayer_put_key('o'); break; | |
1501
d40f2b686846
changes according to -utf8 option, draw_osd() function added
atlka
parents:
1456
diff
changeset
|
140 default: if((key>='a' && key<='z')||(key>='A' && key<='Z')|| |
d40f2b686846
changes according to -utf8 option, draw_osd() function added
atlka
parents:
1456
diff
changeset
|
141 (key>='0' && key<='9')) mplayer_put_key(key); |
32 | 142 } |
369 | 143 |
32 | 144 } |
145 | |
146 | |
147 // ----- Motif header: ------- | |
148 | |
1236 | 149 #define MWM_HINTS_FUNCTIONS (1L << 0) |
150 #define MWM_HINTS_DECORATIONS (1L << 1) | |
151 #define MWM_HINTS_INPUT_MODE (1L << 2) | |
152 #define MWM_HINTS_STATUS (1L << 3) | |
153 | |
154 #define MWM_FUNC_ALL (1L << 0) | |
155 #define MWM_FUNC_RESIZE (1L << 1) | |
156 #define MWM_FUNC_MOVE (1L << 2) | |
157 #define MWM_FUNC_MINIMIZE (1L << 3) | |
158 #define MWM_FUNC_MAXIMIZE (1L << 4) | |
159 #define MWM_FUNC_CLOSE (1L << 5) | |
160 | |
161 #define MWM_DECOR_ALL (1L << 0) | |
162 #define MWM_DECOR_BORDER (1L << 1) | |
163 #define MWM_DECOR_RESIZEH (1L << 2) | |
164 #define MWM_DECOR_TITLE (1L << 3) | |
165 #define MWM_DECOR_MENU (1L << 4) | |
166 #define MWM_DECOR_MINIMIZE (1L << 5) | |
167 #define MWM_DECOR_MAXIMIZE (1L << 6) | |
168 | |
169 #define MWM_INPUT_MODELESS 0 | |
170 #define MWM_INPUT_PRIMARY_APPLICATION_MODAL 1 | |
171 #define MWM_INPUT_SYSTEM_MODAL 2 | |
172 #define MWM_INPUT_FULL_APPLICATION_MODAL 3 | |
173 #define MWM_INPUT_APPLICATION_MODAL MWM_INPUT_PRIMARY_APPLICATION_MODAL | |
174 | |
175 #define MWM_TEAROFF_WINDOW (1L<<0) | |
32 | 176 |
177 typedef struct | |
178 { | |
179 long flags; | |
180 long functions; | |
181 long decorations; | |
182 long input_mode; | |
1236 | 183 long state; |
32 | 184 } MotifWmHints; |
185 | |
186 extern MotifWmHints vo_MotifWmHints; | |
187 extern Atom vo_MotifHints; | |
188 extern int vo_depthonscreen; | |
189 extern int vo_screenwidth; | |
190 extern int vo_screenheight; | |
191 | |
192 static MotifWmHints vo_MotifWmHints; | |
193 static Atom vo_MotifHints = None; | |
194 | |
1266 | 195 // Note: always d==0 ! |
32 | 196 void vo_x11_decoration( Display * vo_Display,Window w,int d ) |
197 { | |
1266 | 198 |
199 if(vo_fsmode&1){ | |
200 XSetWindowAttributes attr; | |
201 attr.override_redirect = True; | |
202 XChangeWindowAttributes(vo_Display, w, CWOverrideRedirect, &attr); | |
203 // XMapWindow(vo_Display], w); | |
204 } | |
205 | |
1415 | 206 if(vo_fsmode&8){ |
207 XSetTransientForHint (vo_Display, w, RootWindow(vo_Display,mScreen)); | |
208 } | |
209 | |
32 | 210 vo_MotifHints=XInternAtom( vo_Display,"_MOTIF_WM_HINTS",0 ); |
211 if ( vo_MotifHints != None ) | |
212 { | |
1236 | 213 memset( &vo_MotifWmHints,0,sizeof( MotifWmHints ) ); |
214 vo_MotifWmHints.flags=MWM_HINTS_FUNCTIONS | MWM_HINTS_DECORATIONS; | |
215 vo_MotifWmHints.functions=MWM_FUNC_MOVE | MWM_FUNC_CLOSE | MWM_FUNC_MINIMIZE | MWM_FUNC_MAXIMIZE; | |
216 if ( d ) d=MWM_DECOR_ALL; | |
1266 | 217 vo_MotifWmHints.decorations=d|((vo_fsmode&2)?0:MWM_DECOR_MENU); |
32 | 218 XChangeProperty( vo_Display,w,vo_MotifHints,vo_MotifHints,32, |
1266 | 219 PropModeReplace,(unsigned char *)&vo_MotifWmHints,(vo_fsmode&4)?4:5 ); |
32 | 220 } |
221 } | |
222 | |
1137
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
223 void vo_x11_classhint( Display * display,Window window,char *name ){ |
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
224 XClassHint wmClass; |
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
225 wmClass.res_name = name; |
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
226 wmClass.res_class = "MPlayer"; |
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
227 XSetClassHint(display,window,&wmClass); |
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
228 } |
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
229 |
723 | 230 #ifdef HAVE_GUI |
231 Window vo_window = None; | |
232 GC vo_gc; | |
233 int vo_xeventhandling = 1; | |
234 int vo_resize = 0; | |
235 int vo_expose = 0; | |
236 | |
237 void vo_setwindow( Window w,GC g ) | |
238 { vo_window=w; vo_gc=g; } | |
239 #endif | |
240 | |
32 | 241 int vo_x11_check_events(Display *mydisplay){ |
242 int ret=0; | |
243 XEvent Event; | |
244 char buf[100]; | |
245 KeySym keySym; | |
1038
b36fb1ae4b53
applied solaris8/netbsd/other fixes patch by J«ärgen Keil <jk@tools.de>
arpi_esp
parents:
922
diff
changeset
|
246 static XComposeStatus stat; |
32 | 247 // unsigned long vo_KeyTable[512]; |
248 | |
723 | 249 #ifdef HAVE_GUI |
250 if ( vo_xeventhandling ) | |
251 { | |
252 #endif | |
253 while ( XPending( mydisplay ) ) | |
254 { | |
255 XNextEvent( mydisplay,&Event ); | |
256 switch( Event.type ) | |
257 { | |
258 case Expose: | |
259 ret|=VO_EVENT_EXPOSE; | |
260 break; | |
261 case ConfigureNotify: | |
262 vo_dwidth=Event.xconfigure.width; | |
263 vo_dheight=Event.xconfigure.height; | |
264 ret|=VO_EVENT_RESIZE; | |
265 break; | |
266 case KeyPress: | |
267 XLookupString( &Event.xkey,buf,sizeof(buf),&keySym,&stat ); | |
268 vo_x11_putkey( ( (keySym&0xff00) != 0?( (keySym&0x00ff) + 256 ):( keySym ) ) ); | |
269 ret|=VO_EVENT_KEYPRESS; | |
270 break; | |
271 } | |
272 } | |
273 #ifdef HAVE_GUI | |
32 | 274 } |
723 | 275 else |
276 { | |
277 if ( vo_resize ) | |
278 { | |
279 vo_resize=0; | |
280 ret|=VO_EVENT_RESIZE; | |
281 } | |
282 if ( vo_expose ) | |
283 { | |
284 vo_expose=0; | |
285 ret|=VO_EVENT_EXPOSE; | |
286 } | |
287 } | |
288 #endif | |
32 | 289 |
290 return ret; | |
291 } | |
292 | |
324 | 293 void saver_on(Display *mDisplay) { |
294 | |
1345
be674b95b485
x11_common does not compile, when the XDPMS extension is not available on the
jkeil
parents:
1266
diff
changeset
|
295 #ifdef HAVE_XDPMS |
324 | 296 int nothing; |
297 if (dpms_disabled) | |
298 { | |
458
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
299 if (DPMSQueryExtension(mDisplay, ¬hing, ¬hing)) |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
300 { |
741 | 301 if (!DPMSEnable(mDisplay)) { // restoring power saving settings |
302 printf("DPMS not available?\n"); | |
303 } else { | |
304 // DPMS does not seem to be enabled unless we call DPMSInfo | |
305 BOOL onoff; | |
306 CARD16 state; | |
307 DPMSInfo(mDisplay, &state, &onoff); | |
308 if (onoff) { | |
309 printf ("Successfully enabled DPMS\n"); | |
310 } else { | |
311 printf ("Could not enable DPMS\n"); | |
312 } | |
313 } | |
458
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
314 } |
324 | 315 } |
1345
be674b95b485
x11_common does not compile, when the XDPMS extension is not available on the
jkeil
parents:
1266
diff
changeset
|
316 #endif |
be674b95b485
x11_common does not compile, when the XDPMS extension is not available on the
jkeil
parents:
1266
diff
changeset
|
317 |
324 | 318 if (timeout_save) |
319 { | |
458
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
320 int dummy, interval, prefer_blank, allow_exp; |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
321 XGetScreenSaver(mDisplay, &dummy, &interval, &prefer_blank, &allow_exp); |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
322 XSetScreenSaver(mDisplay, timeout_save, interval, prefer_blank, allow_exp); |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
323 XGetScreenSaver(mDisplay, &timeout_save, &interval, &prefer_blank, &allow_exp); |
324 | 324 } |
325 | |
326 } | |
327 | |
328 void saver_off(Display *mDisplay) { | |
329 | |
1345
be674b95b485
x11_common does not compile, when the XDPMS extension is not available on the
jkeil
parents:
1266
diff
changeset
|
330 int interval, prefer_blank, allow_exp; |
be674b95b485
x11_common does not compile, when the XDPMS extension is not available on the
jkeil
parents:
1266
diff
changeset
|
331 #ifdef HAVE_XDPMS |
be674b95b485
x11_common does not compile, when the XDPMS extension is not available on the
jkeil
parents:
1266
diff
changeset
|
332 int nothing; |
324 | 333 |
334 if (DPMSQueryExtension(mDisplay, ¬hing, ¬hing)) | |
335 { | |
458
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
336 BOOL onoff; |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
337 CARD16 state; |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
338 DPMSInfo(mDisplay, &state, &onoff); |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
339 if (onoff) |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
340 { |
741 | 341 Status stat; |
458
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
342 printf ("Disabling DPMS\n"); |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
343 dpms_disabled=1; |
741 | 344 stat = DPMSDisable(mDisplay); // monitor powersave off |
345 printf ("stat: %d\n", stat); | |
458
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
346 } |
324 | 347 } |
1345
be674b95b485
x11_common does not compile, when the XDPMS extension is not available on the
jkeil
parents:
1266
diff
changeset
|
348 #endif |
324 | 349 XGetScreenSaver(mDisplay, &timeout_save, &interval, &prefer_blank, &allow_exp); |
350 if (timeout_save) | |
458
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
351 XSetScreenSaver(mDisplay, 0, interval, prefer_blank, allow_exp); |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
352 // turning off screensaver |
326 | 353 } |
448
198b46b739d8
qrva eletbe nem kene cvs-t elbaszni inkabb ne nyuljatok hozza baz+
arpi_esp
parents:
440
diff
changeset
|
354 |
198b46b739d8
qrva eletbe nem kene cvs-t elbaszni inkabb ne nyuljatok hozza baz+
arpi_esp
parents:
440
diff
changeset
|
355 #endif |