From 41d45011c24740abfcaae9ecf0ea3f1906c6f29e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Mon, 13 Jul 2009 01:12:24 +0300 Subject: Replace internal freetype font handling with VDR's font facilities. Skins that use fonts other than VDR's standard "Osd", "Fix", and "Sml" need to be adapted to use font names as understood by VDR's CreateFont() (Family:Style as of writing this) instead of filenames in their font attributes' names, to use '@' instead of ':' as the separator before sizes, and have fonts shipped with the skin installed and configured in fontconfig. Typically, install font files (if necessary) to a dir somewhere, run fc-cache(1) on the dir, replace for example font="SomeFont.ttf:22,85" with font="Some Font@22,85" or font="SomeFontBold.ttf:22,85" with font="Some Font:Bold@22,85" in the *.skin file. Also, in case the shipped fonts are derivatives of some existing ones, they may need to be properly renamed to something so they will be used instead of the original if it happens to be installed. (closes #36) --- xml/object.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'xml') diff --git a/xml/object.c b/xml/object.c index ec69fe7..421c00d 100644 --- a/xml/object.c +++ b/xml/object.c @@ -116,7 +116,7 @@ bool cxObject::ParseFontFace(const std::string &Text) { int size = 0, width = 0, pos; std::string face = Text; - if ((pos = face.find(':')) != -1) { + if ((pos = face.find('@')) != -1) { std::string s = face.substr(pos + 1); const char *p = s.c_str(); char *end; @@ -152,11 +152,7 @@ const cFont *cxObject::Font(void) const { const cFont *font; - if ((font = cText2SkinFont::Load(SkinPath() + "/" + mSkin->Name(), mFontFace, mFontSize, - mFontWidth)) != NULL) - return font; - - if ((font = cText2SkinFont::Load(SkinPath() + "/fonts", mFontFace, mFontSize, mFontWidth)) != NULL) + if ((font = cText2SkinFont::Load(mFontFace, mFontSize)) != NULL) return font; return cFont::GetFont(fontOsd); -- cgit v1.2.3