summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-09-01 14:18:51 +0200
committerwm4 <wm4@nowhere>2015-09-01 14:18:51 +0200
commitab08d0799f82a64d80a2ba124b5308b07681adc4 (patch)
tree8f968fc8180f471aec5762f252fc6321b1912bae
parent888c644420b138875bf5e9f956d926b0be784eae (diff)
downloadlibass-ab08d0799f82a64d80a2ba124b5308b07681adc4.tar.bz2
libass-ab08d0799f82a64d80a2ba124b5308b07681adc4.tar.xz
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.
-rw-r--r--libass/ass_coretext.c9
-rw-r--r--libass/ass_directwrite.c3
-rw-r--r--libass/ass_fontconfig.c3
-rw-r--r--libass/ass_fontselect.c7
-rw-r--r--libass/ass_fontselect.h3
5 files changed, 9 insertions, 16 deletions
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 {