diff options
author | pontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-06-03 15:06:32 +0000 |
---|---|---|
committer | pontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-06-03 15:06:32 +0000 |
commit | af8bd4f39477073aae0d23e5efe0fad524234f50 (patch) | |
tree | f3efb1fde3975d95911a34b8887273978cb60bef /Gui/mplayer | |
parent | 8d36b5de7865af8c6d355abe2854af781e36488e (diff) | |
download | mpv-af8bd4f39477073aae0d23e5efe0fad524234f50.tar.bz2 mpv-af8bd4f39477073aae0d23e5efe0fad524234f50.tar.xz |
add VCD support for GUI
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@6281 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'Gui/mplayer')
-rw-r--r-- | Gui/mplayer/gtk/menu.c | 27 | ||||
-rw-r--r-- | Gui/mplayer/mplayer.c | 7 | ||||
-rw-r--r-- | Gui/mplayer/mw.h | 50 | ||||
-rw-r--r-- | Gui/mplayer/play.c | 27 |
4 files changed, 96 insertions, 15 deletions
diff --git a/Gui/mplayer/gtk/menu.c b/Gui/mplayer/gtk/menu.c index b5738934ba..641fc61746 100644 --- a/Gui/mplayer/gtk/menu.c +++ b/Gui/mplayer/gtk/menu.c @@ -254,6 +254,9 @@ GtkWidget * DVDChapterMenu; GtkWidget * DVDAudioLanguageMenu; GtkWidget * DVDSubtitleLanguageMenu; +GtkWidget * VCDSubMenu; +GtkWidget * VCDTitleMenu; + GtkWidget * create_PopUpMenu( void ) { GtkWidget * Menu = NULL; @@ -266,7 +269,9 @@ GtkWidget * create_PopUpMenu( void ) AddSeparator( Menu ); SubMenu=AddSubMenu( Menu,MSGTR_MENU_Open ); AddMenuItem( SubMenu,MSGTR_MENU_PlayFile" ", evLoadPlay ); - AddMenuItem( SubMenu,MSGTR_MENU_PlayVCD, evNone ); +#ifdef HAVE_VCD + AddMenuItem( SubMenu,MSGTR_MENU_PlayVCD, evPlayVCD ); +#endif #ifdef USE_DVDREAD AddMenuItem( SubMenu,MSGTR_MENU_PlayDVD, evPlayDVD ); #endif @@ -287,6 +292,26 @@ GtkWidget * create_PopUpMenu( void ) AddMenuItem( SubMenu,MSGTR_MENU_NormalSize" ", evNormalSize ); AddMenuItem( SubMenu,MSGTR_MENU_DoubleSize, evDoubleSize ); AddMenuItem( SubMenu,MSGTR_MENU_FullScreen, evFullScreen ); +#ifdef HAVE_VCD + VCDSubMenu=AddSubMenu( Menu,MSGTR_MENU_VCD ); + AddMenuItem( VCDSubMenu,MSGTR_MENU_PlayDisc,evPlayVCD ); + AddSeparator( VCDSubMenu ); + VCDTitleMenu=AddSubMenu( VCDSubMenu,MSGTR_MENU_Titles ); + if ( guiIntfStruct.VCDTracks ) + { + char tmp[32]; int i; + for ( i=0;i < guiIntfStruct.VCDTracks;i++ ) + { + sprintf( tmp,MSGTR_MENU_Title,i+1 ); + AddMenuItem( VCDTitleMenu,tmp,( (i+1) << 16 ) + evSetVCDTrack ); + } + } + else + { + MenuItem=AddMenuItem( VCDTitleMenu,MSGTR_MENU_None,evNone ); + gtk_widget_set_sensitive( MenuItem,FALSE ); + } +#endif #ifdef USE_DVDREAD DVDSubMenu=AddSubMenu( Menu,MSGTR_MENU_DVD ); AddMenuItem( DVDSubMenu,MSGTR_MENU_PlayDisc" ", evPlayDVD ); diff --git a/Gui/mplayer/mplayer.c b/Gui/mplayer/mplayer.c index bddcbec4ee..4286841780 100644 --- a/Gui/mplayer/mplayer.c +++ b/Gui/mplayer/mplayer.c @@ -71,8 +71,9 @@ void mplInit( void * disp ) vo_setwindow( appMPlayer.subWindow.WindowID, appMPlayer.subWindow.wGC ); - i=wsHideFrame|wsMaxSize|wsHideWindow; - if ( appMPlayer.mainDecoration ) i=wsShowFrame|wsMaxSize|wsHideWindow; +// 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| @@ -114,6 +115,8 @@ void mplInit( void * disp ) guiIntfStruct.Playing=0; + if ( !appMPlayer.mainDecoration ) wsWindowDecoration( &appMPlayer.mainWindow,0 ); + wsVisibleWindow( &appMPlayer.mainWindow,wsShowWindow ); wsVisibleWindow( &appMPlayer.subWindow,wsShowWindow ); } diff --git a/Gui/mplayer/mw.h b/Gui/mplayer/mw.h index 4f0263e875..9d5da0a09a 100644 --- a/Gui/mplayer/mw.h +++ b/Gui/mplayer/mw.h @@ -35,6 +35,11 @@ inline void TranslateFilename( int c,char * tmp ) else strcat( tmp,"no chapter" ); break; #endif +#ifdef HAVE_VCD + case STREAMTYPE_VCD: + sprintf( tmp,"VCD track %d",guiIntfStruct.Track ); + break; +#endif default: strcpy( tmp,"no media opened" ); } if ( c ) @@ -102,7 +107,9 @@ calclengthmmmmss: switch ( guiIntfStruct.StreamType ) { case STREAMTYPE_FILE: strcat( trbuf,"f" ); break; +#ifdef HAVE_VCD case STREAMTYPE_VCD: strcat( trbuf,"v" ); break; +#endif case STREAMTYPE_STREAM: strcat( trbuf,"u" ); break; #ifdef USE_DVDREAD case STREAMTYPE_DVD: strcat( trbuf,"d" ); break; @@ -200,6 +207,8 @@ extern void exit_player(char* how); extern int audio_id; extern int dvdsub_id; extern char * dvd_device; +extern int vcd_track; +extern char * cdrom_device; void mplEventHandling( int msg,float param ) { @@ -212,6 +221,13 @@ void mplEventHandling( int msg,float param ) exit_player( "Exit" ); break; +#ifdef HAVE_VCD + case evSetVCDTrack: + guiIntfStruct.Track=(int)param; + case evPlayVCD: + guiIntfStruct.StreamType=STREAMTYPE_VCD; + goto play; +#endif #ifdef USE_DVDREAD case evPlayDVD: guiIntfStruct.DVD.current_title=1; @@ -222,18 +238,41 @@ play_dvd_2: #endif case evPlay: case evPlaySwitchToPause: +play: mplMainAutoPlay=0; if ( ( msg == evPlaySwitchToPause )&&( guiIntfStruct.Playing == 1 ) ) goto NoPause; + vcd_track=0; + dvd_title=0; + switch ( guiIntfStruct.StreamType ) { - case STREAMTYPE_STREAM: + case STREAMTYPE_FILE: + guiGetEvent( guiClearStruct,guiALL ); + break; +#ifdef HAVE_VCD case STREAMTYPE_VCD: - case STREAMTYPE_FILE: - dvd_title=0; - break; + guiGetEvent( guiClearStruct,guiALL - guiVCD ); + if ( !cdrom_device ) + { + cdrom_device=DEFAULT_CDROM_DEVICE; + guiSetFilename( guiIntfStruct.Filename,cdrom_device ); + } + if ( guiIntfStruct.Playing != 2 ) + { + if ( !guiIntfStruct.Track ) + { + if ( guiIntfStruct.VCDTracks == 1 ) guiIntfStruct.Track=1; + else guiIntfStruct.Track=2; + } + vcd_track=guiIntfStruct.Track; + guiIntfStruct.DiskChanged=1; + } + break; +#endif #ifdef USE_DVDREAD case STREAMTYPE_DVD: + guiGetEvent( guiClearStruct,guiALL - guiDVD ); if ( !dvd_device ) { dvd_device=DEFAULT_DVD_DEVICE; @@ -244,7 +283,7 @@ play_dvd_2: dvd_title=guiIntfStruct.DVD.current_title; dvd_angle=guiIntfStruct.DVD.current_angle; dvd_chapter=guiIntfStruct.DVD.current_chapter; - guiIntfStruct.DVDChanged=1; + guiIntfStruct.DiskChanged=1; } break; #endif @@ -287,6 +326,7 @@ NoPause: case evLoadPlay: mplMainAutoPlay=1; +// guiIntfStruct.StreamType=STREAMTYPE_FILE; case evLoad: mplMainRender=1; gtkShow( evLoad,NULL ); diff --git a/Gui/mplayer/play.c b/Gui/mplayer/play.c index 436b102b7a..29490efbbf 100644 --- a/Gui/mplayer/play.c +++ b/Gui/mplayer/play.c @@ -230,31 +230,38 @@ void mplSetFileName( char * fname ) void mplPrev( void ) { int stop = 0; + + if ( guiIntfStruct.Playing == 2 ) return; switch ( guiIntfStruct.StreamType ) { -// case STREAMTYPE_FILE: #ifdef USE_DVDREAD 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; #endif +#ifdef HAVE_VCD + case STREAMTYPE_VCD: + if ( --guiIntfStruct.Track == 0 ) { guiIntfStruct.Track=1; stop=1; } + break; +#endif + default: return; } + if ( stop ) mplEventHandling( evStop,0 ); + if ( guiIntfStruct.Playing == 1 ) mplEventHandling( evPlay,0 ); } void mplNext( void ) { int stop = 0; + + if ( guiIntfStruct.Playing == 2 ) return; switch ( guiIntfStruct.StreamType ) { -// case STREAMTYPE_FILE: #ifdef USE_DVDREAD case STREAMTYPE_DVD: if ( guiIntfStruct.DVD.current_chapter++ == guiIntfStruct.DVD.chapters ) @@ -263,9 +270,15 @@ void mplNext( void ) 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; #endif +#ifdef HAVE_VCD + case STREAMTYPE_VCD: + if ( ++guiIntfStruct.Track > guiIntfStruct.VCDTracks ) { guiIntfStruct.Track=guiIntfStruct.VCDTracks; stop=1; } + break; +#endif + default: return; } + if ( stop ) mplEventHandling( evStop,0 ); + if ( guiIntfStruct.Playing == 1 ) mplEventHandling( evPlay,0 ); } |