summaryrefslogtreecommitdiffstats
path: root/libvo/vo_xmga.c
diff options
context:
space:
mode:
authorattila <attila@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-06-14 04:53:03 +0000
committerattila <attila@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-06-14 04:53:03 +0000
commit0e4e21aac59563f297b3ece42cec0031fcfd47b1 (patch)
treef985373c16526ebb690273613e94b694b711b6db /libvo/vo_xmga.c
parentb44c3a048ad7e1a7ac0e20316947783aa20ca226 (diff)
downloadmpv-0e4e21aac59563f297b3ece42cec0031fcfd47b1.tar.bz2
mpv-0e4e21aac59563f297b3ece42cec0031fcfd47b1.tar.xz
major reindentation of x11 code try #2
note that this is plain ident output, i didnt tweak it by hand like the last attempt. if anyone is interested in the indent profile i used, just drop me a mail. please contact me on irc on how to send me my share of cola, but be aware that i will only accept swiss or german cola, as the japanese is way to sweet :) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12583 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo/vo_xmga.c')
-rw-r--r--libvo/vo_xmga.c353
1 files changed, 204 insertions, 149 deletions
diff --git a/libvo/vo_xmga.c b/libvo/vo_xmga.c
index 444f227d15..2a9ebe47a4 100644
--- a/libvo/vo_xmga.c
+++ b/libvo/vo_xmga.c
@@ -39,204 +39,259 @@
#ifdef SHOW_TIME
#include "../osdep/timer.h"
-static unsigned int timer=0;
-static unsigned int timerd=0;
+static unsigned int timer = 0;
+static unsigned int timerd = 0;
#endif
#ifdef HAVE_NEW_GUI
#include "../Gui/interface.h"
#endif
-static vo_info_t info =
-{
- "Matrox G200/G4x0/G550 overlay in X11 window (using /dev/mga_vid)",
- "xmga",
- "Zoltan Ponekker <pontscho@makacs.poliod.hu>",
- ""
+static vo_info_t info = {
+ "Matrox G200/G4x0/G550 overlay in X11 window (using /dev/mga_vid)",
+ "xmga",
+ "Zoltan Ponekker <pontscho@makacs.poliod.hu>",
+ ""
};
-LIBVO_EXTERN( xmga )
-
+LIBVO_EXTERN(xmga)
+static XGCValues wGCV;
-static XGCValues wGCV;
-
-static uint32_t mDepth;
-static XWindowAttributes attribs;
+static uint32_t mDepth;
+static XWindowAttributes attribs;
static int colorkey;
-static uint32_t mvHeight;
-static uint32_t mvWidth;
+static uint32_t mvHeight;
+static uint32_t mvWidth;
-static Window mRoot;
+static Window mRoot;
-static XSetWindowAttributes xWAttribs;
+static XSetWindowAttributes xWAttribs;
-static int inited=0;
+static int inited = 0;
#define VO_XMGA
#include "mga_common.c"
#undef VO_XMGA
-static void mDrawColorKey( void )
+static void mDrawColorKey(void)
{
- XSetBackground( mDisplay,vo_gc,0 );
- XClearWindow( mDisplay,vo_window );
- XSetForeground( mDisplay,vo_gc,colorkey );
- XFillRectangle( mDisplay,vo_window,vo_gc,drwX,drwY,drwWidth,(vo_fs?drwHeight - 1:drwHeight) );
- XFlush( mDisplay );
+ XSetBackground(mDisplay, vo_gc, 0);
+ XClearWindow(mDisplay, vo_window);
+ XSetForeground(mDisplay, vo_gc, colorkey);
+ XFillRectangle(mDisplay, vo_window, vo_gc, drwX, drwY, drwWidth,
+ (vo_fs ? drwHeight - 1 : drwHeight));
+ XFlush(mDisplay);
}
static void check_events(void)
{
- int e=vo_x11_check_events(mDisplay);
- if ( !(e&VO_EVENT_RESIZE) && !(e&VO_EVENT_EXPOSE) ) return;
- set_window();
- mDrawColorKey();
- if ( ioctl( f,MGA_VID_CONFIG,&mga_vid_config ) ) mp_msg(MSGT_VO,MSGL_WARN,"Error in mga_vid_config ioctl (wrong mga_vid.o version?)" );
+ int e = vo_x11_check_events(mDisplay);
+
+ if (!(e & VO_EVENT_RESIZE) && !(e & VO_EVENT_EXPOSE))
+ return;
+ set_window();
+ mDrawColorKey();
+ if (ioctl(f, MGA_VID_CONFIG, &mga_vid_config))
+ mp_msg(MSGT_VO, MSGL_WARN,
+ "Error in mga_vid_config ioctl (wrong mga_vid.o version?)");
}
-static void flip_page(void){
+static void flip_page(void)
+{
#ifdef SHOW_TIME
unsigned int t;
- t=GetTimer();
- mp_msg(MSGT_VO,MSGL_STATUS," [timer: %08X diff: %6d dd: %6d ] \n",t,t-timer,(t-timer)-timerd);
- timerd=t-timer;
- timer=t;
+
+ t = GetTimer();
+ mp_msg(MSGT_VO, MSGL_STATUS,
+ " [timer: %08X diff: %6d dd: %6d ] \n", t, t - timer,
+ (t - timer) - timerd);
+ timerd = t - timer;
+ timer = t;
#endif
- vo_mga_flip_page();
+ vo_mga_flip_page();
}
-static uint32_t config( uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t flags, char *title, uint32_t format)
+static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width,
+ uint32_t d_height, uint32_t flags, char *title,
+ uint32_t format)
{
- char * mTitle=(title == NULL) ? "XMGA render" : title;
- XVisualInfo vinfo;
- unsigned long xswamask;
- int r, g, b;
-
- if(mga_init(width,height,format)) return -1; // ioctl errors?
-
- aspect_save_orig(width,height);
- aspect_save_prescale(d_width,d_height);
- aspect_save_screenres(vo_screenwidth,vo_screenheight);
-
- mvWidth=width; mvHeight=height;
-
- vo_panscan_x=vo_panscan_y=vo_panscan_amount=0;
-
- vo_dx=( vo_screenwidth - d_width ) / 2;
- vo_dy=( vo_screenheight - d_height ) / 2;
- geometry(&vo_dx, &vo_dy, &d_width, &d_height, vo_screenwidth, vo_screenheight);
- vo_dwidth=d_width; vo_dheight=d_height;
- vo_mouse_autohide=1;
-
- r = (vo_colorkey & 0x00ff0000) >> 16;
- g = (vo_colorkey & 0x0000ff00) >> 8;
- b = vo_colorkey & 0x000000ff;
- switch ( vo_depthonscreen )
- {
- case 32: colorkey = vo_colorkey; break;
- case 24: colorkey = vo_colorkey & 0x00ffffff; break;
- case 16: colorkey = ((r >> 3) << 11) | ((g >> 2) << 5) | (b >> 3); break;
- case 15: colorkey = ((r >> 3) << 10) | ((g >> 3) << 5) | (b >> 3); break;
- default: mp_msg(MSGT_VO,MSGL_ERR,"Sorry, this (%d) color depth not supported.\n",vo_depthonscreen ); return -1;
- }
- mp_msg(MSGT_VO, MSGL_INFO, "Using colorkey: %x\n", colorkey);
-
- inited=1;
-
- aspect(&d_width,&d_height,A_NOZOOM);
+ char *mTitle = (title == NULL) ? "XMGA render" : title;
+ XVisualInfo vinfo;
+ unsigned long xswamask;
+ int r, g, b;
+
+ if (mga_init(width, height, format))
+ return -1; // ioctl errors?
+
+ aspect_save_orig(width, height);
+ aspect_save_prescale(d_width, d_height);
+ aspect_save_screenres(vo_screenwidth, vo_screenheight);
+
+ mvWidth = width;
+ mvHeight = height;
+
+ vo_panscan_x = vo_panscan_y = vo_panscan_amount = 0;
+
+ vo_dx = (vo_screenwidth - d_width) / 2;
+ vo_dy = (vo_screenheight - d_height) / 2;
+ geometry(&vo_dx, &vo_dy, &d_width, &d_height, vo_screenwidth,
+ vo_screenheight);
+ vo_dwidth = d_width;
+ vo_dheight = d_height;
+ vo_mouse_autohide = 1;
+
+ r = (vo_colorkey & 0x00ff0000) >> 16;
+ g = (vo_colorkey & 0x0000ff00) >> 8;
+ b = vo_colorkey & 0x000000ff;
+ switch (vo_depthonscreen)
+ {
+ case 32:
+ colorkey = vo_colorkey;
+ break;
+ case 24:
+ colorkey = vo_colorkey & 0x00ffffff;
+ break;
+ case 16:
+ colorkey = ((r >> 3) << 11) | ((g >> 2) << 5) | (b >> 3);
+ break;
+ case 15:
+ colorkey = ((r >> 3) << 10) | ((g >> 3) << 5) | (b >> 3);
+ break;
+ default:
+ mp_msg(MSGT_VO, MSGL_ERR,
+ "Sorry, this (%d) color depth not supported.\n",
+ vo_depthonscreen);
+ return -1;
+ }
+ mp_msg(MSGT_VO, MSGL_INFO, "Using colorkey: %x\n", colorkey);
+
+ inited = 1;
+
+ aspect(&d_width, &d_height, A_NOZOOM);
#ifdef HAVE_NEW_GUI
- if(use_gui)
- guiGetEvent( guiSetShVideo,0 ); // the GUI will set up / resize the window
- else
+ if (use_gui)
+ guiGetEvent(guiSetShVideo, 0); // the GUI will set up / resize the window
+ else
#endif
- {
- if ( flags&1 ) aspect(&dwidth,&dheight,A_ZOOM);
-
- XGetWindowAttributes( mDisplay,mRootWin,&attribs );
- mDepth=attribs.depth;
- if ( mDepth != 15 && mDepth != 16 && mDepth != 24 && mDepth != 32 ) mDepth=24;
- XMatchVisualInfo( mDisplay,mScreen,mDepth,TrueColor,&vinfo );
- xWAttribs.colormap=XCreateColormap( mDisplay,mRootWin,vinfo.visual,AllocNone );
- xWAttribs.background_pixel=0;
- xWAttribs.border_pixel=0;
- xWAttribs.event_mask=StructureNotifyMask | ExposureMask | KeyPressMask |
- ((WinID==0)?0:(ButtonPressMask | ButtonReleaseMask | PointerMotionMask | PropertyChangeMask));
- xswamask=CWBackPixel | CWBorderPixel | CWColormap | CWEventMask;
-
- if ( WinID>=0 ){
-
- vo_window = WinID ? ((Window)WinID) : mRootWin;
- if ( WinID )
- {
- XUnmapWindow( mDisplay,vo_window );
- XChangeWindowAttributes( mDisplay,vo_window,xswamask,&xWAttribs);
- vo_x11_selectinput_witherr( mDisplay,vo_window,StructureNotifyMask | KeyPressMask | PropertyChangeMask | PointerMotionMask | ButtonPressMask | ButtonReleaseMask | ExposureMask );
- } else XSelectInput( mDisplay,vo_window,ExposureMask );
-
- } else {
-
- if ( vo_window == None )
- {
- vo_window=XCreateWindow( mDisplay,mRootWin,
- vo_dx,vo_dy,
- vo_dwidth,vo_dheight,
- xWAttribs.border_pixel,
- mDepth,
- InputOutput,
- vinfo.visual,xswamask,&xWAttribs );
-
- vo_x11_classhint( mDisplay,vo_window,"xmga" );
- vo_hidecursor(mDisplay,vo_window);
- vo_x11_sizehint( vo_dx,vo_dy,vo_dwidth,vo_dheight,0 );
-
- XStoreName( mDisplay,vo_window,mTitle );
- XMapWindow( mDisplay,vo_window );
-
- if ( flags&1 ) vo_x11_fullscreen();
+ {
+ if (flags & 1)
+ aspect(&dwidth, &dheight, A_ZOOM);
+
+ XGetWindowAttributes(mDisplay, mRootWin, &attribs);
+ mDepth = attribs.depth;
+ if (mDepth != 15 && mDepth != 16 && mDepth != 24 && mDepth != 32)
+ mDepth = 24;
+ XMatchVisualInfo(mDisplay, mScreen, mDepth, TrueColor, &vinfo);
+ xWAttribs.colormap =
+ XCreateColormap(mDisplay, mRootWin, vinfo.visual, AllocNone);
+ xWAttribs.background_pixel = 0;
+ xWAttribs.border_pixel = 0;
+ xWAttribs.event_mask =
+ StructureNotifyMask | ExposureMask | KeyPressMask |
+ ((WinID ==
+ 0) ? 0 : (ButtonPressMask | ButtonReleaseMask |
+ PointerMotionMask | PropertyChangeMask));
+ xswamask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask;
+
+ if (WinID >= 0)
+ {
+
+ vo_window = WinID ? ((Window) WinID) : mRootWin;
+ if (WinID)
+ {
+ XUnmapWindow(mDisplay, vo_window);
+ XChangeWindowAttributes(mDisplay, vo_window, xswamask,
+ &xWAttribs);
+ vo_x11_selectinput_witherr(mDisplay, vo_window,
+ StructureNotifyMask |
+ KeyPressMask |
+ PropertyChangeMask |
+ PointerMotionMask |
+ ButtonPressMask |
+ ButtonReleaseMask |
+ ExposureMask);
+ } else
+ XSelectInput(mDisplay, vo_window, ExposureMask);
+
+ } else
+ {
+
+ if (vo_window == None)
+ {
+ vo_window = XCreateWindow(mDisplay, mRootWin,
+ vo_dx, vo_dy,
+ vo_dwidth, vo_dheight,
+ xWAttribs.border_pixel,
+ mDepth,
+ InputOutput,
+ vinfo.visual, xswamask,
+ &xWAttribs);
+
+ vo_x11_classhint(mDisplay, vo_window, "xmga");
+ vo_hidecursor(mDisplay, vo_window);
+ vo_x11_sizehint(vo_dx, vo_dy, vo_dwidth, vo_dheight, 0);
+
+ XStoreName(mDisplay, vo_window, mTitle);
+ XMapWindow(mDisplay, vo_window);
+
+ if (flags & 1)
+ vo_x11_fullscreen();
#ifdef HAVE_XINERAMA
- vo_x11_xinerama_move(mDisplay,vo_window);
+ vo_x11_xinerama_move(mDisplay, vo_window);
#endif
- } else if ( !(flags&1) ) XMoveResizeWindow( mDisplay,vo_window,vo_dx,vo_dy,vo_dwidth,vo_dheight );
- }
+ } else if (!(flags & 1))
+ XMoveResizeWindow(mDisplay, vo_window, vo_dx, vo_dy,
+ vo_dwidth, vo_dheight);
+ }
- if ( vo_gc != None ) XFreeGC( mDisplay,vo_gc );
- vo_gc=XCreateGC( mDisplay,vo_window,GCForeground,&wGCV );
+ if (vo_gc != None)
+ XFreeGC(mDisplay, vo_gc);
+ vo_gc = XCreateGC(mDisplay, vo_window, GCForeground, &wGCV);
- } // !GUI
+ } // !GUI
- if ( ( flags&1 )&&( !WinID ) ) { vo_dx=0; vo_dy=0; vo_dwidth=vo_screenwidth; vo_dheight=vo_screenheight; vo_fs=1; }
+ if ((flags & 1) && (!WinID))
+ {
+ vo_dx = 0;
+ vo_dy = 0;
+ vo_dwidth = vo_screenwidth;
+ vo_dheight = vo_screenheight;
+ vo_fs = 1;
+ }
- panscan_calc();
+ panscan_calc();
- mga_vid_config.colkey_on=1;
- mga_vid_config.colkey_red=r;
- mga_vid_config.colkey_green=g;
- mga_vid_config.colkey_blue=b;
+ mga_vid_config.colkey_on = 1;
+ mga_vid_config.colkey_red = r;
+ mga_vid_config.colkey_green = g;
+ mga_vid_config.colkey_blue = b;
- set_window(); // set up mga_vid_config.dest_width etc
+ set_window(); // set up mga_vid_config.dest_width etc
- saver_off(mDisplay);
+ saver_off(mDisplay);
- if (vo_ontop) vo_x11_setlayer(mDisplay, vo_window, vo_ontop);
+ if (vo_ontop)
+ vo_x11_setlayer(mDisplay, vo_window, vo_ontop);
- XFlush( mDisplay );
- XSync( mDisplay,False );
-
- ioctl(f,MGA_VID_ON,0);
+ XFlush(mDisplay);
+ XSync(mDisplay, False);
- return 0;
-}
+ ioctl(f, MGA_VID_ON, 0);
-static void uninit(void){
- mp_msg(MSGT_VO,MSGL_V,"vo: uninit!\n");
- mga_uninit();
- if(!inited) return; // no window?
- inited=0;
- saver_on(mDisplay);
- vo_x11_uninit(); // destroy the window
+ return 0;
}
+static void uninit(void)
+{
+ mp_msg(MSGT_VO, MSGL_V, "vo: uninit!\n");
+ mga_uninit();
+ if (!inited)
+ return; // no window?
+ inited = 0;
+ saver_on(mDisplay);
+ vo_x11_uninit(); // destroy the window
+}