mirror of
https://github.com/mpv-player/mpv
synced 2024-12-18 12:55:16 +00:00
small changes
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4796 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
d424101631
commit
57e3534b04
@ -68,8 +68,6 @@ static vo_info_t vo_info =
|
||||
};
|
||||
|
||||
//static Display * mDisplay;
|
||||
static Window mWindow;
|
||||
static GC mGC;
|
||||
static XGCValues wGCV;
|
||||
|
||||
static XImage * myximage;
|
||||
@ -102,11 +100,10 @@ static XSetWindowAttributes xWAttribs;
|
||||
|
||||
static void mDrawColorKey( void )
|
||||
{
|
||||
XSetBackground( mDisplay,mGC,0 );
|
||||
// XFillRectangle( mDisplay,mWindow,mGC,0,0,drwWidth,drwHeight );
|
||||
XClearWindow( mDisplay,mWindow );
|
||||
XSetForeground( mDisplay,mGC,fgColor );
|
||||
XFillRectangle( mDisplay,mWindow,mGC,drwX,drwY,drwWidth,(mFullscreen?drwHeight - 1:drwHeight) );
|
||||
XSetBackground( mDisplay,vo_gc,0 );
|
||||
XClearWindow( mDisplay,vo_window );
|
||||
XSetForeground( mDisplay,vo_gc,fgColor );
|
||||
XFillRectangle( mDisplay,vo_window,vo_gc,drwX,drwY,drwWidth,(mFullscreen?drwHeight - 1:drwHeight) );
|
||||
XFlush( mDisplay );
|
||||
}
|
||||
|
||||
@ -126,9 +123,9 @@ static void set_window(){
|
||||
}
|
||||
#endif
|
||||
|
||||
XGetGeometry( mDisplay,mWindow,&mRoot,&drwX,&drwY,&drwWidth,&drwHeight,&drwBorderWidth,&drwDepth );
|
||||
XGetGeometry( mDisplay,vo_window,&mRoot,&drwX,&drwY,&drwWidth,&drwHeight,&drwBorderWidth,&drwDepth );
|
||||
drwX=0; drwY=0; // drwWidth=wndWidth; drwHeight=wndHeight;
|
||||
XTranslateCoordinates( mDisplay,mWindow,mRoot,0,0,&drwcX,&drwcY,&mRoot );
|
||||
XTranslateCoordinates( mDisplay,vo_window,mRoot,0,0,&drwcX,&drwcY,&mRoot );
|
||||
fprintf( stderr,"[xmga] dcx: %d dcy: %d dx: %d dy: %d dw: %d dh: %d\n",drwcX,drwcY,drwX,drwY,drwWidth,drwHeight );
|
||||
|
||||
aspect(&dwidth,&dheight,A_NOZOOM);
|
||||
@ -265,10 +262,6 @@ static uint32_t config( uint32_t width, uint32_t height, uint32_t d_width, uint3
|
||||
|
||||
wndX=0; wndY=0;
|
||||
wndWidth=d_width; wndHeight=d_height;
|
||||
#ifdef HAVE_NEW_GUI
|
||||
// mdwidth=d_width; mdheight=d_height;
|
||||
mdwidth=width; mdheight=height;
|
||||
#endif
|
||||
mFullscreen=fullscreen&1;
|
||||
|
||||
switch ( vo_depthonscreen )
|
||||
@ -282,6 +275,7 @@ static uint32_t config( uint32_t width, uint32_t height, uint32_t d_width, uint3
|
||||
|
||||
aspect(&d_width,&d_height,A_NOZOOM);
|
||||
#ifdef HAVE_NEW_GUI
|
||||
mdwidth=width; mdheight=height;
|
||||
if ( vo_window == None )
|
||||
{
|
||||
#endif
|
||||
@ -306,49 +300,37 @@ static uint32_t config( uint32_t width, uint32_t height, uint32_t d_width, uint3
|
||||
xswamask=CWBackPixel | CWBorderPixel | CWColormap | CWEventMask;
|
||||
|
||||
if ( WinID>=0 ){
|
||||
mWindow = WinID ? ((Window)WinID) : RootWindow(mDisplay,mScreen);
|
||||
XUnmapWindow( mDisplay,mWindow );
|
||||
XChangeWindowAttributes( mDisplay,mWindow,xswamask,&xWAttribs);
|
||||
vo_window = WinID ? ((Window)WinID) : RootWindow(mDisplay,mScreen);
|
||||
XUnmapWindow( mDisplay,vo_window );
|
||||
XChangeWindowAttributes( mDisplay,vo_window,xswamask,&xWAttribs);
|
||||
} else
|
||||
mWindow=XCreateWindow( mDisplay,RootWindow( mDisplay,mScreen ),
|
||||
vo_window=XCreateWindow( mDisplay,RootWindow( mDisplay,mScreen ),
|
||||
wndX,wndY,
|
||||
wndWidth,wndHeight,
|
||||
xWAttribs.border_pixel,
|
||||
mDepth,
|
||||
InputOutput,
|
||||
vinfo.visual,xswamask,&xWAttribs );
|
||||
vo_x11_classhint( mDisplay,mWindow,"xmga" );
|
||||
vo_hidecursor(mDisplay,mWindow);
|
||||
vo_x11_classhint( mDisplay,vo_window,"xmga" );
|
||||
vo_hidecursor(mDisplay,vo_window);
|
||||
|
||||
if ( mFullscreen ) vo_x11_decoration( mDisplay,mWindow,0 );
|
||||
if ( mFullscreen ) vo_x11_decoration( mDisplay,vo_window,0 );
|
||||
|
||||
XGetNormalHints( mDisplay,mWindow,&hint );
|
||||
XGetNormalHints( mDisplay,vo_window,&hint );
|
||||
hint.x=wndX; hint.y=wndY;
|
||||
hint.width=wndWidth; hint.height=wndHeight;
|
||||
hint.base_width=wndWidth; hint.base_height=wndHeight;
|
||||
hint.flags=USPosition | USSize;
|
||||
XSetNormalHints( mDisplay,mWindow,&hint );
|
||||
XStoreName( mDisplay,mWindow,mTitle );
|
||||
XMapWindow( mDisplay,mWindow );
|
||||
XSetNormalHints( mDisplay,vo_window,&hint );
|
||||
XStoreName( mDisplay,vo_window,mTitle );
|
||||
XMapWindow( mDisplay,vo_window );
|
||||
|
||||
#ifdef HAVE_XINERAMA
|
||||
vo_x11_xinerama_move(mDisplay,mWindow);
|
||||
vo_x11_xinerama_move(mDisplay,vo_window);
|
||||
#endif
|
||||
mGC=XCreateGC( mDisplay,mWindow,GCForeground,&wGCV );
|
||||
vo_gc=XCreateGC( mDisplay,vo_window,GCForeground,&wGCV );
|
||||
#ifdef HAVE_NEW_GUI
|
||||
}
|
||||
else
|
||||
{
|
||||
mWindow=vo_window;
|
||||
// fprintf( stderr,"[xmga] width: %d height: %d d_width: %d d_height: %d\n",width,height,d_width,d_height );
|
||||
// if ( vo_screenwidth != d_width )
|
||||
// {
|
||||
// XMoveWindow( mDisplay,mWindow,( vo_screenwidth - d_width ) / 2,( vo_screenheight - d_height ) / 2 );
|
||||
// XResizeWindow( mDisplay,mWindow,d_width,d_height );
|
||||
// }
|
||||
// else mFullscreen=1;
|
||||
mGC=vo_gc; //XCreateGC( mDisplay,mWindow,GCForeground,&wGCV );
|
||||
}
|
||||
#endif
|
||||
|
||||
set_window();
|
||||
@ -365,13 +347,8 @@ static uint32_t config( uint32_t width, uint32_t height, uint32_t d_width, uint3
|
||||
|
||||
set_window();
|
||||
|
||||
#ifdef HAVE_NEW_GUI
|
||||
if ( vo_window == None )
|
||||
#endif
|
||||
{
|
||||
XFlush( mDisplay );
|
||||
XSync( mDisplay,False );
|
||||
}
|
||||
XFlush( mDisplay );
|
||||
XSync( mDisplay,False );
|
||||
|
||||
saver_off(mDisplay);
|
||||
|
||||
@ -390,7 +367,7 @@ uninit(void)
|
||||
if ( vo_window == None )
|
||||
#endif
|
||||
{
|
||||
XDestroyWindow( mDisplay,mWindow );
|
||||
XDestroyWindow( mDisplay,vo_window );
|
||||
}
|
||||
mga_uninit();
|
||||
printf("vo: uninit!\n");
|
||||
|
@ -57,9 +57,6 @@ int XShmGetEventBase(Display*);
|
||||
static unsigned char *ImageData;
|
||||
|
||||
/* X11 related variables */
|
||||
//static Display *mydisplay;
|
||||
static Window mywindow;
|
||||
static GC mygc;
|
||||
static XImage *myximage;
|
||||
static int depth, bpp, mode;
|
||||
static XWindowAttributes attribs;
|
||||
@ -405,50 +402,44 @@ static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width, uint32
|
||||
xswamask = CWBackPixel | CWBorderPixel;
|
||||
|
||||
if ( WinID>=0 ){
|
||||
mywindow = WinID ? ((Window)WinID) : RootWindow(mDisplay,mScreen);
|
||||
XUnmapWindow( mDisplay,mywindow );
|
||||
XChangeWindowAttributes( mDisplay,mywindow,xswamask,&xswa );
|
||||
vo_window = WinID ? ((Window)WinID) : RootWindow(mDisplay,mScreen);
|
||||
XUnmapWindow( mDisplay,vo_window );
|
||||
XChangeWindowAttributes( mDisplay,vo_window,xswamask,&xswa );
|
||||
} else
|
||||
|
||||
mywindow = XCreateWindow(mDisplay, RootWindow(mDisplay,mScreen),
|
||||
vo_window = XCreateWindow(mDisplay, RootWindow(mDisplay,mScreen),
|
||||
hint.x, hint.y, hint.width, hint.height,
|
||||
0, depth,CopyFromParent,vinfo.visual,xswamask,&xswa);
|
||||
|
||||
vo_x11_classhint( mDisplay,mywindow,"xv" );
|
||||
vo_hidecursor(mDisplay,mywindow);
|
||||
vo_x11_classhint( mDisplay,vo_window,"xv" );
|
||||
vo_hidecursor(mDisplay,vo_window);
|
||||
|
||||
XSelectInput(mDisplay, mywindow, StructureNotifyMask | KeyPressMask
|
||||
XSelectInput(mDisplay, vo_window, StructureNotifyMask | KeyPressMask
|
||||
#ifdef HAVE_NEW_INPUT
|
||||
| ButtonPressMask | ButtonReleaseMask
|
||||
#endif
|
||||
);
|
||||
XSetStandardProperties(mDisplay, mywindow, hello, hello, None, NULL, 0, &hint);
|
||||
if ( mFullscreen ) vo_x11_decoration( mDisplay,mywindow,0 );
|
||||
XMapWindow(mDisplay, mywindow);
|
||||
XSetStandardProperties(mDisplay, vo_window, hello, hello, None, NULL, 0, &hint);
|
||||
if ( mFullscreen ) vo_x11_decoration( mDisplay,vo_window,0 );
|
||||
XMapWindow(mDisplay, vo_window);
|
||||
#ifdef HAVE_XINERAMA
|
||||
vo_x11_xinerama_move(mDisplay,mywindow);
|
||||
vo_x11_xinerama_move(mDisplay,vo_window);
|
||||
#endif
|
||||
mygc = XCreateGC(mDisplay, mywindow, 0L, &xgcv);
|
||||
vo_gc = XCreateGC(mDisplay, vo_window, 0L, &xgcv);
|
||||
XFlush(mDisplay);
|
||||
XSync(mDisplay, False);
|
||||
#ifdef HAVE_XF86VM
|
||||
if ( vm )
|
||||
{
|
||||
/* Grab the mouse pointer in our window */
|
||||
XGrabPointer(mDisplay, mywindow, True, 0,
|
||||
XGrabPointer(mDisplay, vo_window, True, 0,
|
||||
GrabModeAsync, GrabModeAsync,
|
||||
mywindow, None, CurrentTime);
|
||||
XSetInputFocus(mDisplay, mywindow, RevertToNone, CurrentTime);
|
||||
vo_window, None, CurrentTime);
|
||||
XSetInputFocus(mDisplay, vo_window, RevertToNone, CurrentTime);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_NEW_GUI
|
||||
}
|
||||
else
|
||||
{
|
||||
mywindow=vo_window;
|
||||
mygc=vo_gc;
|
||||
}
|
||||
#endif
|
||||
|
||||
xv_port = 0;
|
||||
@ -519,9 +510,9 @@ static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width, uint32
|
||||
#endif
|
||||
set_gamma_correction();
|
||||
|
||||
XGetGeometry( mDisplay,mywindow,&mRoot,&drwX,&drwY,&drwWidth,&drwHeight,&drwBorderWidth,&drwDepth );
|
||||
XGetGeometry( mDisplay,vo_window,&mRoot,&drwX,&drwY,&drwWidth,&drwHeight,&drwBorderWidth,&drwDepth );
|
||||
drwX=0; drwY=0;
|
||||
XTranslateCoordinates( mDisplay,mywindow,mRoot,0,0,&drwcX,&drwcY,&mRoot );
|
||||
XTranslateCoordinates( mDisplay,vo_window,mRoot,0,0,&drwcX,&drwcY,&mRoot );
|
||||
printf( "[xv] dcx: %d dcy: %d dx: %d dy: %d dw: %d dh: %d\n",drwcX,drwcY,drwX,drwY,drwWidth,drwHeight );
|
||||
|
||||
aspect(&dwidth,&dheight,A_NOZOOM);
|
||||
@ -583,9 +574,9 @@ static void check_events(void)
|
||||
int e=vo_x11_check_events(mDisplay);
|
||||
if(e&VO_EVENT_RESIZE)
|
||||
{
|
||||
XGetGeometry( mDisplay,mywindow,&mRoot,&drwX,&drwY,&drwWidth,&drwHeight,&drwBorderWidth,&drwDepth );
|
||||
XGetGeometry( mDisplay,vo_window,&mRoot,&drwX,&drwY,&drwWidth,&drwHeight,&drwBorderWidth,&drwDepth );
|
||||
drwX=0; drwY=0;
|
||||
XTranslateCoordinates( mDisplay,mywindow,mRoot,0,0,&drwcX,&drwcY,&mRoot );
|
||||
XTranslateCoordinates( mDisplay,vo_window,mRoot,0,0,&drwcX,&drwcY,&mRoot );
|
||||
printf( "[xv] dcx: %d dcy: %d dx: %d dy: %d dw: %d dh: %d\n",drwcX,drwcY,drwX,drwY,drwWidth,drwHeight );
|
||||
|
||||
#ifdef HAVE_NEW_GUI
|
||||
@ -617,8 +608,8 @@ static void check_events(void)
|
||||
}
|
||||
if ( e & VO_EVENT_EXPOSE )
|
||||
{
|
||||
XvShmPutImage(mDisplay, xv_port, mywindow, mygc, xvimage[current_buf], 0, 0, image_width, image_height, drwX, drwY, 1, 1, False);
|
||||
XvShmPutImage(mDisplay, xv_port, mywindow, mygc, xvimage[current_buf], 0, 0, image_width, image_height, drwX,drwY,drwWidth,(mFullscreen?drwHeight - 1:drwHeight), False);
|
||||
XvShmPutImage(mDisplay, xv_port, vo_window, vo_gc, xvimage[current_buf], 0, 0, image_width, image_height, drwX, drwY, 1, 1, False);
|
||||
XvShmPutImage(mDisplay, xv_port, vo_window, vo_gc, xvimage[current_buf], 0, 0, image_width, image_height, drwX,drwY,drwWidth,(mFullscreen?drwHeight - 1:drwHeight), False);
|
||||
}
|
||||
}
|
||||
|
||||
@ -627,7 +618,7 @@ static void draw_osd(void)
|
||||
|
||||
static void flip_page(void)
|
||||
{
|
||||
XvShmPutImage(mDisplay, xv_port, mywindow, mygc, xvimage[current_buf],
|
||||
XvShmPutImage(mDisplay, xv_port, vo_window, vo_gc, xvimage[current_buf],
|
||||
0, 0, image_width, image_height,
|
||||
drwX,drwY,drwWidth,(mFullscreen?drwHeight - 1:drwHeight),
|
||||
False);
|
||||
@ -778,7 +769,7 @@ static void uninit(void)
|
||||
if ( vo_window == None )
|
||||
#endif
|
||||
{
|
||||
XDestroyWindow( mDisplay,mywindow );
|
||||
XDestroyWindow( mDisplay,vo_window );
|
||||
}
|
||||
for( i=0;i<num_buffers;i++ ) deallocate_xvimage( i );
|
||||
#ifdef HAVE_XF86VM
|
||||
|
@ -392,19 +392,12 @@ void vo_x11_classhint( Display * display,Window window,char *name ){
|
||||
XSetClassHint(display,window,&wmClass);
|
||||
}
|
||||
|
||||
#ifdef HAVE_NEW_GUI
|
||||
Window vo_window = None;
|
||||
GC vo_gc;
|
||||
int vo_xeventhandling = 1;
|
||||
int vo_resize = 0;
|
||||
int vo_expose = 0;
|
||||
Window vo_window = None;
|
||||
GC vo_gc;
|
||||
|
||||
#ifdef HAVE_NEW_GUI
|
||||
void vo_setwindow( Window w,GC g ) {
|
||||
vo_window=w; vo_gc=g;
|
||||
vo_xeventhandling=0;
|
||||
}
|
||||
void vo_setwindowsize( int w,int h ) {
|
||||
vo_dwidth=w; vo_dheight=h;
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -433,57 +426,41 @@ int vo_x11_check_events(Display *mydisplay){
|
||||
static XComposeStatus stat;
|
||||
// unsigned long vo_KeyTable[512];
|
||||
|
||||
#ifdef HAVE_NEW_GUI
|
||||
if ( vo_xeventhandling )
|
||||
{
|
||||
#endif
|
||||
while ( XPending( mydisplay ) )
|
||||
{
|
||||
XNextEvent( mydisplay,&Event );
|
||||
switch( Event.type )
|
||||
{
|
||||
case Expose:
|
||||
ret|=VO_EVENT_EXPOSE;
|
||||
break;
|
||||
case ConfigureNotify:
|
||||
vo_dwidth=Event.xconfigure.width;
|
||||
vo_dheight=Event.xconfigure.height;
|
||||
ret|=VO_EVENT_RESIZE;
|
||||
break;
|
||||
case KeyPress:
|
||||
XLookupString( &Event.xkey,buf,sizeof(buf),&keySym,&stat );
|
||||
vo_x11_putkey( ( (keySym&0xff00) != 0?( (keySym&0x00ff) + 256 ):( keySym ) ) );
|
||||
ret|=VO_EVENT_KEYPRESS;
|
||||
break;
|
||||
#ifdef HAVE_NEW_INPUT
|
||||
case ButtonPress:
|
||||
// Ignore mouse whell press event
|
||||
if(Event.xbutton.button == 4 || Event.xbutton.button == 5)
|
||||
break;
|
||||
mplayer_put_key((MOUSE_BTN0+Event.xbutton.button-1)|MP_KEY_DOWN);
|
||||
break;
|
||||
case ButtonRelease:
|
||||
mplayer_put_key(MOUSE_BTN0+Event.xbutton.button-1);
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
#ifdef HAVE_NEW_GUI
|
||||
}
|
||||
else
|
||||
while ( XPending( mydisplay ) )
|
||||
{
|
||||
XNextEvent( mydisplay,&Event );
|
||||
// #ifdef HAVE_NEW_GUI
|
||||
// if ( use_gui ) gEvent( 0,(char*)&Event );
|
||||
// #endif
|
||||
if ( vo_window == Event.xany.window )
|
||||
switch( Event.type )
|
||||
{
|
||||
if ( vo_resize )
|
||||
{
|
||||
vo_resize=0;
|
||||
ret|=VO_EVENT_RESIZE;
|
||||
}
|
||||
if ( vo_expose )
|
||||
{
|
||||
vo_expose=0;
|
||||
ret|=VO_EVENT_EXPOSE;
|
||||
}
|
||||
}
|
||||
case Expose:
|
||||
ret|=VO_EVENT_EXPOSE;
|
||||
break;
|
||||
case ConfigureNotify:
|
||||
vo_dwidth=Event.xconfigure.width;
|
||||
vo_dheight=Event.xconfigure.height;
|
||||
ret|=VO_EVENT_RESIZE;
|
||||
break;
|
||||
case KeyPress:
|
||||
XLookupString( &Event.xkey,buf,sizeof(buf),&keySym,&stat );
|
||||
vo_x11_putkey( ( (keySym&0xff00) != 0?( (keySym&0x00ff) + 256 ):( keySym ) ) );
|
||||
ret|=VO_EVENT_KEYPRESS;
|
||||
break;
|
||||
#ifdef HAVE_NEW_INPUT
|
||||
case ButtonPress:
|
||||
// Ignore mouse whell press event
|
||||
if(Event.xbutton.button == 4 || Event.xbutton.button == 5)
|
||||
break;
|
||||
mplayer_put_key((MOUSE_BTN0+Event.xbutton.button-1)|MP_KEY_DOWN);
|
||||
break;
|
||||
case ButtonRelease:
|
||||
mplayer_put_key(MOUSE_BTN0+Event.xbutton.button-1);
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -21,14 +21,11 @@ void vo_x11_classhint( Display * display,Window window,char *name );
|
||||
int vo_x11_check_events(Display *mydisplay);
|
||||
#endif
|
||||
|
||||
extern Window vo_window;
|
||||
extern GC vo_gc;
|
||||
|
||||
#ifdef HAVE_NEW_GUI
|
||||
extern Window vo_window;
|
||||
extern GC vo_gc;
|
||||
extern void vo_setwindow( Window w,GC g );
|
||||
extern void vo_setwindowsize( int w,int h );
|
||||
extern int vo_xeventhandling;
|
||||
extern int vo_expose;
|
||||
extern int vo_resize;
|
||||
extern void vo_x11_putkey(int key);
|
||||
#endif
|
||||
#ifdef HAVE_GUI
|
||||
|
Loading…
Reference in New Issue
Block a user