Mercurial > mplayer.hg
annotate libvo/x11_common.c @ 4603:06944da0b4f7
Fixed some stuff with setting timestamps, and added proper setting of playback speed. I'm
guessing I'm looking at lots of sleepless nights ahead =(
author | mswitch |
---|---|
date | Sat, 09 Feb 2002 11:10:31 +0000 |
parents | e01ee848935f |
children | 93d562ad1c22 |
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 |
32 | 242 #include "../linux/keycodes.h" |
243 #include "wskeys.h" | |
244 | |
245 extern void mplayer_put_key(int code); | |
246 | |
247 void vo_x11_putkey(int key){ | |
248 switch ( key ) | |
249 { | |
250 case wsLeft: mplayer_put_key(KEY_LEFT); break; | |
251 case wsRight: mplayer_put_key(KEY_RIGHT); break; | |
252 case wsUp: mplayer_put_key(KEY_UP); break; | |
253 case wsDown: mplayer_put_key(KEY_DOWN); break; | |
254 case wsSpace: mplayer_put_key(' '); break; | |
255 case wsEscape: mplayer_put_key(KEY_ESC); break; | |
256 case wsEnter: mplayer_put_key(KEY_ENTER); break; | |
651 | 257 case wsPageUp: mplayer_put_key(KEY_PAGE_UP); break; |
258 case wsPageDown: mplayer_put_key(KEY_PAGE_DOWN); break; | |
32 | 259 case wsq: |
260 case wsQ: mplayer_put_key('q'); break; | |
261 case wsp: | |
262 case wsP: mplayer_put_key('p'); break; | |
263 case wsMinus: | |
264 case wsGrayMinus: mplayer_put_key('-'); break; | |
265 case wsPlus: | |
266 case wsGrayPlus: mplayer_put_key('+'); break; | |
464 | 267 case wsGrayMul: |
268 case wsMul: mplayer_put_key('*'); break; | |
269 case wsGrayDiv: | |
270 case wsDiv: mplayer_put_key('/'); break; | |
3490 | 271 case wsLess: mplayer_put_key('<'); break; |
272 case wsMore: mplayer_put_key('>'); break; | |
516 | 273 case wsm: |
274 case wsM: mplayer_put_key('m'); break; | |
655 | 275 case wso: |
276 case wsO: mplayer_put_key('o'); break; | |
1501
d40f2b686846
changes according to -utf8 option, draw_osd() function added
atlka
parents:
1456
diff
changeset
|
277 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
|
278 (key>='0' && key<='9')) mplayer_put_key(key); |
32 | 279 } |
369 | 280 |
32 | 281 } |
282 | |
283 | |
284 // ----- Motif header: ------- | |
285 | |
1236 | 286 #define MWM_HINTS_FUNCTIONS (1L << 0) |
287 #define MWM_HINTS_DECORATIONS (1L << 1) | |
288 #define MWM_HINTS_INPUT_MODE (1L << 2) | |
289 #define MWM_HINTS_STATUS (1L << 3) | |
290 | |
291 #define MWM_FUNC_ALL (1L << 0) | |
292 #define MWM_FUNC_RESIZE (1L << 1) | |
293 #define MWM_FUNC_MOVE (1L << 2) | |
294 #define MWM_FUNC_MINIMIZE (1L << 3) | |
295 #define MWM_FUNC_MAXIMIZE (1L << 4) | |
296 #define MWM_FUNC_CLOSE (1L << 5) | |
297 | |
298 #define MWM_DECOR_ALL (1L << 0) | |
299 #define MWM_DECOR_BORDER (1L << 1) | |
300 #define MWM_DECOR_RESIZEH (1L << 2) | |
301 #define MWM_DECOR_TITLE (1L << 3) | |
302 #define MWM_DECOR_MENU (1L << 4) | |
303 #define MWM_DECOR_MINIMIZE (1L << 5) | |
304 #define MWM_DECOR_MAXIMIZE (1L << 6) | |
305 | |
306 #define MWM_INPUT_MODELESS 0 | |
307 #define MWM_INPUT_PRIMARY_APPLICATION_MODAL 1 | |
308 #define MWM_INPUT_SYSTEM_MODAL 2 | |
309 #define MWM_INPUT_FULL_APPLICATION_MODAL 3 | |
310 #define MWM_INPUT_APPLICATION_MODAL MWM_INPUT_PRIMARY_APPLICATION_MODAL | |
311 | |
312 #define MWM_TEAROFF_WINDOW (1L<<0) | |
32 | 313 |
314 typedef struct | |
315 { | |
316 long flags; | |
317 long functions; | |
318 long decorations; | |
319 long input_mode; | |
1236 | 320 long state; |
32 | 321 } MotifWmHints; |
322 | |
323 extern MotifWmHints vo_MotifWmHints; | |
324 extern Atom vo_MotifHints; | |
325 extern int vo_depthonscreen; | |
326 extern int vo_screenwidth; | |
327 extern int vo_screenheight; | |
328 | |
329 static MotifWmHints vo_MotifWmHints; | |
330 static Atom vo_MotifHints = None; | |
331 | |
1266 | 332 // Note: always d==0 ! |
32 | 333 void vo_x11_decoration( Display * vo_Display,Window w,int d ) |
334 { | |
1266 | 335 |
336 if(vo_fsmode&1){ | |
337 XSetWindowAttributes attr; | |
338 attr.override_redirect = True; | |
339 XChangeWindowAttributes(vo_Display, w, CWOverrideRedirect, &attr); | |
4437 | 340 // XMapWindow(vo_Display, w); |
1266 | 341 } |
342 | |
1415 | 343 if(vo_fsmode&8){ |
344 XSetTransientForHint (vo_Display, w, RootWindow(vo_Display,mScreen)); | |
345 } | |
346 | |
32 | 347 vo_MotifHints=XInternAtom( vo_Display,"_MOTIF_WM_HINTS",0 ); |
348 if ( vo_MotifHints != None ) | |
349 { | |
1236 | 350 memset( &vo_MotifWmHints,0,sizeof( MotifWmHints ) ); |
351 vo_MotifWmHints.flags=MWM_HINTS_FUNCTIONS | MWM_HINTS_DECORATIONS; | |
352 vo_MotifWmHints.functions=MWM_FUNC_MOVE | MWM_FUNC_CLOSE | MWM_FUNC_MINIMIZE | MWM_FUNC_MAXIMIZE; | |
353 if ( d ) d=MWM_DECOR_ALL; | |
1266 | 354 vo_MotifWmHints.decorations=d|((vo_fsmode&2)?0:MWM_DECOR_MENU); |
32 | 355 XChangeProperty( vo_Display,w,vo_MotifHints,vo_MotifHints,32, |
1266 | 356 PropModeReplace,(unsigned char *)&vo_MotifWmHints,(vo_fsmode&4)?4:5 ); |
32 | 357 } |
358 } | |
359 | |
1137
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
360 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
|
361 XClassHint wmClass; |
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
362 wmClass.res_name = name; |
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
363 wmClass.res_class = "MPlayer"; |
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
364 XSetClassHint(display,window,&wmClass); |
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
365 } |
4c7b219e126c
patch: some X11 compliance fixed: set ClassHint and better fullscreen mode
arpi_esp
parents:
1109
diff
changeset
|
366 |
1723
5e4214a7540e
GUI stuff. now seeking works, and xmga renders to video window
arpi
parents:
1501
diff
changeset
|
367 #ifdef HAVE_NEW_GUI |
723 | 368 Window vo_window = None; |
369 GC vo_gc; | |
370 int vo_xeventhandling = 1; | |
371 int vo_resize = 0; | |
372 int vo_expose = 0; | |
373 | |
1723
5e4214a7540e
GUI stuff. now seeking works, and xmga renders to video window
arpi
parents:
1501
diff
changeset
|
374 void vo_setwindow( Window w,GC g ) { |
5e4214a7540e
GUI stuff. now seeking works, and xmga renders to video window
arpi
parents:
1501
diff
changeset
|
375 vo_window=w; vo_gc=g; |
5e4214a7540e
GUI stuff. now seeking works, and xmga renders to video window
arpi
parents:
1501
diff
changeset
|
376 vo_xeventhandling=0; |
5e4214a7540e
GUI stuff. now seeking works, and xmga renders to video window
arpi
parents:
1501
diff
changeset
|
377 } |
1746 | 378 void vo_setwindowsize( int w,int h ) { |
379 vo_dwidth=w; vo_dheight=h; | |
380 } | |
723 | 381 #endif |
382 | |
4437 | 383 int vo_x11_uninit(Display *display, Window window) |
384 { | |
385 #ifdef HAVE_NEW_GUI | |
386 /* destroy window only if it's not controlled by GUI */ | |
387 if (vo_window == None) | |
388 #endif | |
389 { | |
390 /* and -wid is set */ | |
391 if (!(WinID > 0)) | |
392 XDestroyWindow(display, window); | |
4438
e01ee848935f
grr, 10l. vo_x11_uninit: close display only if window not created by GUI
alex
parents:
4437
diff
changeset
|
393 XCloseDisplay(display); |
4437 | 394 } |
395 return(1); | |
396 } | |
397 | |
32 | 398 int vo_x11_check_events(Display *mydisplay){ |
399 int ret=0; | |
400 XEvent Event; | |
401 char buf[100]; | |
402 KeySym keySym; | |
1038
b36fb1ae4b53
applied solaris8/netbsd/other fixes patch by Jrgen Keil <jk@tools.de>
arpi_esp
parents:
922
diff
changeset
|
403 static XComposeStatus stat; |
32 | 404 // unsigned long vo_KeyTable[512]; |
405 | |
1723
5e4214a7540e
GUI stuff. now seeking works, and xmga renders to video window
arpi
parents:
1501
diff
changeset
|
406 #ifdef HAVE_NEW_GUI |
723 | 407 if ( vo_xeventhandling ) |
408 { | |
409 #endif | |
410 while ( XPending( mydisplay ) ) | |
411 { | |
412 XNextEvent( mydisplay,&Event ); | |
413 switch( Event.type ) | |
414 { | |
415 case Expose: | |
416 ret|=VO_EVENT_EXPOSE; | |
417 break; | |
418 case ConfigureNotify: | |
419 vo_dwidth=Event.xconfigure.width; | |
420 vo_dheight=Event.xconfigure.height; | |
421 ret|=VO_EVENT_RESIZE; | |
422 break; | |
423 case KeyPress: | |
424 XLookupString( &Event.xkey,buf,sizeof(buf),&keySym,&stat ); | |
425 vo_x11_putkey( ( (keySym&0xff00) != 0?( (keySym&0x00ff) + 256 ):( keySym ) ) ); | |
426 ret|=VO_EVENT_KEYPRESS; | |
427 break; | |
428 } | |
429 } | |
1723
5e4214a7540e
GUI stuff. now seeking works, and xmga renders to video window
arpi
parents:
1501
diff
changeset
|
430 #ifdef HAVE_NEW_GUI |
32 | 431 } |
723 | 432 else |
433 { | |
434 if ( vo_resize ) | |
435 { | |
436 vo_resize=0; | |
437 ret|=VO_EVENT_RESIZE; | |
438 } | |
439 if ( vo_expose ) | |
440 { | |
441 vo_expose=0; | |
442 ret|=VO_EVENT_EXPOSE; | |
443 } | |
444 } | |
445 #endif | |
32 | 446 |
447 return ret; | |
448 } | |
449 | |
324 | 450 void saver_on(Display *mDisplay) { |
451 | |
1345
be674b95b485
x11_common does not compile, when the XDPMS extension is not available on the
jkeil
parents:
1266
diff
changeset
|
452 #ifdef HAVE_XDPMS |
324 | 453 int nothing; |
454 if (dpms_disabled) | |
455 { | |
458
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
456 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
|
457 { |
741 | 458 if (!DPMSEnable(mDisplay)) { // restoring power saving settings |
459 printf("DPMS not available?\n"); | |
460 } else { | |
461 // DPMS does not seem to be enabled unless we call DPMSInfo | |
462 BOOL onoff; | |
463 CARD16 state; | |
464 DPMSInfo(mDisplay, &state, &onoff); | |
465 if (onoff) { | |
466 printf ("Successfully enabled DPMS\n"); | |
467 } else { | |
468 printf ("Could not enable DPMS\n"); | |
469 } | |
470 } | |
458
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
471 } |
324 | 472 } |
1345
be674b95b485
x11_common does not compile, when the XDPMS extension is not available on the
jkeil
parents:
1266
diff
changeset
|
473 #endif |
be674b95b485
x11_common does not compile, when the XDPMS extension is not available on the
jkeil
parents:
1266
diff
changeset
|
474 |
324 | 475 if (timeout_save) |
476 { | |
458
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
477 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
|
478 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
|
479 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
|
480 XGetScreenSaver(mDisplay, &timeout_save, &interval, &prefer_blank, &allow_exp); |
324 | 481 } |
482 | |
483 } | |
484 | |
485 void saver_off(Display *mDisplay) { | |
486 | |
1345
be674b95b485
x11_common does not compile, when the XDPMS extension is not available on the
jkeil
parents:
1266
diff
changeset
|
487 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
|
488 #ifdef HAVE_XDPMS |
be674b95b485
x11_common does not compile, when the XDPMS extension is not available on the
jkeil
parents:
1266
diff
changeset
|
489 int nothing; |
324 | 490 |
491 if (DPMSQueryExtension(mDisplay, ¬hing, ¬hing)) | |
492 { | |
458
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
493 BOOL onoff; |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
494 CARD16 state; |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
495 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
|
496 if (onoff) |
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
497 { |
741 | 498 Status stat; |
458
49b0474b2e26
I really hope that you will learn how to use cvs, sooner or later...
arpi_esp
parents:
456
diff
changeset
|
499 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
|
500 dpms_disabled=1; |
741 | 501 stat = DPMSDisable(mDisplay); // monitor powersave off |
502 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
|
503 } |
324 | 504 } |
1345
be674b95b485
x11_common does not compile, when the XDPMS extension is not available on the
jkeil
parents:
1266
diff
changeset
|
505 #endif |
324 | 506 XGetScreenSaver(mDisplay, &timeout_save, &interval, &prefer_blank, &allow_exp); |
507 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
|
508 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
|
509 // turning off screensaver |
326 | 510 } |
448
198b46b739d8
qrva eletbe nem kene cvs-t elbaszni inkabb ne nyuljatok hozza baz+
arpi_esp
parents:
440
diff
changeset
|
511 |
3990 | 512 |
513 | |
514 #ifdef HAVE_XINERAMA | |
515 void vo_x11_xinerama_move(Display *dsp, Window w) | |
516 { | |
517 if(XineramaIsActive(dsp)) | |
518 { | |
4017 | 519 /* printf("XXXX Xinerama screen: x: %hd y: %hd\n",xinerama_x,xinerama_y); */ |
520 XMoveWindow(dsp,w,xinerama_x,xinerama_y); | |
3990 | 521 } |
522 } | |
448
198b46b739d8
qrva eletbe nem kene cvs-t elbaszni inkabb ne nyuljatok hozza baz+
arpi_esp
parents:
440
diff
changeset
|
523 #endif |
3990 | 524 |
4425
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
525 #ifdef HAVE_XF86VM |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
526 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
|
527 { |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
528 unsigned int vm_event, vm_error; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
529 unsigned int vm_ver, vm_rev; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
530 int i,j,have_vm=0; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
531 |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
532 int modecount; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
533 |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
534 if (XF86VidModeQueryExtension(mDisplay, &vm_event, &vm_error)) { |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
535 XF86VidModeQueryVersion(mDisplay, &vm_ver, &vm_rev); |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
536 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
|
537 have_vm=1; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
538 } else |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
539 printf("XF86VidMode Extenstion not available.\n"); |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
540 |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
541 if (have_vm) { |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
542 if (vidmodes==NULL) |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
543 XF86VidModeGetAllModeLines(mDisplay,mScreen,&modecount,&vidmodes); |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
544 j=0; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
545 *modeline_width=vidmodes[0]->hdisplay; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
546 *modeline_height=vidmodes[0]->vdisplay; |
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 for (i=1; i<modecount; i++) |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
549 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
|
550 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
|
551 { |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
552 *modeline_width=vidmodes[i]->hdisplay; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
553 *modeline_height=vidmodes[i]->vdisplay; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
554 j=i; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
555 } |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
556 |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
557 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
|
558 XF86VidModeLockModeSwitch(mDisplay,mScreen,0); |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
559 XF86VidModeSwitchToMode(mDisplay,mScreen,vidmodes[j]); |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
560 XF86VidModeSwitchToMode(mDisplay,mScreen,vidmodes[j]); |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
561 X=(vo_screenwidth-*modeline_width)/2; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
562 Y=(vo_screenheight-*modeline_height)/2; |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
563 XF86VidModeSetViewPort(mDisplay,mScreen,X,Y); |
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 } |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
566 |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
567 void vo_vm_close(Display *dpy) |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
568 { |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
569 #ifdef HAVE_NEW_GUI |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
570 if ((vidmodes!=NULL)&&( vo_window == None ) ) |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
571 #else |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
572 if (vidmodes!=NULL) |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
573 #endif |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
574 { |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
575 int screen; screen=DefaultScreen( dpy ); |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
576 XF86VidModeSwitchToMode(dpy,screen,vidmodes[0]); |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
577 XF86VidModeSwitchToMode(dpy,screen,vidmodes[0]); |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
578 free(vidmodes); |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
579 } |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
580 } |
3990 | 581 #endif |
4425
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
582 |
6144f63cbaa1
common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents:
4181
diff
changeset
|
583 #endif |