summaryrefslogtreecommitdiffstats
path: root/libvo/x11_common.c
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-11-15 18:56:25 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-11-15 18:56:25 +0000
commit4b9ee2e2063f8d0a56288cb9d1aa8b35e640600b (patch)
treeb871040755c18ef882d0f8d0fcc46bcec7e31ba1 /libvo/x11_common.c
parentc8d9e2eb60e942009c35270b97045e84e74dd5d5 (diff)
downloadmpv-4b9ee2e2063f8d0a56288cb9d1aa8b35e640600b.tar.bz2
mpv-4b9ee2e2063f8d0a56288cb9d1aa8b35e640600b.tar.xz
Simplify vo_vm_switch and vo_vm_close, everyone was using the (almost) same
boiler-plate code with them, just with different bugs. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27924 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo/x11_common.c')
-rw-r--r--libvo/x11_common.c40
1 files changed, 18 insertions, 22 deletions
diff --git a/libvo/x11_common.c b/libvo/x11_common.c
index f03a062d73..cdbffad7a2 100644
--- a/libvo/x11_common.c
+++ b/libvo/x11_common.c
@@ -1743,12 +1743,13 @@ void vo_x11_selectinput_witherr(Display * display, Window w,
}
#ifdef CONFIG_XF86VM
-void vo_vm_switch(uint32_t X, uint32_t Y, int *modeline_width,
- int *modeline_height)
+void vo_vm_switch(void)
{
int vm_event, vm_error;
int vm_ver, vm_rev;
int i, j, have_vm = 0;
+ int X = vo_dwidth, Y = vo_dheight;
+ int modeline_width, modeline_height;
int modecount;
@@ -1761,8 +1762,6 @@ void vo_vm_switch(uint32_t X, uint32_t Y, int *modeline_width,
} else {
mp_msg(MSGT_VO, MSGL_WARN,
"XF86VidMode extension not available.\n");
- *modeline_width = vo_screenwidth;
- *modeline_height = vo_screenheight;
}
if (have_vm)
@@ -1771,39 +1770,39 @@ void vo_vm_switch(uint32_t X, uint32_t Y, int *modeline_width,
XF86VidModeGetAllModeLines(mDisplay, mScreen, &modecount,
&vidmodes);
j = 0;
- *modeline_width = vidmodes[0]->hdisplay;
- *modeline_height = vidmodes[0]->vdisplay;
+ modeline_width = vidmodes[0]->hdisplay;
+ modeline_height = vidmodes[0]->vdisplay;
for (i = 1; i < modecount; i++)
if ((vidmodes[i]->hdisplay >= X)
&& (vidmodes[i]->vdisplay >= Y))
- if ((vidmodes[i]->hdisplay <= *modeline_width)
- && (vidmodes[i]->vdisplay <= *modeline_height))
+ if ((vidmodes[i]->hdisplay <= modeline_width)
+ && (vidmodes[i]->vdisplay <= modeline_height))
{
- *modeline_width = vidmodes[i]->hdisplay;
- *modeline_height = vidmodes[i]->vdisplay;
+ modeline_width = vidmodes[i]->hdisplay;
+ modeline_height = vidmodes[i]->vdisplay;
j = i;
}
mp_msg(MSGT_VO, MSGL_INFO, MSGTR_SelectedVideoMode,
- *modeline_width, *modeline_height, X, Y);
+ modeline_width, modeline_height, X, Y);
XF86VidModeLockModeSwitch(mDisplay, mScreen, 0);
XF86VidModeSwitchToMode(mDisplay, mScreen, vidmodes[j]);
XF86VidModeSwitchToMode(mDisplay, mScreen, vidmodes[j]);
// FIXME: all this is more of a hack than proper solution
- X = (vo_screenwidth - *modeline_width) / 2;
- Y = (vo_screenheight - *modeline_height) / 2;
+ X = (vo_screenwidth - modeline_width) / 2;
+ Y = (vo_screenheight - modeline_height) / 2;
XF86VidModeSetViewPort(mDisplay, mScreen, X, Y);
vo_dx = X;
vo_dy = Y;
- vo_dwidth = *modeline_width;
- vo_dheight = *modeline_height;
- aspect_save_screenres(*modeline_width, *modeline_height);
+ vo_dwidth = modeline_width;
+ vo_dheight = modeline_height;
+ aspect_save_screenres(modeline_width, modeline_height);
}
}
-void vo_vm_close(Display * dpy)
+void vo_vm_close(void)
{
#ifdef CONFIG_GUI
if (vidmodes != NULL && vo_window != None)
@@ -1812,9 +1811,6 @@ void vo_vm_close(Display * dpy)
#endif
{
int i, modecount;
- int screen;
-
- screen = DefaultScreen(dpy);
free(vidmodes);
vidmodes = NULL;
@@ -1830,8 +1826,8 @@ void vo_vm_close(Display * dpy)
break;
}
- XF86VidModeSwitchToMode(dpy, screen, vidmodes[i]);
- XF86VidModeSwitchToMode(dpy, screen, vidmodes[i]);
+ XF86VidModeSwitchToMode(mDisplay, mScreen, vidmodes[i]);
+ XF86VidModeSwitchToMode(mDisplay, mScreen, vidmodes[i]);
free(vidmodes);
vidmodes = NULL;
}