summaryrefslogtreecommitdiffstats
path: root/libass/ass_render_api.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-06-05 00:55:13 +0200
committerwm4 <wm4@nowhere>2014-06-05 01:15:14 +0200
commitdcecb9cba3ab2e9c1d082c9860aecb9e437e40f6 (patch)
treec366e02227a4814504f7911d0f6e2d48f5ec0ff4 /libass/ass_render_api.c
parent4a4e464d1dadce90bc91dce5448890e987019d89 (diff)
downloadlibass-dcecb9cba3ab2e9c1d082c9860aecb9e437e40f6.tar.bz2
libass-dcecb9cba3ab2e9c1d082c9860aecb9e437e40f6.tar.xz
Add a mechanism for selective style overrides
This adds 2 new API functions: ass_set_selective_style_override() ass_set_selective_style_override_enabled() They can be used to force dialog text to use a specific ASS_Style. It uses a fuzzy heuristic for that, and the quality of results may vary. It does style overriding selectively and tries not to override things that need explicit styling. The heuristic for that isn't set in stone either, and can change with future libass versions. Closes libass#88.
Diffstat (limited to 'libass/ass_render_api.c')
-rw-r--r--libass/ass_render_api.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/libass/ass_render_api.c b/libass/ass_render_api.c
index b06fc80..072b693 100644
--- a/libass/ass_render_api.c
+++ b/libass/ass_render_api.c
@@ -151,6 +151,24 @@ void ass_set_fonts(ASS_Renderer *priv, const char *default_font,
default_font, fc, config, update);
}
+void ass_set_selective_style_override_enabled(ASS_Renderer *priv, int enable)
+{
+ enable = !!enable;
+ if (priv->settings.selective_style_overrides != enable) {
+ priv->settings.selective_style_overrides = enable;
+ ass_reconfigure(priv);
+ }
+}
+
+void ass_set_selective_style_override(ASS_Renderer *priv, ASS_Style *style)
+{
+ ASS_Style *user_style = &priv->user_override_style;
+ free(user_style->FontName);
+ *user_style = *style;
+ user_style->FontName = strdup(user_style->FontName);
+ user_style->Name = "OverrideStyle"; // name insignificant
+}
+
int ass_fonts_update(ASS_Renderer *render_priv)
{
return fontconfig_update(render_priv->fontconfig_priv);