summaryrefslogtreecommitdiffstats
path: root/Gui
diff options
context:
space:
mode:
authorpontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-08-30 19:11:03 +0000
committerpontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-08-30 19:11:03 +0000
commit25f8352ffe541d6548b0943164d3177c984d6368 (patch)
treef58db5380a728179e729e3a547321b04dbc3bef8 /Gui
parent7caf8770b8e61b860b0027e31e419aaa32a13475 (diff)
downloadmpv-25f8352ffe541d6548b0943164d3177c984d6368.tar.bz2
mpv-25f8352ffe541d6548b0943164d3177c984d6368.tar.xz
add subtitle dropping support
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7170 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'Gui')
-rw-r--r--Gui/events.c3
-rw-r--r--Gui/events.h2
-rw-r--r--Gui/interface.c31
-rw-r--r--Gui/mplayer/gtk/menu.c1
-rw-r--r--Gui/mplayer/gtk/pl.c2
-rw-r--r--Gui/mplayer/mw.h4
6 files changed, 37 insertions, 6 deletions
diff --git a/Gui/events.c b/Gui/events.c
index 5e61b64ea5..8101eaf427 100644
--- a/Gui/events.c
+++ b/Gui/events.c
@@ -47,7 +47,8 @@ evName evNames[] =
{ evPlayDVD, "evPlayDVD" },
{ evPlayVCD, "evPlayVCD" },
{ evSetURL, "evSetURL" },
- { evLoadAudioFile, "evLoadAudioFile" }
+ { evLoadAudioFile, "evLoadAudioFile" },
+ { evDropSubtitle, "evDropSubtitle" }
};
int evBoxs = sizeof( evNames ) / sizeof( evName );
diff --git a/Gui/events.h b/Gui/events.h
index f8f400260e..a75a5223d9 100644
--- a/Gui/events.h
+++ b/Gui/events.h
@@ -47,10 +47,12 @@
#define evHelp 37
#define evLoadSubtitle 38
+#define evDropSubtitle 43
#define evPlayDVD 39
#define evPlayVCD 40
#define evPlayNetwork 41
#define evLoadAudioFile 42
+// 44 ...
#define evExit 1000
diff --git a/Gui/interface.c b/Gui/interface.c
index 2ee5c5fe54..9b08abf16e 100644
--- a/Gui/interface.c
+++ b/Gui/interface.c
@@ -20,6 +20,7 @@
#include "../libvo/x11_common.h"
#include "../libvo/video_out.h"
#include "../libvo/font_load.h"
+#include "../libvo/sub.h"
#include "../input/input.h"
#include "../libao2/audio_out.h"
#include "../mixer.h"
@@ -239,6 +240,8 @@ void guiLoadFont( void )
#endif
#ifdef USE_SUB
+extern mp_osd_obj_t* vo_osd_list;
+
void guiLoadSubtitle( char * name )
{
if ( guiIntfStruct.Playing == 0 )
@@ -248,14 +251,34 @@ void guiLoadSubtitle( char * name )
}
if ( subtitles )
{
+ mp_msg( MSGT_GPLAYER,MSGL_INFO,"[gui] Delete subtitles.\n" );
sub_free( subtitles );
- if ( sub_name ) free( sub_name );
+ subtitles=NULL;
sub_name=NULL;
vo_sub=NULL;
- subtitles=NULL;
+ if ( vo_osd_list )
+ {
+ int len;
+ mp_osd_obj_t * osd = vo_osd_list;
+ while ( osd )
+ {
+ if ( osd->type == OSDTYPE_SUBTITLE ) break;
+ osd=osd->next;
+ }
+ if ( osd && osd->flags&OSDFLAG_VISIBLE )
+ {
+ len=osd->stride * ( osd->bbox.y2 - osd->bbox.y1 );
+ memset( osd->bitmap_buffer,0,len );
+ memset( osd->alpha_buffer,0,len );
+ }
+ }
+ }
+ if ( name )
+ {
+ mp_msg( MSGT_GPLAYER,MSGL_INFO,"[gui] Delete Load subtitle: %s\n",name );
+ sub_name=gstrdup( name );
+ subtitles=sub_read_file( sub_name,guiIntfStruct.FPS );
}
- sub_name=gstrdup( name );
- subtitles=sub_read_file( sub_name,guiIntfStruct.FPS );
}
#endif
diff --git a/Gui/mplayer/gtk/menu.c b/Gui/mplayer/gtk/menu.c
index 8d1db72f2d..f78ecc3dee 100644
--- a/Gui/mplayer/gtk/menu.c
+++ b/Gui/mplayer/gtk/menu.c
@@ -282,6 +282,7 @@ GtkWidget * create_PopUpMenu( void )
#endif
AddMenuItem( SubMenu,MSGTR_MENU_PlayURL, evSetURL );
AddMenuItem( SubMenu,MSGTR_MENU_LoadSubtitle" ", evLoadSubtitle );
+ AddMenuItem( SubMenu,MSGTR_MENU_DropSubtitle,evDropSubtitle );
AddMenuItem( SubMenu,MSGTR_MENU_LoadExternAudioFile, evLoadAudioFile );
SubMenu=AddSubMenu( Menu,MSGTR_MENU_Playing );
AddMenuItem( SubMenu,MSGTR_MENU_Play" ", evPlay );
diff --git a/Gui/mplayer/gtk/pl.c b/Gui/mplayer/gtk/pl.c
index 4471251bd6..bfaab179e8 100644
--- a/Gui/mplayer/gtk/pl.c
+++ b/Gui/mplayer/gtk/pl.c
@@ -638,7 +638,7 @@ GtkWidget * create_PlayList( void )
GTK_WIDGET_UNSET_FLAGS( Ok,GTK_CAN_FOCUS );
// gtk_widget_add_accelerator( Ok,"released",accel_group,GDK_Return,0,GTK_ACCEL_VISIBLE );
- Cancel=gtk_button_new_with_label( "Cancel" );
+ Cancel=gtk_button_new_with_label( MSGTR_Cancel );
gtk_widget_ref( Cancel );
gtk_object_set_data_full( GTK_OBJECT( PlayList ),"Cancel",Cancel,(GtkDestroyNotify)gtk_widget_unref );
gtk_widget_show( Cancel );
diff --git a/Gui/mplayer/mw.h b/Gui/mplayer/mw.h
index 15f4146839..7500413456 100644
--- a/Gui/mplayer/mw.h
+++ b/Gui/mplayer/mw.h
@@ -356,6 +356,10 @@ NoPause:
gtkShow( evLoad,NULL );
break;
case evLoadSubtitle: gtkShow( evLoadSubtitle,NULL ); break;
+ case evDropSubtitle:
+ gfree( (void **)&guiIntfStruct.Subtitlename );
+ guiLoadSubtitle( NULL );
+ break;
case evLoadAudioFile: gtkShow( evLoadAudioFile,NULL ); break;
case evPrev: mplPrev(); break;
case evNext: mplNext(); break;