Mercurial > mplayer.hg
changeset 1709:a4e0211455d8
GUI integration, step 1
author | arpi |
---|---|
date | Mon, 27 Aug 2001 00:55:25 +0000 |
parents | b2e842edc417 |
children | 381ff166925c |
files | Gui/mplayer/mplayer.c Gui/wm/ws.c cfg-mplayer.h mplayer.c |
diffstat | 4 files changed, 61 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/Gui/mplayer/mplayer.c Mon Aug 27 00:45:26 2001 +0000 +++ b/Gui/mplayer/mplayer.c Mon Aug 27 00:55:25 2001 +0000 @@ -108,7 +108,11 @@ // timerSetHandler( mplTimerHandler ); // various timer hacks // timerInit(); - wsMainLoop(); // X event handler (calls mplTimerHandler periodically!) +// wsMainLoop(); // X event handler (calls mplTimerHandler periodically!) + +} + +void mplDone(){ dbprintf( 1,"[mplayer] exit.\n" ); @@ -116,4 +120,6 @@ // timerDone(); gtkDone(); // kills the gtkThreadProc() process wsXDone(); + } +
--- a/Gui/wm/ws.c Mon Aug 27 00:45:26 2001 +0000 +++ b/Gui/wm/ws.c Mon Aug 27 00:55:25 2001 +0000 @@ -631,6 +631,16 @@ Bool wsDummyEvents( Display * display,XEvent * Event,XPointer arg ) { return True; } +// mplTimerHandler(0); // handle timer event +void wsHandleEvents(){ + // handle pending events + while ( XPending(wsDisplay) ){ + XNextEvent( wsDisplay,&wsEvent ); +// printf("### X event: %d [%d]\n",wsEvent.type,delay); + wsEvents( wsDisplay,&wsEvent,NULL ); + } +} + void wsMainLoop( void ) { int delay=20;
--- a/cfg-mplayer.h Mon Aug 27 00:45:26 2001 +0000 +++ b/cfg-mplayer.h Mon Aug 27 00:55:25 2001 +0000 @@ -230,6 +230,8 @@ {"aa*", vo_aa_parseoption, CONF_TYPE_FUNC_FULL, 0, 0, 0 }, #endif + {"gui", &use_gui, CONF_TYPE_FLAG, 0, 0, 1}, + {"nogui", &use_gui, CONF_TYPE_FLAG, 0, 1, 0}, {"noidx", &index_mode, CONF_TYPE_FLAG, 0, -1, 0}, {"idx", &index_mode, CONF_TYPE_FLAG, 0, -1, 1},
--- a/mplayer.c Mon Aug 27 00:45:26 2001 +0000 +++ b/mplayer.c Mon Aug 27 00:55:25 2001 +0000 @@ -200,6 +200,8 @@ static int auto_quality=0; static int output_quality=0; +int use_gui=0; + int osd_level=2; char *seek_to_sec=NULL; off_t seek_to_byte=0; @@ -462,22 +464,25 @@ mp_msg(MSGT_CPLAYER,MSGL_INFO,"%s",banner_text); -#ifdef HAVE_NEW_GUI // this one segfaults if running 'mplayer' (without path containing '/') // if ( !strcmp( strrchr( argv[0],'/' ),"/gmplayer" ) ) appInit( argc,argv,envp ); - if ( strstr( argv[0],"gmplayer" ) ) appInit( argc,argv,envp ); - -#endif - - -#ifdef HAVE_GUI - if ( nogui ) { -#endif + if ( argv[0] ) + if(!strcmp(argv[0],"gmplayer") || + (strrchr(argv[0],'/') && !strcmp(strrchr(argv[0],'/'),"/gmplayer") ) ) + use_gui=1; parse_cfgfiles(); num_filenames=parse_command_line(conf, argc, argv, envp, &filenames); if(num_filenames<0) exit(1); // error parsing cmdline +#ifndef HAVE_NEW_GUI + if(use_gui){ + mp_msg(MSGT_CPLAYER,MSGL_WARN,"MPlayer was compiled WITHOUT GUI support!\n"); + use_gui=0; + } +#endif + + #ifndef USE_LIBVO2 if(video_driver && strcmp(video_driver,"help")==0){ printf("Available video output drivers:\n"); @@ -501,7 +506,7 @@ exit(0); } - if(!num_filenames && !vcd_track && !dvd_title){ + if(!num_filenames && !vcd_track && !dvd_title && !use_gui){ // no file/vcd/dvd -> show HELP: printf("%s",help_text); exit(0); @@ -515,10 +520,6 @@ printf("num_filenames: %d\n",num_filenames); } -#ifdef HAVE_GUI - } -#endif - mp_msg_init(verbose+MSGL_STATUS); //------ load global data first ------ @@ -556,6 +557,12 @@ } #endif + // It's time to init the GUI code: (and fork() the GTK process) +#ifdef HAVE_NEW_GUI + if(use_gui){ + appInit( argc,argv,envp ); + } +#endif #ifdef HAVE_LIRC #ifdef HAVE_GUI @@ -1288,6 +1295,11 @@ } } video_out->check_events(); // check events AST +#ifdef HAVE_NEW_GUI + if(use_gui){ + wsHandleEvents();mplTimerHandler(0); // handle GUI timer events + } +#endif } else { // It's time to sleep... current_module="sleep"; @@ -1319,6 +1331,12 @@ // if(verbose>1)printf("sleep: %5.3f a:%6.3f v:%6.3f \n",time_frame,sh_audio->timer,sh_video->timer); aq_sleep_time+=time_frame; + +#ifdef HAVE_NEW_GUI + if(use_gui){ + wsHandleEvents();mplTimerHandler(0); // handle GUI timer events + } +#endif while(time_frame>0.005){ if(time_frame<=0.020) @@ -1326,6 +1344,11 @@ usec_sleep(0); // sleeps 1 clock tick (10ms)! else usec_sleep(1000000*(time_frame-0.002)); +#ifdef HAVE_NEW_GUI + if(use_gui){ + wsHandleEvents();mplTimerHandler(0); // handle GUI timer events + } +#endif time_frame-=GetRelativeTime(); } @@ -1493,6 +1516,11 @@ #ifndef USE_LIBVO2 video_out->check_events(); #endif +#ifdef HAVE_NEW_GUI + if(use_gui){ + wsHandleEvents();mplTimerHandler(0); // handle GUI timer events + } +#endif if(use_stdin) usec_sleep(1000); // do not eat the CPU } osd_function=OSD_PLAY;