summaryrefslogtreecommitdiffstats
path: root/Gui/mplayer/mw.c
diff options
context:
space:
mode:
Diffstat (limited to 'Gui/mplayer/mw.c')
-rw-r--r--Gui/mplayer/mw.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/Gui/mplayer/mw.c b/Gui/mplayer/mw.c
index 6a31222af7..811d0998c3 100644
--- a/Gui/mplayer/mw.c
+++ b/Gui/mplayer/mw.c
@@ -32,6 +32,12 @@
#include "widgets.h"
extern mixer_t mixer; // mixer from mplayer.c
+extern int global_sub_size;
+extern int global_sub_pos;
+extern int global_sub_indices[];
+extern int sub_source(void);
+#define SUB_SOURCE_VOBSUB 1
+#define SUB_SOURCE_DEMUX 2
extern unsigned int GetTimerMS( void );
@@ -110,6 +116,24 @@ void mplEventHandling( int msg,float param )
video_id=iparam;
goto play;
+ case evSetSubtitle:
+ if ( !guiIntfStruct.demuxer || global_sub_pos == iparam ) break;
+ global_sub_pos = iparam;
+ if ( global_sub_pos >= 0 )
+ switch ( sub_source() )
+ {
+ case SUB_SOURCE_VOBSUB:
+ vobsub_id = global_sub_pos - global_sub_indices[SUB_SOURCE_VOBSUB];
+ goto play;
+ case SUB_SOURCE_DEMUX:
+ vobsub_id = -1;
+ dvdsub_id = global_sub_pos - global_sub_indices[SUB_SOURCE_DEMUX];
+ goto play;
+ }
+ vobsub_id = -1;
+ dvdsub_id = -2;
+ goto play;
+
#ifdef HAVE_VCD
case evSetVCDTrack:
guiIntfStruct.Track=iparam;