summaryrefslogtreecommitdiffstats
path: root/Gui/mplayer
diff options
context:
space:
mode:
authorpontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-06-03 15:06:32 +0000
committerpontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-06-03 15:06:32 +0000
commitaf8bd4f39477073aae0d23e5efe0fad524234f50 (patch)
treef3efb1fde3975d95911a34b8887273978cb60bef /Gui/mplayer
parent8d36b5de7865af8c6d355abe2854af781e36488e (diff)
downloadmpv-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.c27
-rw-r--r--Gui/mplayer/mplayer.c7
-rw-r--r--Gui/mplayer/mw.h50
-rw-r--r--Gui/mplayer/play.c27
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 );
}