From a8260204c3e66fe12173f7232feb90ece61a59e8 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Thu, 31 Dec 2009 15:21:51 +0100 Subject: [PATCH] Added cFont::FontName() and cFont::Size() --- CONTRIBUTORS | 1 + HISTORY | 3 ++- font.c | 8 +++++++- font.h | 7 ++++++- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index a70cec8a..d4855e11 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1362,6 +1362,7 @@ Andreas Regel groups for adding some missing 'const' statements to cBitmap for making cDevice::AddPid() store the stream type of the given pid + for adding cFont::FontName() and cFont::Size() Thomas Bergwinkl for fixing the validity check for channel IDs, because some providers use TIDs diff --git a/HISTORY b/HISTORY index 3d424bbe..56004cd1 100644 --- a/HISTORY +++ b/HISTORY @@ -6197,7 +6197,7 @@ Video Disk Recorder Revision History - Fixed the default value for "Pause key handling" in the MANUAL (reported by Diego Pierotto). -2009-12-25: Version 1.7.11 +2009-12-31: Version 1.7.11 - Fixed resetting the file size when regenerating the index file. - The new function cDevice::PatPmtParser() can be used in derived devices to access @@ -6232,3 +6232,4 @@ Video Disk Recorder Revision History that have some encrypted components that VDR doesn't use). - cDevice::AddPid() now stores the stream type of the given pid (thanks to Andreas Regel). +- Added cFont::FontName() and cFont::Size() (thanks to Andreas Regel). diff --git a/font.c b/font.c index 8c271588..515017ba 100644 --- a/font.c +++ b/font.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: font.c 2.3 2009/12/05 16:19:00 kls Exp $ + * $Id: font.c 2.4 2009/12/31 14:49:59 kls Exp $ */ #include "font.h" @@ -93,6 +93,8 @@ void cGlyph::SetKerningCache(uint PrevSym, int Kerning) class cFreetypeFont : public cFont { private: + cString fontName; + int size; int height; int bottom; FT_Library library; ///< Handle to library @@ -105,6 +107,8 @@ private: public: cFreetypeFont(const char *Name, int CharHeight, int CharWidth = 0); virtual ~cFreetypeFont(); + virtual const char *FontName(void) const { return fontName; } + virtual int Size(void) const { return size; } virtual int Width(uint c) const; virtual int Width(const char *s) const; virtual int Height(void) const { return height; } @@ -113,6 +117,8 @@ public: cFreetypeFont::cFreetypeFont(const char *Name, int CharHeight, int CharWidth) { + fontName = Name; + size = CharHeight; height = 0; bottom = 0; int error = FT_Init_FreeType(&library); diff --git a/font.h b/font.h index eadf88c1..449b429f 100644 --- a/font.h +++ b/font.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: font.h 2.2 2009/05/23 10:10:40 kls Exp $ + * $Id: font.h 2.3 2009/12/31 14:48:25 kls Exp $ */ #ifndef __FONT_H @@ -38,6 +38,11 @@ private: static cFont *fonts[]; public: virtual ~cFont() {} + virtual const char *FontName(void) const { return ""; } + ///< Returns the font name. + virtual int Size(void) const { return Height(); } + ///< Returns the original size as requested when the font was created. + ///< This may be different than the actual height. virtual int Width(uint c) const = 0; ///< Returns the width of the given character in pixel. virtual int Width(const char *s) const = 0;