summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-05-14 23:14:23 +0200
committerwm4 <wm4@nowhere>2013-05-14 23:14:23 +0200
commitf562a41ca2abb7efe5fbb40954fb29f5db99f874 (patch)
treec9f19105377fcbb0ba7393e280b879ec139abf4b
parent3edb563b238b1c1d0fe1c58f89186655bbc439ad (diff)
downloadmpv-f562a41ca2abb7efe5fbb40954fb29f5db99f874.tar.bz2
mpv-f562a41ca2abb7efe5fbb40954fb29f5db99f874.tar.xz
command: simplify sub OSD update
We can just update all OSD elements in these cases. This way we can also reuse it for commands which need to update the OSD for other reasons.
-rw-r--r--core/command.c16
-rw-r--r--sub/sub.c8
-rw-r--r--sub/sub.h2
3 files changed, 12 insertions, 14 deletions
diff --git a/core/command.c b/core/command.c
index e9d3d0d679..17b9f654d3 100644
--- a/core/command.c
+++ b/core/command.c
@@ -1212,16 +1212,16 @@ static int mp_property_aspect(m_option_t *prop, int action, void *arg,
return M_PROPERTY_NOT_IMPLEMENTED;
}
-// For subtitle related properties using the generic option bridge.
+// For OSD and subtitle related properties using the generic option bridge.
// - Fail as unavailable if no video is active
// - Trigger OSD state update when property is set
-static int property_sub_helper(m_option_t *prop, int action, void *arg,
+static int property_osd_helper(m_option_t *prop, int action, void *arg,
MPContext *mpctx)
{
if (!mpctx->sh_video)
return M_PROPERTY_UNAVAILABLE;
if (action == M_PROPERTY_SET)
- osd_subs_changed(mpctx->osd);
+ osd_changed_all(mpctx->osd);
return mp_property_generic_option(prop, action, arg, mpctx);
}
@@ -1255,7 +1255,7 @@ static int mp_property_sub_pos(m_option_t *prop, int action, void *arg,
*(char **)arg = talloc_asprintf(NULL, "%d/100", sub_pos);
return M_PROPERTY_OK;
}
- return property_sub_helper(prop, action, arg, mpctx);
+ return property_osd_helper(prop, action, arg, mpctx);
}
/// Subtitle visibility (RW)
@@ -1478,11 +1478,11 @@ static const m_option_t mp_properties[] = {
{ "sub-visibility", mp_property_sub_visibility, CONF_TYPE_FLAG,
M_OPT_RANGE, 0, 1, NULL },
M_OPTION_PROPERTY_CUSTOM("sub-forced-only", mp_property_sub_forced_only),
- M_OPTION_PROPERTY_CUSTOM("sub-scale", property_sub_helper),
+ M_OPTION_PROPERTY_CUSTOM("sub-scale", property_osd_helper),
#ifdef CONFIG_ASS
- M_OPTION_PROPERTY_CUSTOM("ass-use-margins", property_sub_helper),
- M_OPTION_PROPERTY_CUSTOM("ass-vsfilter-aspect-compat", property_sub_helper),
- M_OPTION_PROPERTY_CUSTOM("ass-style-override", property_sub_helper),
+ M_OPTION_PROPERTY_CUSTOM("ass-use-margins", property_osd_helper),
+ M_OPTION_PROPERTY_CUSTOM("ass-vsfilter-aspect-compat", property_osd_helper),
+ M_OPTION_PROPERTY_CUSTOM("ass-style-override", property_osd_helper),
#endif
#ifdef CONFIG_TV
diff --git a/sub/sub.c b/sub/sub.c
index e9496f7853..7111f39434 100644
--- a/sub/sub.c
+++ b/sub/sub.c
@@ -313,10 +313,8 @@ void vo_osd_changed(int new_value)
osd->want_redraw = true;
}
-void osd_subs_changed(struct osd_state *osd)
+void osd_changed_all(struct osd_state *osd)
{
- for (int n = 0; n < MAX_OSD_PARTS; n++) {
- if (osd->objs[n]->is_sub)
- vo_osd_changed(n);
- }
+ for (int n = 0; n < MAX_OSD_PARTS; n++)
+ vo_osd_changed(n);
}
diff --git a/sub/sub.h b/sub/sub.h
index f062b3dddf..779d46c869 100644
--- a/sub/sub.h
+++ b/sub/sub.h
@@ -207,7 +207,7 @@ extern float sub_fps;
struct osd_state *osd_create(struct MPOpts *opts, struct ass_library *asslib);
void osd_set_text(struct osd_state *osd, const char *text);
void vo_osd_changed(int new_value);
-void osd_subs_changed(struct osd_state *osd);
+void osd_changed_all(struct osd_state *osd);
void osd_free(struct osd_state *osd);
enum mp_osd_draw_flags {