Mercurial > mplayer.hg
annotate libvo/x11_common.c @ 4436:0c2d2aaf9f86
added vo_x11_uninit
author | alex |
---|---|
date | Thu, 31 Jan 2002 11:04:41 +0000 |
parents | 6144f63cbaa1 |
children | f5fc7e9bac38 |
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 |
2149
6358db6ad3d0
Xinerama screen size fix by Lev Babiev <harley@hosers.org>
arpi
parents:
1746
diff
changeset
|
24 #ifdef HAVE_XINERAMA |
6358db6ad3d0
Xinerama screen size fix by Lev Babiev <harley@hosers.org>
arpi
parents:
1746
diff
changeset
|
25 #include <X11/extensions/Xinerama.h> |
6358db6ad3d0
Xinerama screen size fix by Lev Babiev <harley@hosers.org>
arpi
parents:
1746
diff
changeset
|
26 #endif |
1732 | 27 |
4425
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
28 #ifdef HAVE_XF86VM |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
29 #include <X11/extensions/xf86vmode.h> |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
30 #endif |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
31 |
1732 | 32 /* |
33 * If SCAN_VISUALS is defined, vo_init() scans all available TrueColor | |
34 * visuals for the 'best' visual for MPlayer video display. Note that | |
35 * the 'best' visual might be different from the default visual that | |
36 * is in use on the root window of the display/screen. | |
37 */ | |
38 #define SCAN_VISUALS | |
39 | |
40 | |
1456
8c57a5a3c645
printfs cleanup - moved to higher -v level or moved to stderr
arpi
parents:
1447
diff
changeset
|
41 extern verbose; |
8c57a5a3c645
printfs cleanup - moved to higher -v level or moved to stderr
arpi
parents:
1447
diff
changeset
|
42 |
324 | 43 static int dpms_disabled=0; |
44 static int timeout_save=0; | |
45 | |
922
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
46 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
|
47 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
|
48 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
|
49 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
|
50 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
|
51 |
3830 | 52 /* output window id */ |
53 int WinID=-1; | |
384 | 54 |
4017 | 55 #ifdef HAVE_XINERAMA |
56 int xinerama_screen = 0; | |
57 int xinerama_x = 0; | |
58 int xinerama_y = 0; | |
59 #endif | |
60 | |
4425
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
61 #ifdef HAVE_XF86VM |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
62 XF86VidModeModeInfo **vidmodes=NULL; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
63 #endif |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
64 |
384 | 65 void vo_hidecursor ( Display *disp , Window win ) |
66 { | |
458
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
67 Cursor no_ptr; |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
68 Pixmap bm_no; |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
69 XColor black,dummy; |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
70 Colormap colormap; |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
71 static unsigned char bm_no_data[] = { 0,0,0,0, 0,0,0,0 }; |
3954 | 72 |
73 if(WinID==0) return; // do not hide, if we're playing at rootwin | |
458
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
74 |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
75 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
|
76 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
|
77 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
|
78 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
|
79 XDefineCursor(disp,win,no_ptr); |
384 | 80 } |
81 | |
82 | |
1732 | 83 #ifdef SCAN_VISUALS |
84 /* | |
85 * Scan the available visuals on this Display/Screen. Try to find | |
86 * the 'best' available TrueColor visual that has a decent color | |
87 * depth (at least 15bit). If there are multiple visuals with depth | |
88 * >= 15bit, we prefer visuals with a smaller color depth. | |
89 */ | |
90 int vo_find_depth_from_visuals(Display *dpy, int screen, Visual **visual_return) | |
91 { | |
92 XVisualInfo visual_tmpl; | |
93 XVisualInfo *visuals; | |
94 int nvisuals, i; | |
95 int bestvisual = -1; | |
96 int bestvisual_depth = -1; | |
97 | |
98 visual_tmpl.screen = screen; | |
99 visual_tmpl.class = TrueColor; | |
100 visuals = XGetVisualInfo(dpy, | |
101 VisualScreenMask | VisualClassMask, &visual_tmpl, | |
102 &nvisuals); | |
103 if (visuals != NULL) { | |
104 for (i = 0; i < nvisuals; i++) { | |
105 if (verbose) | |
106 printf("vo: X11 truecolor visual %#x, depth %d, R:%lX G:%lX B:%lX\n", | |
107 visuals[i].visualid, visuals[i].depth, | |
108 visuals[i].red_mask, visuals[i].green_mask, | |
109 visuals[i].blue_mask); | |
110 /* | |
111 * save the visual index and it's depth, if this is the first | |
112 * truecolor visul, or a visual that is 'preferred' over the | |
113 * previous 'best' visual | |
114 */ | |
115 if (bestvisual_depth == -1 | |
116 || (visuals[i].depth >= 15 | |
117 && ( visuals[i].depth < bestvisual_depth | |
118 || bestvisual_depth < 15))) { | |
119 bestvisual = i; | |
120 bestvisual_depth = visuals[i].depth; | |
121 } | |
122 } | |
123 | |
124 if (bestvisual != -1 && visual_return != NULL) | |
125 *visual_return = visuals[bestvisual].visual; | |
126 | |
127 XFree(visuals); | |
128 } | |
129 return bestvisual_depth; | |
130 } | |
131 #endif | |
132 | |
133 | |
32 | 134 int vo_init( void ) |
135 { | |
922
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
136 // int mScreen; |
1732 | 137 int depth, bpp; |
1137
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
138 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
|
139 // 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
|
140 // Display * mDisplay; |
1732 | 141 XImage * mXImage = NULL; |
922
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
142 // Window mRootWin; |
1732 | 143 XWindowAttributes attribs; |
32 | 144 |
145 if(vo_depthonscreen) return 1; // already called | |
146 | |
922
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
147 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
|
148 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
|
149 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
|
150 |
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
151 mDisplay=XOpenDisplay(mDisplayName); |
32 | 152 if ( !mDisplay ) |
153 { | |
922
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
154 printf( "vo: couldn't open the X11 display (%s)!\n",mDisplayName ); |
32 | 155 return 0; |
156 } | |
157 mScreen=DefaultScreen( mDisplay ); // Screen ID. | |
158 mRootWin=RootWindow( mDisplay,mScreen );// Root window ID. | |
2149
6358db6ad3d0
Xinerama screen size fix by Lev Babiev <harley@hosers.org>
arpi
parents:
1746
diff
changeset
|
159 |
6358db6ad3d0
Xinerama screen size fix by Lev Babiev <harley@hosers.org>
arpi
parents:
1746
diff
changeset
|
160 #ifdef HAVE_XINERAMA |
6358db6ad3d0
Xinerama screen size fix by Lev Babiev <harley@hosers.org>
arpi
parents:
1746
diff
changeset
|
161 if(XineramaIsActive(mDisplay)) |
6358db6ad3d0
Xinerama screen size fix by Lev Babiev <harley@hosers.org>
arpi
parents:
1746
diff
changeset
|
162 { |
6358db6ad3d0
Xinerama screen size fix by Lev Babiev <harley@hosers.org>
arpi
parents:
1746
diff
changeset
|
163 XineramaScreenInfo *screens; |
6358db6ad3d0
Xinerama screen size fix by Lev Babiev <harley@hosers.org>
arpi
parents:
1746
diff
changeset
|
164 int num_screens; |
3990 | 165 |
2149
6358db6ad3d0
Xinerama screen size fix by Lev Babiev <harley@hosers.org>
arpi
parents:
1746
diff
changeset
|
166 screens = XineramaQueryScreens(mDisplay, &num_screens); |
4017 | 167 if(xinerama_screen >= num_screens) xinerama_screen = 0; |
3461
6b4ff1eb79bf
xinerama: allow to override xinerama screen_w/screen_h and setting size of screen where the window is placed
alex
parents:
2364
diff
changeset
|
168 if (! vo_screenwidth) |
4017 | 169 vo_screenwidth=screens[xinerama_screen].width; |
3461
6b4ff1eb79bf
xinerama: allow to override xinerama screen_w/screen_h and setting size of screen where the window is placed
alex
parents:
2364
diff
changeset
|
170 if (! vo_screenheight) |
4017 | 171 vo_screenheight=screens[xinerama_screen].height; |
172 xinerama_x = screens[xinerama_screen].x_org; | |
173 xinerama_y = screens[xinerama_screen].y_org; | |
174 | |
3990 | 175 XFree(screens); |
2149
6358db6ad3d0
Xinerama screen size fix by Lev Babiev <harley@hosers.org>
arpi
parents:
1746
diff
changeset
|
176 } |
6358db6ad3d0
Xinerama screen size fix by Lev Babiev <harley@hosers.org>
arpi
parents:
1746
diff
changeset
|
177 else |
6358db6ad3d0
Xinerama screen size fix by Lev Babiev <harley@hosers.org>
arpi
parents:
1746
diff
changeset
|
178 #endif |
6358db6ad3d0
Xinerama screen size fix by Lev Babiev <harley@hosers.org>
arpi
parents:
1746
diff
changeset
|
179 { |
2364 | 180 if (! vo_screenwidth) |
181 vo_screenwidth=DisplayWidth( mDisplay,mScreen ); | |
182 if (! vo_screenheight) | |
183 vo_screenheight=DisplayHeight( mDisplay,mScreen ); | |
2149
6358db6ad3d0
Xinerama screen size fix by Lev Babiev <harley@hosers.org>
arpi
parents:
1746
diff
changeset
|
184 } |
1732 | 185 // get color depth (from root window, or the best visual): |
32 | 186 XGetWindowAttributes(mDisplay, mRootWin, &attribs); |
1732 | 187 depth=attribs.depth; |
188 | |
189 #ifdef SCAN_VISUALS | |
190 if (depth != 15 && depth != 16 && depth != 24 && depth != 32) { | |
191 Visual *visual; | |
192 | |
193 depth = vo_find_depth_from_visuals(mDisplay, mScreen, &visual); | |
194 if (depth != -1) | |
195 mXImage=XCreateImage(mDisplay, visual, depth, ZPixmap, | |
196 0, NULL, 1, 1, 8, 1); | |
197 } else | |
198 #endif | |
199 mXImage=XGetImage( mDisplay,mRootWin,0,0,1,1,AllPlanes,ZPixmap ); | |
200 | |
201 vo_depthonscreen = depth; // display depth on screen | |
202 | |
203 // get bits/pixel from XImage structure: | |
204 if (mXImage == NULL) { | |
205 mask = 0; | |
206 } else { | |
207 /* | |
208 * for the depth==24 case, the XImage structures might use | |
209 * 24 or 32 bits of data per pixel. The global variable | |
210 * vo_depthonscreen stores the amount of data per pixel in the | |
211 * XImage structure! | |
212 * | |
213 * Maybe we should rename vo_depthonscreen to (or add) vo_bpp? | |
214 */ | |
32 | 215 bpp=mXImage->bits_per_pixel; |
1137
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
216 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
|
217 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
|
218 if(verbose) |
1732 | 219 printf("vo: X11 color mask: %X (R:%lX G:%lX B:%lX)\n", |
220 mask,mXImage->red_mask,mXImage->green_mask,mXImage->blue_mask); | |
4181 | 221 XDestroyImage( mXImage ); |
1732 | 222 } |
223 if(((vo_depthonscreen+7)/8)==2){ | |
224 if(mask==0x7FFF) vo_depthonscreen=15; else | |
225 if(mask==0xFFFF) vo_depthonscreen=16; | |
226 } | |
922
db06ae8967eb
Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents:
741
diff
changeset
|
227 // XCloseDisplay( mDisplay ); |
1447
e82fbd67ae60
better local display connection patch by Adam Tla/lka atlka@pg.gda.pl
arpi
parents:
1415
diff
changeset
|
228 /* 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
|
229 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
|
230 mDisplayName += 4; |
e82fbd67ae60
better local display connection patch by Adam Tla/lka atlka@pg.gda.pl
arpi
parents:
1415
diff
changeset
|
231 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
|
232 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
|
233 if (*mDisplayName==':') mLocalDisplay=1; else mLocalDisplay=0; |
1732 | 234 printf("vo: X11 running at %dx%d with depth %d and %d bits/pixel (\"%s\" => %s display)\n", |
235 vo_screenwidth,vo_screenheight, | |
236 depth, vo_depthonscreen, | |
237 mDisplayName,mLocalDisplay?"local":"remote"); | |
32 | 238 return 1; |
239 } | |
240 | |
4436 | 241 int vo_x11_uninit(Display *display, Window window) |
242 { | |
243 XUnmapWindow(display, window); | |
244 | |
245 /* don't destroy window if -wid specified */ | |
246 if (!(WinID > 0)) | |
247 XDestroyWindow(display, window); | |
248 | |
249 XCloseDisplay(display); | |
250 return(1); | |
251 } | |
252 | |
32 | 253 #include "../linux/keycodes.h" |
254 #include "wskeys.h" | |
255 | |
256 extern void mplayer_put_key(int code); | |
257 | |
258 void vo_x11_putkey(int key){ | |
259 switch ( key ) | |
260 { | |
261 case wsLeft: mplayer_put_key(KEY_LEFT); break; | |
262 case wsRight: mplayer_put_key(KEY_RIGHT); break; | |
263 case wsUp: mplayer_put_key(KEY_UP); break; | |
264 case wsDown: mplayer_put_key(KEY_DOWN); break; | |
265 case wsSpace: mplayer_put_key(' '); break; | |
266 case wsEscape: mplayer_put_key(KEY_ESC); break; | |
267 case wsEnter: mplayer_put_key(KEY_ENTER); break; | |
651 | 268 case wsPageUp: mplayer_put_key(KEY_PAGE_UP); break; |
269 case wsPageDown: mplayer_put_key(KEY_PAGE_DOWN); break; | |
32 | 270 case wsq: |
271 case wsQ: mplayer_put_key('q'); break; | |
272 case wsp: | |
273 case wsP: mplayer_put_key('p'); break; | |
274 case wsMinus: | |
275 case wsGrayMinus: mplayer_put_key('-'); break; | |
276 case wsPlus: | |
277 case wsGrayPlus: mplayer_put_key('+'); break; | |
464 | 278 case wsGrayMul: |
279 case wsMul: mplayer_put_key('*'); break; | |
280 case wsGrayDiv: | |
281 case wsDiv: mplayer_put_key('/'); break; | |
3490 | 282 case wsLess: mplayer_put_key('<'); break; |
283 case wsMore: mplayer_put_key('>'); break; | |
516 | 284 case wsm: |
285 case wsM: mplayer_put_key('m'); break; | |
655 | 286 case wso: |
287 case wsO: mplayer_put_key('o'); break; | |
1501
d40f2b686846
changes according to -utf8 option, draw_osd() function added
atlka
parents:
1456
diff
changeset
|
288 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
|
289 (key>='0' && key<='9')) mplayer_put_key(key); |
32 | 290 } |
369 | 291 |
32 | 292 } |
293 | |
294 | |
295 // ----- Motif header: ------- | |
296 | |
1236 | 297 #define MWM_HINTS_FUNCTIONS (1L << 0) |
298 #define MWM_HINTS_DECORATIONS (1L << 1) | |
299 #define MWM_HINTS_INPUT_MODE (1L << 2) | |
300 #define MWM_HINTS_STATUS (1L << 3) | |
301 | |
302 #define MWM_FUNC_ALL (1L << 0) | |
303 #define MWM_FUNC_RESIZE (1L << 1) | |
304 #define MWM_FUNC_MOVE (1L << 2) | |
305 #define MWM_FUNC_MINIMIZE (1L << 3) | |
306 #define MWM_FUNC_MAXIMIZE (1L << 4) | |
307 #define MWM_FUNC_CLOSE (1L << 5) | |
308 | |
309 #define MWM_DECOR_ALL (1L << 0) | |
310 #define MWM_DECOR_BORDER (1L << 1) | |
311 #define MWM_DECOR_RESIZEH (1L << 2) | |
312 #define MWM_DECOR_TITLE (1L << 3) | |
313 #define MWM_DECOR_MENU (1L << 4) | |
314 #define MWM_DECOR_MINIMIZE (1L << 5) | |
315 #define MWM_DECOR_MAXIMIZE (1L << 6) | |
316 | |
317 #define MWM_INPUT_MODELESS 0 | |
318 #define MWM_INPUT_PRIMARY_APPLICATION_MODAL 1 | |
319 #define MWM_INPUT_SYSTEM_MODAL 2 | |
320 #define MWM_INPUT_FULL_APPLICATION_MODAL 3 | |
321 #define MWM_INPUT_APPLICATION_MODAL MWM_INPUT_PRIMARY_APPLICATION_MODAL | |
322 | |
323 #define MWM_TEAROFF_WINDOW (1L<<0) | |
32 | 324 |
325 typedef struct | |
326 { | |
327 long flags; | |
328 long functions; | |
329 long decorations; | |
330 long input_mode; | |
1236 | 331 long state; |
32 | 332 } MotifWmHints; |
333 | |
334 extern MotifWmHints vo_MotifWmHints; | |
335 extern Atom vo_MotifHints; | |
336 extern int vo_depthonscreen; | |
337 extern int vo_screenwidth; | |
338 extern int vo_screenheight; | |
339 | |
340 static MotifWmHints vo_MotifWmHints; | |
341 static Atom vo_MotifHints = None; | |
342 | |
1266 | 343 // Note: always d==0 ! |
32 | 344 void vo_x11_decoration( Display * vo_Display,Window w,int d ) |
345 { | |
1266 | 346 |
347 if(vo_fsmode&1){ | |
348 XSetWindowAttributes attr; | |
349 attr.override_redirect = True; | |
350 XChangeWindowAttributes(vo_Display, w, CWOverrideRedirect, &attr); | |
351 // XMapWindow(vo_Display], w); | |
352 } | |
353 | |
1415 | 354 if(vo_fsmode&8){ |
355 XSetTransientForHint (vo_Display, w, RootWindow(vo_Display,mScreen)); | |
356 } | |
357 | |
32 | 358 vo_MotifHints=XInternAtom( vo_Display,"_MOTIF_WM_HINTS",0 ); |
359 if ( vo_MotifHints != None ) | |
360 { | |
1236 | 361 memset( &vo_MotifWmHints,0,sizeof( MotifWmHints ) ); |
362 vo_MotifWmHints.flags=MWM_HINTS_FUNCTIONS | MWM_HINTS_DECORATIONS; | |
363 vo_MotifWmHints.functions=MWM_FUNC_MOVE | MWM_FUNC_CLOSE | MWM_FUNC_MINIMIZE | MWM_FUNC_MAXIMIZE; | |
364 if ( d ) d=MWM_DECOR_ALL; | |
1266 | 365 vo_MotifWmHints.decorations=d|((vo_fsmode&2)?0:MWM_DECOR_MENU); |
32 | 366 XChangeProperty( vo_Display,w,vo_MotifHints,vo_MotifHints,32, |
1266 | 367 PropModeReplace,(unsigned char *)&vo_MotifWmHints,(vo_fsmode&4)?4:5 ); |
32 | 368 } |
369 } | |
370 | |
1137
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
371 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
|
372 XClassHint wmClass; |
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
373 wmClass.res_name = name; |
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
374 wmClass.res_class = "MPlayer"; |
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
375 XSetClassHint(display,window,&wmClass); |
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
376 } |
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
377 |
1723
5e4214a7540e
GUI stuff. now seeking works, and xmga renders to video window
arpi
parents:
1501
diff
changeset
|
378 #ifdef HAVE_NEW_GUI |
723 | 379 Window vo_window = None; |
380 GC vo_gc; | |
381 int vo_xeventhandling = 1; | |
382 int vo_resize = 0; | |
383 int vo_expose = 0; | |
384 | |
1723
5e4214a7540e
GUI stuff. now seeking works, and xmga renders to video window
arpi
parents:
1501
diff
changeset
|
385 void vo_setwindow( Window w,GC g ) { |
5e4214a7540e
GUI stuff. now seeking works, and xmga renders to video window
arpi
parents:
1501
diff
changeset
|
386 vo_window=w; vo_gc=g; |
5e4214a7540e
GUI stuff. now seeking works, and xmga renders to video window
arpi
parents:
1501
diff
changeset
|
387 vo_xeventhandling=0; |
5e4214a7540e
GUI stuff. now seeking works, and xmga renders to video window
arpi
parents:
1501
diff
changeset
|
388 } |
1746 | 389 void vo_setwindowsize( int w,int h ) { |
390 vo_dwidth=w; vo_dheight=h; | |
391 } | |
723 | 392 #endif |
393 | |
32 | 394 int vo_x11_check_events(Display *mydisplay){ |
395 int ret=0; | |
396 XEvent Event; | |
397 char buf[100]; | |
398 KeySym keySym; | |
1038
b36fb1ae4b53
applied solaris8/netbsd/other fixes patch by Jrgen Keil <jk@tools.de>
arpi_esp
parents:
922
diff
changeset
|
399 static XComposeStatus stat; |
32 | 400 // unsigned long vo_KeyTable[512]; |
401 | |
1723
5e4214a7540e
GUI stuff. now seeking works, and xmga renders to video window
arpi
parents:
1501
diff
changeset
|
402 #ifdef HAVE_NEW_GUI |
723 | 403 if ( vo_xeventhandling ) |
404 { | |
405 #endif | |
406 while ( XPending( mydisplay ) ) | |
407 { | |
408 XNextEvent( mydisplay,&Event ); | |
409 switch( Event.type ) | |
410 { | |
411 case Expose: | |
412 ret|=VO_EVENT_EXPOSE; | |
413 break; | |
414 case ConfigureNotify: | |
415 vo_dwidth=Event.xconfigure.width; | |
416 vo_dheight=Event.xconfigure.height; | |
417 ret|=VO_EVENT_RESIZE; | |
418 break; | |
419 case KeyPress: | |
420 XLookupString( &Event.xkey,buf,sizeof(buf),&keySym,&stat ); | |
421 vo_x11_putkey( ( (keySym&0xff00) != 0?( (keySym&0x00ff) + 256 ):( keySym ) ) ); | |
422 ret|=VO_EVENT_KEYPRESS; | |
423 break; | |
424 } | |
425 } | |
1723
5e4214a7540e
GUI stuff. now seeking works, and xmga renders to video window
arpi
parents:
1501
diff
changeset
|
426 #ifdef HAVE_NEW_GUI |
32 | 427 } |
723 | 428 else |
429 { | |
430 if ( vo_resize ) | |
431 { | |
432 vo_resize=0; | |
433 ret|=VO_EVENT_RESIZE; | |
434 } | |
435 if ( vo_expose ) | |
436 { | |
437 vo_expose=0; | |
438 ret|=VO_EVENT_EXPOSE; | |
439 } | |
440 } | |
441 #endif | |
32 | 442 |
443 return ret; | |
444 } | |
445 | |
324 | 446 void saver_on(Display *mDisplay) { |
447 | |
1345
be674b95b485
x11_common does not compile, when the XDPMS extension is not available on the
jkeil
parents:
1266
diff
changeset
|
448 #ifdef HAVE_XDPMS |
324 | 449 int nothing; |
450 if (dpms_disabled) | |
451 { | |
458
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
452 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
|
453 { |
741 | 454 if (!DPMSEnable(mDisplay)) { // restoring power saving settings |
455 printf("DPMS not available?\n"); | |
456 } else { | |
457 // DPMS does not seem to be enabled unless we call DPMSInfo | |
458 BOOL onoff; | |
459 CARD16 state; | |
460 DPMSInfo(mDisplay, &state, &onoff); | |
461 if (onoff) { | |
462 printf ("Successfully enabled DPMS\n"); | |
463 } else { | |
464 printf ("Could not enable DPMS\n"); | |
465 } | |
466 } | |
458
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
467 } |
324 | 468 } |
1345
be674b95b485
x11_common does not compile, when the XDPMS extension is not available on the
jkeil
parents:
1266
diff
changeset
|
469 #endif |
be674b95b485
x11_common does not compile, when the XDPMS extension is not available on the
jkeil
parents:
1266
diff
changeset
|
470 |
324 | 471 if (timeout_save) |
472 { | |
458
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
473 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
|
474 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
|
475 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
|
476 XGetScreenSaver(mDisplay, &timeout_save, &interval, &prefer_blank, &allow_exp); |
324 | 477 } |
478 | |
479 } | |
480 | |
481 void saver_off(Display *mDisplay) { | |
482 | |
1345
be674b95b485
x11_common does not compile, when the XDPMS extension is not available on the
jkeil
parents:
1266
diff
changeset
|
483 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
|
484 #ifdef HAVE_XDPMS |
be674b95b485
x11_common does not compile, when the XDPMS extension is not available on the
jkeil
parents:
1266
diff
changeset
|
485 int nothing; |
324 | 486 |
487 if (DPMSQueryExtension(mDisplay, ¬hing, ¬hing)) | |
488 { | |
458
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
489 BOOL onoff; |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
490 CARD16 state; |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
491 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
|
492 if (onoff) |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
493 { |
741 | 494 Status stat; |
458
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
495 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
|
496 dpms_disabled=1; |
741 | 497 stat = DPMSDisable(mDisplay); // monitor powersave off |
498 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
|
499 } |
324 | 500 } |
1345
be674b95b485
x11_common does not compile, when the XDPMS extension is not available on the
jkeil
parents:
1266
diff
changeset
|
501 #endif |
324 | 502 XGetScreenSaver(mDisplay, &timeout_save, &interval, &prefer_blank, &allow_exp); |
503 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
|
504 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
|
505 // turning off screensaver |
326 | 506 } |
448
198b46b739d8
qrva eletbe nem kene cvs-t elbaszni inkabb ne nyuljatok hozza baz+
arpi_esp
parents:
440
diff
changeset
|
507 |
3990 | 508 |
509 | |
510 #ifdef HAVE_XINERAMA | |
511 void vo_x11_xinerama_move(Display *dsp, Window w) | |
512 { | |
513 if(XineramaIsActive(dsp)) | |
514 { | |
4017 | 515 /* printf("XXXX Xinerama screen: x: %hd y: %hd\n",xinerama_x,xinerama_y); */ |
516 XMoveWindow(dsp,w,xinerama_x,xinerama_y); | |
3990 | 517 } |
518 } | |
448
198b46b739d8
qrva eletbe nem kene cvs-t elbaszni inkabb ne nyuljatok hozza baz+
arpi_esp
parents:
440
diff
changeset
|
519 #endif |
3990 | 520 |
4425
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
521 #ifdef HAVE_XF86VM |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
522 void vo_vm_switch(uint32_t X, uint32_t Y, int* modeline_width, int* modeline_height) |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
523 { |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
524 unsigned int vm_event, vm_error; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
525 unsigned int vm_ver, vm_rev; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
526 int i,j,have_vm=0; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
527 |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
528 int modecount; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
529 |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
530 if (XF86VidModeQueryExtension(mDisplay, &vm_event, &vm_error)) { |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
531 XF86VidModeQueryVersion(mDisplay, &vm_ver, &vm_rev); |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
532 printf("XF86VidMode Extension v%i.%i\n", vm_ver, vm_rev); |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
533 have_vm=1; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
534 } else |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
535 printf("XF86VidMode Extenstion not available.\n"); |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
536 |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
537 if (have_vm) { |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
538 if (vidmodes==NULL) |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
539 XF86VidModeGetAllModeLines(mDisplay,mScreen,&modecount,&vidmodes); |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
540 j=0; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
541 *modeline_width=vidmodes[0]->hdisplay; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
542 *modeline_height=vidmodes[0]->vdisplay; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
543 |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
544 for (i=1; i<modecount; i++) |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
545 if ((vidmodes[i]->hdisplay >= X) && (vidmodes[i]->vdisplay >= Y)) |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
546 if ( (vidmodes[i]->hdisplay < *modeline_width ) && (vidmodes[i]->vdisplay < *modeline_height) ) |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
547 { |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
548 *modeline_width=vidmodes[i]->hdisplay; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
549 *modeline_height=vidmodes[i]->vdisplay; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
550 j=i; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
551 } |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
552 |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
553 printf("XF86VM: Selected video mode %dx%d for image size %dx%d.\n",*modeline_width, *modeline_height, X, Y); |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
554 XF86VidModeLockModeSwitch(mDisplay,mScreen,0); |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
555 XF86VidModeSwitchToMode(mDisplay,mScreen,vidmodes[j]); |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
556 XF86VidModeSwitchToMode(mDisplay,mScreen,vidmodes[j]); |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
557 X=(vo_screenwidth-*modeline_width)/2; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
558 Y=(vo_screenheight-*modeline_height)/2; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
559 XF86VidModeSetViewPort(mDisplay,mScreen,X,Y); |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
560 } |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
561 } |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
562 |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
563 void vo_vm_close(Display *dpy) |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
564 { |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
565 #ifdef HAVE_NEW_GUI |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
566 if ((vidmodes!=NULL)&&( vo_window == None ) ) |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
567 #else |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
568 if (vidmodes!=NULL) |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
569 #endif |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
570 { |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
571 int screen; screen=DefaultScreen( dpy ); |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
572 XF86VidModeSwitchToMode(dpy,screen,vidmodes[0]); |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
573 XF86VidModeSwitchToMode(dpy,screen,vidmodes[0]); |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
574 free(vidmodes); |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
575 } |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
576 } |
3990 | 577 #endif |
4425
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
578 |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
579 #endif |