From ab08d0799f82a64d80a2ba124b5308b07681adc4 Mon Sep 17 00:00:00 2001 From: wm4 Date: Tue, 1 Sep 2015 14:18:51 +0200 Subject: fontselect: simplify get_fallback signature Apparently we only need the font family (and even that isn't used in all font providers). Drop the others. --- libass/ass_coretext.c | 9 ++++----- libass/ass_directwrite.c | 3 +-- libass/ass_fontconfig.c | 3 +-- libass/ass_fontselect.c | 7 +------ libass/ass_fontselect.h | 3 ++- 5 files changed, 9 insertions(+), 16 deletions(-) (limited to 'libass') diff --git a/libass/ass_coretext.c b/libass/ass_coretext.c index 00d4c45..96c503d 100644 --- a/libass/ass_coretext.c +++ b/libass/ass_coretext.c @@ -262,10 +262,9 @@ static void match_fonts(ASS_Library *lib, ASS_FontProvider *provider, } #endif -static char *get_fallback(void *priv, ASS_FontProviderMetaData *meta, - uint32_t codepoint) +static char *get_fallback(void *priv, const char *family, uint32_t codepoint) { - char *failed = meta->families[0]; + char *failed = family; CFStringRef name = CFStringCreateWithBytes( 0, (UInt8 *)failed, sizeof(failed), kCFStringEncodingUTF8, false); CTFontRef font = CTFontCreateWithName(name, 0, NULL); @@ -275,7 +274,7 @@ static char *get_fallback(void *priv, ASS_FontProviderMetaData *meta, kCFStringEncodingUTF32LE, false); CTFontRef fb = CTFontCreateForString(font, r, CFRangeMake(0, 1)); CFStringRef cffamily = CTFontCopyFamilyName(fb); - char *family = cfstr2buf(cffamily); + char *res_family = cfstr2buf(cffamily); CFRelease(name); CFRelease(font); @@ -283,7 +282,7 @@ static char *get_fallback(void *priv, ASS_FontProviderMetaData *meta, CFRelease(fb); CFRelease(cffamily); - return family; + return res_family; } static ASS_FontProviderFuncs coretext_callbacks = { diff --git a/libass/ass_directwrite.c b/libass/ass_directwrite.c index 1ef0616..099c1fe 100644 --- a/libass/ass_directwrite.c +++ b/libass/ass_directwrite.c @@ -374,8 +374,7 @@ static int encode_utf16(wchar_t *chars, uint32_t codepoint) } } -static char *get_fallback(void *priv, ASS_FontProviderMetaData *meta, - uint32_t codepoint) +static char *get_fallback(void *priv, const char *family, uint32_t codepoint) { HRESULT hr; ProviderPrivate *provider_priv = (ProviderPrivate *)priv; diff --git a/libass/ass_fontconfig.c b/libass/ass_fontconfig.c index e65e413..e97102b 100644 --- a/libass/ass_fontconfig.c +++ b/libass/ass_fontconfig.c @@ -167,8 +167,7 @@ static void cache_fallbacks(ProviderPrivate *fc) FcPatternDestroy(pat); } -static char *get_fallback(void *priv, ASS_FontProviderMetaData *meta, - uint32_t codepoint) +static char *get_fallback(void *priv, const char *family, uint32_t codepoint) { ProviderPrivate *fc = (ProviderPrivate *)priv; FcResult result; diff --git a/libass/ass_fontselect.c b/libass/ass_fontselect.c index ab40bd5..4adb146 100644 --- a/libass/ass_fontselect.c +++ b/libass/ass_fontselect.c @@ -636,13 +636,8 @@ char *ass_font_select(ASS_FontSelector *priv, ASS_Library *library, } if (!res && default_provider && default_provider->funcs.get_fallback) { - ASS_FontProviderMetaData meta; - meta.families = &family; - meta.weight = bold; - meta.slant = italic; - meta.width = 100; char *fallback_family = default_provider->funcs.get_fallback( - default_provider->priv, &meta, code); + default_provider->priv, family, code); if (fallback_family) { res = select_font(priv, library, fallback_family, bold, italic, diff --git a/libass/ass_fontselect.h b/libass/ass_fontselect.h index f420935..db8133a 100644 --- a/libass/ass_fontselect.h +++ b/libass/ass_fontselect.h @@ -123,12 +123,13 @@ typedef void (*SubstituteFontFunc)(void *priv, const char *name, * fallbacks. * * \param priv font provider private data + * \param family original font family name (try matching a similar font) * \param codepoint Unicode codepoint (UTF-32) * \return output font family, allocated with malloc(), must be freed * by caller. */ typedef char *(*GetFallbackFunc)(void *priv, - ASS_FontProviderMetaData *meta, + const char *family, uint32_t codepoint); typedef struct font_provider_funcs { -- cgit v1.2.3