From 21ab30f2ffbc71af46c0e64824e0596f14ddb424 Mon Sep 17 00:00:00 2001 From: greg Date: Fri, 19 Jun 2009 06:04:45 +0200 Subject: ass_set_fonts: optionally pass fontconfig config path Optionally pass a fontconfig config file to the fontconfig initialisation. This changes the public API. --- libass/ass_fontconfig.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'libass/ass_fontconfig.c') diff --git a/libass/ass_fontconfig.c b/libass/ass_fontconfig.c index 0a2eb3f6..54479cf2 100644 --- a/libass/ass_fontconfig.c +++ b/libass/ass_fontconfig.c @@ -427,7 +427,7 @@ static void process_fontdata(fc_instance_t *priv, ass_library_t *library, */ fc_instance_t *fontconfig_init(ass_library_t *library, FT_Library ftlibrary, const char *family, - const char *path, int fc) + const char *path, int fc, const char *config) { int rc; fc_instance_t *priv = calloc(1, sizeof(fc_instance_t)); @@ -440,11 +440,19 @@ fc_instance_t *fontconfig_init(ass_library_t *library, goto exit; } - rc = FcInit(); - assert(rc); + if (config) { + priv->config = FcConfigCreate(); + rc = FcConfigParseAndLoad(priv->config, (unsigned char *)config, + FcTrue); + FcConfigBuildFonts(priv->config); + FcConfigSetCurrent(priv->config); + } else { + rc = FcInit(); + assert(rc); + priv->config = FcConfigGetCurrent(); + } - priv->config = FcConfigGetCurrent(); - if (!priv->config) { + if (!rc || !priv->config) { mp_msg(MSGT_ASS, MSGL_FATAL, MSGTR_LIBASS_FcInitLoadConfigAndFontsFailed); goto exit; -- cgit v1.2.3