diff options
Diffstat (limited to 'Gui/mplayer')
-rw-r--r-- | Gui/mplayer/play.c | 32 | ||||
-rw-r--r-- | Gui/mplayer/play.h | 1 |
2 files changed, 32 insertions, 1 deletions
diff --git a/Gui/mplayer/play.c b/Gui/mplayer/play.c index f7ad980432..147674bba0 100644 --- a/Gui/mplayer/play.c +++ b/Gui/mplayer/play.c @@ -69,7 +69,7 @@ void mplEnd( void ) { plItem * next; - if ( !mplGotoTheNext ) { mplGotoTheNext=1; return; } + if ( !mplGotoTheNext && guiIntfStruct.Playing) { mplGotoTheNext=1; return; } if ( guiIntfStruct.Playing && (next=gtkSet( gtkGetNextPlItem,0,NULL )) && plLastPlayed != next ) { @@ -268,6 +268,36 @@ void mplSetFileName( char * dir,char * name,int type ) gfree( (void **)&guiIntfStruct.Subtitlename ); } +void mplCurr( void ) +{ + plItem * curr; + int stop = 0; + + if ( guiIntfStruct.Playing == 2 ) return; + switch ( guiIntfStruct.StreamType ) + { +#ifdef USE_DVDREAD + case STREAMTYPE_DVD: + break; +#endif +#ifdef HAVE_VCD + case STREAMTYPE_VCD: + break; +#endif + default: + if ( (curr=gtkSet( gtkGetCurrPlItem,0,NULL)) ) + { + mplSetFileName( curr->path,curr->name,STREAMTYPE_FILE ); + mplGotoTheNext=0; + break; + } + return; + } + if ( stop ) mplEventHandling( evStop,0 ); + if ( guiIntfStruct.Playing == 1 ) mplEventHandling( evPlay,0 ); +} + + void mplPrev( void ) { plItem * prev; diff --git a/Gui/mplayer/play.h b/Gui/mplayer/play.h index 9b1dd25e9e..b7c3c58a3b 100644 --- a/Gui/mplayer/play.h +++ b/Gui/mplayer/play.h @@ -13,6 +13,7 @@ extern void mplPause( void ); extern void mplState( void ); extern void mplPrev( void ); extern void mplNext( void ); +extern void mplCurr( void ); extern void mplIncAudioBufDelay( void ); extern void mplDecAudioBufDelay( void ); |