summaryrefslogtreecommitdiffstats
path: root/Gui
diff options
context:
space:
mode:
authorpontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-04-18 18:24:08 +0000
committerpontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-04-18 18:24:08 +0000
commit8081bf7ded09d718f68f282917424af58bf26ee1 (patch)
tree7c8f5990714d04c1e502f02d69e96fc0e859398a /Gui
parent7b025193f3a9a1a4ad0951fb26bf8421802bf440 (diff)
downloadmpv-8081bf7ded09d718f68f282917424af58bf26ee1.tar.bz2
mpv-8081bf7ded09d718f68f282917424af58bf26ee1.tar.xz
add prev/next title feature for gui dvd support
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5690 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'Gui')
-rw-r--r--Gui/mplayer/mw.h4
-rw-r--r--Gui/mplayer/play.c41
-rw-r--r--Gui/mplayer/play.h2
3 files changed, 44 insertions, 3 deletions
diff --git a/Gui/mplayer/mw.h b/Gui/mplayer/mw.h
index 0fdc38cff8..26fca17854 100644
--- a/Gui/mplayer/mw.h
+++ b/Gui/mplayer/mw.h
@@ -297,12 +297,12 @@ NoPause:
gtkShow( evLoadSubtitle,NULL );
break;
case evPrev:
+ mplPrev();
mplMainRender=1;
- mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[mw.h] previous stream ...\n" );
break;
case evNext:
+ mplNext();
mplMainRender=1;
- mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[mw.h] next stream ...\n" );
break;
case evPlayList:
diff --git a/Gui/mplayer/play.c b/Gui/mplayer/play.c
index 4442e88380..eb0647cb83 100644
--- a/Gui/mplayer/play.c
+++ b/Gui/mplayer/play.c
@@ -66,13 +66,13 @@ void mplStop()
guiIntfStruct.TimeSec=0;
guiIntfStruct.Position=0;
guiIntfStruct.AudioType=0;
- mplState();
// if ( !guiIntfStruct.Playing ) return;
if ( !appMPlayer.subWindow.isFullScreen )
{
wsResizeWindow( &appMPlayer.subWindow,appMPlayer.sub.width,appMPlayer.sub.height );
wsMoveWindow( &appMPlayer.subWindow,True,appMPlayer.sub.x,appMPlayer.sub.y );
}
+ guiGetEvent( guiCEvent,guiSetStop );
mplSubRender=1;
wsSetBackgroundRGB( &appMPlayer.subWindow,appMPlayer.subR,appMPlayer.subG,appMPlayer.subB );
wsClearWindow( appMPlayer.subWindow );
@@ -216,3 +216,42 @@ void mplSetFileName( char * fname )
if ( guiIntfStruct.Filename ) free( guiIntfStruct.Filename );
guiIntfStruct.Filename=strdup( fname );
}
+
+void mplPrev( void )
+{
+ int stop = 0;
+ switch ( guiIntfStruct.StreamType )
+ {
+// case STREAMTYPE_FILE:
+ case STREAMTYPE_DVD:
+ if ( guiIntfStruct.Playing == 2 ) break;
+ if ( --guiIntfStruct.DVD.current_chapter == 0 )
+ {
+ guiIntfStruct.DVD.current_chapter=1;
+ if ( --guiIntfStruct.DVD.current_title <= 0 ) { guiIntfStruct.DVD.current_title=1; stop=1; }
+ }
+ guiIntfStruct.Track=guiIntfStruct.DVD.current_title;
+ if ( stop ) mplEventHandling( evStop,0 );
+ if ( guiIntfStruct.Playing == 1 ) mplEventHandling( evPlay,0 );
+ break;
+ }
+}
+
+void mplNext( void )
+{
+ int stop = 0;
+ switch ( guiIntfStruct.StreamType )
+ {
+// case STREAMTYPE_FILE:
+ case STREAMTYPE_DVD:
+ if ( guiIntfStruct.DVD.current_chapter++ == guiIntfStruct.DVD.chapters )
+ {
+ guiIntfStruct.DVD.current_chapter=1;
+ if ( ++guiIntfStruct.DVD.current_title > guiIntfStruct.DVD.titles ) { guiIntfStruct.DVD.current_title=guiIntfStruct.DVD.titles; stop=1; }
+ }
+ guiIntfStruct.Track=guiIntfStruct.DVD.current_title;
+ if ( stop ) mplEventHandling( evStop,0 );
+ if ( guiIntfStruct.Playing == 1 ) mplEventHandling( evPlay,0 );
+ break;
+ }
+}
diff --git a/Gui/mplayer/play.h b/Gui/mplayer/play.h
index 274cf6e2db..c8f805c134 100644
--- a/Gui/mplayer/play.h
+++ b/Gui/mplayer/play.h
@@ -13,6 +13,8 @@ extern void mplFullScreen( void );
extern void mplPlay( void );
extern void mplPause( void );
extern void mplState( void );
+extern void mplPrev( void );
+extern void mplNext( void );
extern void mplResizeToMovieSize( unsigned int width,unsigned int height );
extern void mplIncAudioBufDelay( void );