From 25c699c572d5024bcc95ae499a0f4509f1cab78f Mon Sep 17 00:00:00 2001 From: pontscho Date: Fri, 31 Aug 2001 14:16:28 +0000 Subject: [PATCH] async reply fix ? git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@1803 b3059339-0415-0410-9bf9-f77b7e298cf2 --- Gui/mplayer/play.c | 7 +++++++ Gui/mplayer/play.h | 3 +++ Gui/mplayer/psignal.c | 6 ++---- mplayer.c | 10 +++++----- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/Gui/mplayer/play.c b/Gui/mplayer/play.c index 3e39f73aa9..4f45fd4eeb 100644 --- a/Gui/mplayer/play.c +++ b/Gui/mplayer/play.c @@ -205,4 +205,11 @@ void ChangeSkin( void ) mplSubRender=1; wsPostRedisplay( &appMPlayer.subWindow ); } } + mplShMem->SkinChange=0; +} + +void EventHandling( void ) +{ + wsHandleEvents();mplTimerHandler(0); // handle GUI timer events + if ( mplShMem->SkinChange ) ChangeSkin(); } diff --git a/Gui/mplayer/play.h b/Gui/mplayer/play.h index 88ba80e904..07ed6a8f1e 100644 --- a/Gui/mplayer/play.h +++ b/Gui/mplayer/play.h @@ -47,6 +47,8 @@ typedef struct int TimeSec; int LengthInSec; char Filename[4096]; + + int SkinChange; } mplCommStruct; extern mplCommStruct * mplShMem; @@ -82,5 +84,6 @@ extern void mplSendMessage( int msg ); extern void mplPlayerThread( void ); extern void ChangeSkin( void ); +extern void EventHandling( void ); #endif diff --git a/Gui/mplayer/psignal.c b/Gui/mplayer/psignal.c index 38912c22f0..547913ff09 100644 --- a/Gui/mplayer/psignal.c +++ b/Gui/mplayer/psignal.c @@ -168,7 +168,7 @@ void mplMainSigHandler( int s ) if ( s != SIGTYPE ) return; // #ifdef DEBUG - if ( gtkShMem->message ) dbprintf( 5,"[psignal] main sig handler gtk msg: %d\n",gtkShMem->message ); +// if ( gtkShMem->message ) dbprintf( 5,"[psignal] main sig handler gtk msg: %d\n",gtkShMem->message ); // if ( mplShMem->message ) dbprintf( 5,"[psignal] main sig handler mpl msg: %d\n",mplShMem->message ); // #endif @@ -199,9 +199,7 @@ void mplMainSigHandler( int s ) case evLoad: gtkVisibleFileSelect=0; break; } break; - case evSkinBrowser: - ChangeSkin(); - break; + case evSkinBrowser: mplShMem->SkinChange=1; break; case evFileLoaded: strcpy( mplShMem->Filename,gtkShMem->fs.dir ); strcat( mplShMem->Filename,"/" ); strcat( mplShMem->Filename,gtkShMem->fs.filename ); if ( mplMainAutoPlay ) mplGeneralTimer=1; diff --git a/mplayer.c b/mplayer.c index 4d665248bd..c27ede2040 100644 --- a/mplayer.c +++ b/mplayer.c @@ -583,7 +583,7 @@ play_next_file: mplShMem->Playing= (gui_no_filename) ? 0 : 1; while(mplShMem->Playing!=1){ usleep(20000); - wsHandleEvents();mplTimerHandler(0); // handle GUI timer events + EventHandling(); } if(gui_no_filename){ filename=mplShMem->Filename; @@ -1291,7 +1291,7 @@ if(1) } #ifdef HAVE_NEW_GUI if(use_gui){ - wsHandleEvents();mplTimerHandler(0); // handle GUI timer events + EventHandling(); } #endif video_out->check_events(); // check events AST @@ -1329,7 +1329,7 @@ if(1) #ifdef HAVE_NEW_GUI if(use_gui){ - wsHandleEvents();mplTimerHandler(0); // handle GUI timer events + EventHandling(); } #endif @@ -1341,7 +1341,7 @@ if(1) usec_sleep(1000000*(time_frame-0.002)); #ifdef HAVE_NEW_GUI if(use_gui){ - wsHandleEvents();mplTimerHandler(0); // handle GUI timer events + EventHandling(); } #endif time_frame-=GetRelativeTime(); @@ -1512,7 +1512,7 @@ if(auto_quality>0){ #endif #ifdef HAVE_NEW_GUI if(use_gui){ - wsHandleEvents();mplTimerHandler(0); // handle GUI timer events + EventHandling(); if(mplShMem->Playing!=2 || (rel_seek_secs || abs_seek_pos)) break; // end of pause or seek } #endif