From 6c4ed3b1748e124382d86a2a53cdcd6954f1c069 Mon Sep 17 00:00:00 2001 From: pontscho Date: Thu, 5 Dec 2002 23:40:05 +0000 Subject: better 'Audio track' support, and one 10l git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8379 b3059339-0415-0410-9bf9-f77b7e298cf2 --- Gui/mplayer/gtk/menu.c | 42 ++++++++++++++++++++++++++++++++---------- Gui/mplayer/gtk/pl.c | 7 ++++--- 2 files changed, 36 insertions(+), 13 deletions(-) (limited to 'Gui/mplayer') diff --git a/Gui/mplayer/gtk/menu.c b/Gui/mplayer/gtk/menu.c index b2ed3461a9..2f34076e14 100644 --- a/Gui/mplayer/gtk/menu.c +++ b/Gui/mplayer/gtk/menu.c @@ -14,6 +14,7 @@ #include "../widgets.h" #include "../app.h" +#include "../../../libmpdemux/stream.h" #include "../../../libmpdemux/demuxer.h" void ActivateMenuItem( int Item ) @@ -414,7 +415,7 @@ GtkWidget * create_PopUpMenu( void ) } #endif - if ( guiIntfStruct.Playing ) +// if ( guiIntfStruct.Playing ) { AspectMenu=AddSubMenu( Menu,MSGTR_MENU_AspectRatio ); AddMenuItem( AspectMenu,MSGTR_MENU_Original,( 1 << 16 ) + evSetAspect ); @@ -423,18 +424,39 @@ GtkWidget * create_PopUpMenu( void ) AddMenuItem( AspectMenu,"2.35",( 4 << 16 ) + evSetAspect ); } - if ( guiIntfStruct.demuxer ) + if ( guiIntfStruct.demuxer && guiIntfStruct.StreamType != STREAMTYPE_DVD ) { int i,c = 0; - + for ( i=0;i < MAX_A_STREAMS;i++ ) - if ( ((demuxer_t *)guiIntfStruct.demuxer)->a_streams[i] ) - { - char tmp[32]; - snprintf( tmp,32,"Track %d",i ); - if ( !c ) { SubMenu=AddSubMenu( Menu, "Audio track" ); c=1; } - AddMenuItem( SubMenu,tmp,( i << 16 ) + evSetAudio ); - } + if ( ((demuxer_t *)guiIntfStruct.demuxer)->a_streams[i] ) c++; + + if ( c > 1 ) + { + SubMenu=AddSubMenu( Menu,MSGTR_MENU_AudioTrack ); + for ( i=0;i < MAX_A_STREAMS;i++ ) + if ( ((demuxer_t *)guiIntfStruct.demuxer)->a_streams[i] ) + { + char tmp[32]; + snprintf( tmp,32,MSGTR_MENU_Track,i ); + AddMenuItem( SubMenu,tmp,( i << 16 ) + evSetAudio ); + } + } + + for ( c=0,i=0;i < MAX_V_STREAMS;i++ ) + if ( ((demuxer_t *)guiIntfStruct.demuxer)->v_streams[i] ) c++; + + if ( c > 1 ) + { + SubMenu=AddSubMenu( Menu,MSGTR_MENU_VideoTrack ); + for ( i=0;i < MAX_V_STREAMS;i++ ) + if ( ((demuxer_t *)guiIntfStruct.demuxer)->v_streams[i] ) + { + char tmp[32]; + snprintf( tmp,32,MSGTR_MENU_Track,i ); + AddMenuItem( SubMenu,tmp,( i << 16 ) + evSetVideo ); + } + } } AddSeparator( Menu ); diff --git a/Gui/mplayer/gtk/pl.c b/Gui/mplayer/gtk/pl.c index a8471ea179..a6fc939c8f 100644 --- a/Gui/mplayer/gtk/pl.c +++ b/Gui/mplayer/gtk/pl.c @@ -223,9 +223,10 @@ static void plButtonReleased( GtkButton * button,gpointer user_data ) } if ( plCurrent ) { - guiSetDF( guiIntfStruct.Filename,plCurrent->path,plCurrent->name ); - guiIntfStruct.FilenameChanged=1; - guiIntfStruct.StreamType=STREAMTYPE_FILE; + mplSetFileName( plCurrent->path,plCurrent->name,STREAMTYPE_FILE ); +// guiSetDF( guiIntfStruct.Filename,plCurrent->path,plCurrent->name ); +// guiIntfStruct.FilenameChanged=1; +// guiIntfStruct.StreamType=STREAMTYPE_FILE; } } case 0: // cancel -- cgit v1.2.3