summaryrefslogtreecommitdiffstats
path: root/mplayer.c
diff options
context:
space:
mode:
authorkmkaplan <kmkaplan@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-10-17 15:44:41 +0000
committerkmkaplan <kmkaplan@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-10-17 15:44:41 +0000
commit43ef114abe41a1d76db1054ea214556c8f561608 (patch)
tree6a2806621eb3ec289dac2d5a9c038c2106328040 /mplayer.c
parentf820293e0c1a6ad6855de28a490a91497bb2ebcc (diff)
downloadmpv-43ef114abe41a1d76db1054ea214556c8f561608.tar.bz2
mpv-43ef114abe41a1d76db1054ea214556c8f561608.tar.xz
Mplayer can switch between subtitles of different languages during
playing by press 'j', based on a patch by <hephooey@fastmail.fm>. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7781 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'mplayer.c')
-rw-r--r--mplayer.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/mplayer.c b/mplayer.c
index bb3500ecc9..8390141274 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -517,6 +517,7 @@ int osd_last_pts=-303;
int osd_show_av_delay = 0;
int osd_show_sub_delay = 0;
int osd_show_sub_visibility = 0;
+int osd_show_vobsub_changed = 0;
int rtc_fd=-1;
@@ -2207,6 +2208,18 @@ if (stream->type==STREAMTYPE_DVDNAV && dvd_nav_still)
vo_osd_changed(OSDTYPE_SUBTITLE);
break;
}
+ case MP_CMD_VOBSUB_LANG:
+ {
+ int new_id = vobsub_id + 1;
+ if (vobsub_id < 0)
+ new_id = 0;
+ if ((unsigned int) new_id >= vobsub_get_indexes_count(vo_vobsub))
+ new_id = -1;
+ if(new_id != vobsub_id)
+ osd_show_vobsub_changed = 9;
+ vobsub_id = new_id;
+ break;
+ }
case MP_CMD_SCREENSHOT :
if(vo_config_count) video_out->control(VOCTRL_SCREENSHOT, NULL);
break;
@@ -2575,6 +2588,13 @@ if(rel_seek_secs || abs_seek_pos){
sprintf(osd_text_tmp, "Subtitles: %sabled", sub_visibility?"en":"dis");
osd_show_sub_visibility--;
} else
+ if (osd_show_vobsub_changed) {
+ const char *language = "none";
+ if (vobsub_id >= 0)
+ language = vobsub_get_id(vo_vobsub, (unsigned int) vobsub_id);
+ sprintf(osd_text_tmp, "Subtitles: (%d) %s", vobsub_id, language ? language : "unknown");
+ osd_show_vobsub_changed--;
+ } else
if (osd_show_sub_delay) {
sprintf(osd_text_tmp, "Sub delay: %d ms",(int)(sub_delay*1000));
osd_show_sub_delay--;