diff --git a/Gui/Makefile b/Gui/Makefile index 3ef0da7dab..6cfef35ad7 100644 --- a/Gui/Makefile +++ b/Gui/Makefile @@ -14,10 +14,9 @@ endif CFLAGS = $(OPTIMIZE) $(INCDIR) $(DEBUG) -SRCS = wm/ws.c wm/wsxdnd.c app.c interface.c cfg.c \ - bitmap/bitmap.c \ +SRCS = wm/ws.c wm/wsxdnd.c app.c interface.c cfg.c bitmap.c \ skin/skin.c skin/font.c skin/cut.c \ - mplayer/mplayer.c mplayer/widgets.c mplayer/play.c \ + mplayer/widgets.c mplayer/play.c mplayer/mw.c mplayer/sw.c mplayer/menu.c \ mplayer/gtk/menu.c mplayer/gtk/mb.c mplayer/gtk/about.c mplayer/gtk/pl.c mplayer/gtk/sb.c mplayer/gtk/fs.c mplayer/gtk/opts.c mplayer/gtk/url.c mplayer/gtk/eq.c OBJS = $(SRCS:.c=.o) diff --git a/Gui/app.h b/Gui/app.h index 5965326ec6..735116ef99 100644 --- a/Gui/app.h +++ b/Gui/app.h @@ -2,7 +2,7 @@ #ifndef __APPS_H #define __APPS_H -#include "bitmap/bitmap.h" +#include "bitmap.h" #include "wm/ws.h" #include "wm/wskeys.h" diff --git a/Gui/interface.c b/Gui/interface.c index 5834fa17ca..2b297869e4 100644 --- a/Gui/interface.c +++ b/Gui/interface.c @@ -1,18 +1,20 @@ - + #include #include #include #include +#include -#include "ws.h" -#include "mplayer/play.h" +#include "wm/ws.h" +#include "wm/wsxdnd.h" #include "interface.h" #include "skin/skin.h" -#include "mplayer/gtk/eq.h" -#include "../mplayer.h" +#include "mplayer/gtk/eq.h" #include "mplayer/widgets.h" #include "mplayer/mplayer.h" + +#include "../mplayer.h" #include "app.h" #include "cfg.h" #include "../help_mp.h" @@ -27,9 +29,6 @@ #include "../libao2/audio_plugin.h" #include "../libao2/eq.h" -#include -#include - #ifdef USE_ICONV #include #endif @@ -150,6 +149,8 @@ char * gconvert_uri_to_filename( char * str ) void guiInit( void ) { + int i; + memset( &guiIntfStruct,0,sizeof( guiIntfStruct ) ); guiIntfStruct.Balance=50.0f; guiIntfStruct.StreamType=-1; @@ -165,7 +166,7 @@ void guiInit( void ) gtkInit(); // --- initialize X wsXInit( (void *)mDisplay ); -// --- +// --- load skin skinDirInHome=get_path("Skin"); skinMPlayerDir=DATADIR "/Skin"; printf("SKIN dir 1: '%s'\n",skinDirInHome); @@ -176,7 +177,83 @@ void guiInit( void ) case -1: mp_msg( MSGT_GPLAYER,MSGL_ERR,MSGTR_SKIN_SKINCFG_SkinNotFound,skinName ); exit( 0 ); case -2: mp_msg( MSGT_GPLAYER,MSGL_ERR,MSGTR_SKIN_SKINCFG_SkinCfgReadError,skinName ); exit( 0 ); } - mplInit( (void *)mDisplay ); +// --- initialize windows + if ( ( mplDrawBuffer = (unsigned char *)calloc( 1,appMPlayer.main.Bitmap.ImageSize ) ) == NULL ) + { + fprintf( stderr,MSGTR_NEMDB ); + exit( 0 ); + } + + wsCreateWindow( &appMPlayer.subWindow, + appMPlayer.sub.x,appMPlayer.sub.y,appMPlayer.sub.width,appMPlayer.sub.height, + wsNoBorder,wsShowMouseCursor|wsHandleMouseButton|wsHandleMouseMove,wsShowFrame|wsHideWindow,"ViDEO" ); + + wsDestroyImage( &appMPlayer.subWindow ); + wsCreateImage( &appMPlayer.subWindow,appMPlayer.sub.Bitmap.Width,appMPlayer.sub.Bitmap.Height ); + wsXDNDMakeAwareness(&appMPlayer.subWindow); + + vo_setwindow( appMPlayer.subWindow.WindowID, appMPlayer.subWindow.wGC ); + +// i=wsHideFrame|wsMaxSize|wsHideWindow; +// if ( appMPlayer.mainDecoration ) i=wsShowFrame|wsMaxSize|wsHideWindow; + i=wsShowFrame|wsMaxSize|wsHideWindow; + wsCreateWindow( &appMPlayer.mainWindow, + appMPlayer.main.x,appMPlayer.main.y,appMPlayer.main.width,appMPlayer.main.height, + wsNoBorder,wsShowMouseCursor|wsHandleMouseButton|wsHandleMouseMove,i,"MPlayer" ); //wsMinSize| + + wsSetShape( &appMPlayer.mainWindow,appMPlayer.main.Mask.Image ); + wsXDNDMakeAwareness(&appMPlayer.mainWindow); + + mplMenuInit(); + + #ifdef DEBUG + mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[main] Depth on screen: %d\n",wsDepthOnScreen ); + mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[main] parent: 0x%x\n",(int)appMPlayer.mainWindow.WindowID ); + mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[main] sub: 0x%x\n",(int)appMPlayer.subWindow.WindowID ); + #endif + + appMPlayer.mainWindow.ReDraw=(void *)mplMainDraw; + appMPlayer.mainWindow.MouseHandler=mplMainMouseHandle; + appMPlayer.mainWindow.KeyHandler=mplMainKeyHandle; + appMPlayer.mainWindow.DandDHandler=mplDandDHandler; + + appMPlayer.subWindow.ReDraw=(void *)mplSubDraw; + appMPlayer.subWindow.MouseHandler=mplSubMouseHandle; + appMPlayer.subWindow.KeyHandler=mplMainKeyHandle; + appMPlayer.subWindow.DandDHandler=mplDandDHandler; + + wsSetBackgroundRGB( &appMPlayer.subWindow,appMPlayer.subR,appMPlayer.subG,appMPlayer.subB ); + wsClearWindow( appMPlayer.subWindow ); + if ( appMPlayer.sub.Bitmap.Image ) wsConvert( &appMPlayer.subWindow,appMPlayer.sub.Bitmap.Image,appMPlayer.sub.Bitmap.ImageSize ); + + btnModify( evSetVolume,guiIntfStruct.Volume ); + btnModify( evSetBalance,guiIntfStruct.Balance ); + btnModify( evSetMoviePosition,guiIntfStruct.Position ); + + wsSetIcon( wsDisplay,appMPlayer.mainWindow.WindowID,guiIcon,guiIconMask ); + wsSetIcon( wsDisplay,appMPlayer.subWindow.WindowID,guiIcon,guiIconMask ); + + guiIntfStruct.Playing=0; + + if ( !appMPlayer.mainDecoration ) wsWindowDecoration( &appMPlayer.mainWindow,0 ); + + wsVisibleWindow( &appMPlayer.mainWindow,wsShowWindow ); +#if 1 + wsVisibleWindow( &appMPlayer.subWindow,wsShowWindow ); + + { + XEvent xev; + do { XNextEvent( wsDisplay,&xev ); } while ( xev.type != MapNotify || xev.xmap.event != appMPlayer.subWindow.WindowID ); + appMPlayer.subWindow.Mapped=wsMapped; + } + + if ( fullscreen ) + { + mplFullScreen(); + btnModify( evFullScreen,btnPressed ); + } +#endif + mplSubRender=1; // --- if ( plCurrent && !filename ) mplSetFileName( plCurrent->path,plCurrent->name,STREAMTYPE_FILE ); diff --git a/Gui/mplayer/menu.c b/Gui/mplayer/menu.c index c83d247468..31cf947963 100644 --- a/Gui/mplayer/menu.c +++ b/Gui/mplayer/menu.c @@ -1,4 +1,15 @@ +#include +#include +#include + +#include "../app.h" +#include "../../config.h" +#include "../../help_mp.h" +#include "../../mp_msg.h" + +#include "widgets.h" + unsigned char * mplMenuDrawBuffer = NULL; int mplMenuRender = 1; int mplMenuItem = -1; @@ -7,7 +18,7 @@ int mplMenuX,mplMenuY; void mplHideMenu( int mx,int my,int w ); -void mplMenuDraw( wsParamDisplay ) +void mplMenuDraw( void ) { uint32_t * buf = NULL; uint32_t * drw = NULL; diff --git a/Gui/mplayer/mplayer.c b/Gui/mplayer/mplayer.c deleted file mode 100644 index 6001710e5b..0000000000 --- a/Gui/mplayer/mplayer.c +++ /dev/null @@ -1,108 +0,0 @@ - -#include - -#include "../app.h" -#include "../skin/skin.h" -#include "../wm/ws.h" -#include "../wm/wsxdnd.h" - -#include "../../config.h" -#include "../../help_mp.h" -#include "../../libvo/x11_common.h" - -void mplEventHandling( int msg,float param ); - -extern void mplMainDraw( wsParamDisplay ); -extern void mplEventHandling( int msg,float param ); -extern void mplMainMouseHandle( int Button,int X,int Y,int RX,int RY ); -extern void mplMainKeyHandle( int KeyCode,int Type,int Key ); -extern void mplDandDHandler(int num,char** files); -extern void mplSubDraw( wsParamDisplay ); -extern void mplSubMouseHandle( int Button,int X,int Y,int RX,int RY ); - -#include "widgets.h" -#include "play.h" -#include "menu.h" - -void mplInit( void * disp ) -{ - int i; - - if ( ( mplDrawBuffer = (unsigned char *)calloc( 1,appMPlayer.main.Bitmap.ImageSize ) ) == NULL ) - { - fprintf( stderr,MSGTR_NEMDB ); - exit( 0 ); - } - - wsCreateWindow( &appMPlayer.subWindow, - appMPlayer.sub.x,appMPlayer.sub.y,appMPlayer.sub.width,appMPlayer.sub.height, - wsNoBorder,wsShowMouseCursor|wsHandleMouseButton|wsHandleMouseMove,wsShowFrame|wsHideWindow,"ViDEO" ); - - wsDestroyImage( &appMPlayer.subWindow ); - wsCreateImage( &appMPlayer.subWindow,appMPlayer.sub.Bitmap.Width,appMPlayer.sub.Bitmap.Height ); - wsXDNDMakeAwareness(&appMPlayer.subWindow); - - vo_setwindow( appMPlayer.subWindow.WindowID, appMPlayer.subWindow.wGC ); - -// i=wsHideFrame|wsMaxSize|wsHideWindow; -// if ( appMPlayer.mainDecoration ) i=wsShowFrame|wsMaxSize|wsHideWindow; - i=wsShowFrame|wsMaxSize|wsHideWindow; - wsCreateWindow( &appMPlayer.mainWindow, - appMPlayer.main.x,appMPlayer.main.y,appMPlayer.main.width,appMPlayer.main.height, - wsNoBorder,wsShowMouseCursor|wsHandleMouseButton|wsHandleMouseMove,i,"MPlayer" ); //wsMinSize| - - wsSetShape( &appMPlayer.mainWindow,appMPlayer.main.Mask.Image ); - wsXDNDMakeAwareness(&appMPlayer.mainWindow); - - mplMenuInit(); - - #ifdef DEBUG - mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[main] Depth on screen: %d\n",wsDepthOnScreen ); - mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[main] parent: 0x%x\n",(int)appMPlayer.mainWindow.WindowID ); - mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[main] sub: 0x%x\n",(int)appMPlayer.subWindow.WindowID ); - #endif - - appMPlayer.mainWindow.ReDraw=mplMainDraw; - appMPlayer.mainWindow.MouseHandler=mplMainMouseHandle; - appMPlayer.mainWindow.KeyHandler=mplMainKeyHandle; - appMPlayer.mainWindow.DandDHandler=mplDandDHandler; - - appMPlayer.subWindow.ReDraw=mplSubDraw; - appMPlayer.subWindow.MouseHandler=mplSubMouseHandle; - appMPlayer.subWindow.KeyHandler=mplMainKeyHandle; - appMPlayer.subWindow.DandDHandler=mplDandDHandler; - - wsSetBackgroundRGB( &appMPlayer.subWindow,appMPlayer.subR,appMPlayer.subG,appMPlayer.subB ); - wsClearWindow( appMPlayer.subWindow ); - if ( appMPlayer.sub.Bitmap.Image ) wsConvert( &appMPlayer.subWindow,appMPlayer.sub.Bitmap.Image,appMPlayer.sub.Bitmap.ImageSize ); - - btnModify( evSetVolume,guiIntfStruct.Volume ); - btnModify( evSetBalance,guiIntfStruct.Balance ); - btnModify( evSetMoviePosition,guiIntfStruct.Position ); - - wsSetIcon( wsDisplay,appMPlayer.mainWindow.WindowID,guiIcon,guiIconMask ); - wsSetIcon( wsDisplay,appMPlayer.subWindow.WindowID,guiIcon,guiIconMask ); - - guiIntfStruct.Playing=0; - - if ( !appMPlayer.mainDecoration ) wsWindowDecoration( &appMPlayer.mainWindow,0 ); - - wsVisibleWindow( &appMPlayer.mainWindow,wsShowWindow ); -#if 1 - wsVisibleWindow( &appMPlayer.subWindow,wsShowWindow ); - - { - XEvent xev; - do { XNextEvent( wsDisplay,&xev ); } while ( xev.type != MapNotify || xev.xmap.event != appMPlayer.subWindow.WindowID ); - appMPlayer.subWindow.Mapped=wsMapped; - } - - if ( fullscreen ) - { - mplFullScreen(); - btnModify( evFullScreen,btnPressed ); - } -#endif - mplSubRender=1; -} - diff --git a/Gui/mplayer/mplayer.h b/Gui/mplayer/mplayer.h index 662eacb334..99183ad7e1 100644 --- a/Gui/mplayer/mplayer.h +++ b/Gui/mplayer/mplayer.h @@ -15,4 +15,18 @@ extern int mplMiddleMenu; extern void mplInit( void * disp ); extern void mplEventHandling( int msg,float param ); +extern void mplMainDraw( void ); +extern void mplEventHandling( int msg,float param ); +extern void mplMainMouseHandle( int Button,int X,int Y,int RX,int RY ); +extern void mplMainKeyHandle( int KeyCode,int Type,int Key ); +extern void mplDandDHandler(int num,char** files); + +extern void mplSubDraw( void ); +extern void mplSubMouseHandle( int Button,int X,int Y,int RX,int RY ); + +extern void mplMenuInit( void ); +extern void mplHideMenu( int mx,int my,int w ); +extern void mplShowMenu( int mx,int my ); +extern void mplMenuMouseHandle( int X,int Y,int RX,int RY ); + #endif diff --git a/Gui/mplayer/mw.c b/Gui/mplayer/mw.c index aff15a8397..a265bea5c3 100644 --- a/Gui/mplayer/mw.c +++ b/Gui/mplayer/mw.c @@ -24,9 +24,6 @@ #include "widgets.h" extern unsigned int GetTimerMS( void ); -extern void mplHideMenu( int mx,int my,int w ); -extern void mplShowMenu( int mx,int my ); -extern void mplMenuMouseHandle( int X,int Y,int RX,int RY ); unsigned char * mplDrawBuffer = NULL; int mplMainRender = 1; @@ -177,7 +174,7 @@ inline void PutImage( txSample * bf,int x,int y,int max,int ofs ) } } -void mplMainDraw( wsParamDisplay ) +void mplMainDraw( void ) { wItem * item; txSample * image = NULL; diff --git a/Gui/mplayer/sw.c b/Gui/mplayer/sw.c index 2593fede4d..ac0f9b8901 100644 --- a/Gui/mplayer/sw.c +++ b/Gui/mplayer/sw.c @@ -13,11 +13,7 @@ extern int boxMoved; extern int sx,sy; extern int i,pot; -extern void mplHideMenu( int mx,int my,int w ); -extern void mplShowMenu( int mx,int my ); -extern void mplMenuMouseHandle( int X,int Y,int RX,int RY ); - -void mplSubDraw( wsParamDisplay ) +void mplSubDraw( void ) { if ( appMPlayer.subWindow.State == wsWindowClosed ) exit_player( MSGTR_Exit_quit ); diff --git a/Gui/skin/font.h b/Gui/skin/font.h index 0639b78d5b..9258a353fd 100644 --- a/Gui/skin/font.h +++ b/Gui/skin/font.h @@ -2,7 +2,7 @@ #ifndef _FONT_H #define _FONT_H -#include "../bitmap/bitmap.h" +#include "../bitmap.h" typedef struct { diff --git a/Gui/wm/ws.c b/Gui/wm/ws.c index 89787c1669..ba4b21e708 100644 --- a/Gui/wm/ws.c +++ b/Gui/wm/ws.c @@ -609,12 +609,12 @@ Bool wsEvents( Display * display,XEvent * Event,XPointer arg ) } expose: wsWindowList[l]->State=i; - if ( wsWindowList[l]->ReDraw ) wsWindowList[l]->ReDraw( wsDisplay,Event->xany.window ); + if ( wsWindowList[l]->ReDraw ) wsWindowList[l]->ReDraw(); break; case Expose: wsWindowList[l]->State=wsWindowExpose; - if ( ( wsWindowList[l]->ReDraw )&&( !Event->xexpose.count ) ) wsWindowList[l]->ReDraw( wsDisplay,Event->xany.window ); + if ( ( wsWindowList[l]->ReDraw )&&( !Event->xexpose.count ) ) wsWindowList[l]->ReDraw(); break; case ConfigureNotify: @@ -915,7 +915,7 @@ void wsPostRedisplay( wsTWindow * win ) if ( win->ReDraw ) { win->State=wsWindowExpose; - win->ReDraw( wsDisplay,win->WindowID ); + win->ReDraw(); XFlush( wsDisplay ); } } diff --git a/Gui/wm/ws.h b/Gui/wm/ws.h index 0ab13869af..84195d6f76 100644 --- a/Gui/wm/ws.h +++ b/Gui/wm/ws.h @@ -93,9 +93,7 @@ #define wsWMIceWM 3 #define wsWMWMaker 4 -#define wsParamDisplay Display *dpy,Window w - -typedef void (*wsTReDraw)( wsParamDisplay ); +typedef void (*wsTReDraw)( void ); typedef void (*wsTReSize)( unsigned int X,unsigned int Y,unsigned int width,unsigned int height ); typedef void (*wsTIdle)( void ); typedef void (*wsTKeyHandler)( int KeyCode,int Type,int Key );