1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
|
#! /bin/sh /usr/share/dpatch/dpatch-run
## 90_tvonscreen-1.0.141-1.5.3.dpatch by Thomas Günther <tom@toms-cafe.de>
## http://toms-cafe.de/vdr/download/tvonscreen-1.0.141-1.5.3.diff
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Changes for VDR >= 1.5.3.
@DPATCH@
diff -Naurp tvonscreen-1.0.141/anyfont.c tvonscreen-1.0.141-vdr153/anyfont.c
--- tvonscreen-1.0.141/anyfont.c 2004-07-08 13:54:56.000000000 +0000
+++ tvonscreen-1.0.141-vdr153/anyfont.c 2007-09-14 12:46:58.000000000 +0000
@@ -10,20 +10,36 @@
#include "anyfont.h"
#include "magazine.h"
-#if VDRVERSNUM >= 10307
+#if VDRVERSNUM >= 10503
+anyFont::anyFont(cOsd *_osd,int fheight,int transparent)
+#elif VDRVERSNUM >= 10307
anyFont::anyFont(cOsd *_osd,const cFont::tPixelData *fd,int fheight,int transparent)
#else
anyFont::anyFont(cOsdBase *_osd,const cFont::tPixelData *fd,int fheight,int transparent)
#endif
{
osd=_osd;
+#if VDRVERSNUM >= 10503
+#if VDRVERSNUM >= 10504
+ Font = cFont::CreateFont(Setup.FontOsd, fheight);
+#else
+ Font = new cFreetypeFont(*AddDirectory(FONTDIR, Setup.FontOsd, fheight);
+#endif
+ if (!Font || !Font->Height())
+ Font = cFont::GetFont(fontSml);
+#else
FontData=fd;
FontHeight=fheight;
+#endif
trans=transparent;
}
int anyFont::Height(void)
{
+#if VDRVERSNUM >= 10503
+ return Font->Height();
+#else
return FontHeight-2-2;
+#endif
}
int anyFont::Width(const char *txt)
{
@@ -39,21 +55,29 @@ int anyFont::LargeWidth(const char *txt)
}
int anyFont::Width(char c)
{
+#if VDRVERSNUM >= 10503
+ return Font->Width(c);
+#else
if ((int)FontData[(((unsigned char)c)-32)*(FontHeight)]>100)
{
mzlog(1," big letter error %c: %d",c,(int)FontData[(((unsigned char)c)-32)*(FontHeight)]);
return 100;
}
return (int)FontData[(((unsigned char)c)-32)*(FontHeight)];
+#endif
}
int anyFont::LargeWidth(char c)
{
+#if VDRVERSNUM >= 10503
+ return Font->Width(c);
+#else
if ((int)FontData[(((unsigned char)c)-32)*(FontHeight)]>100)
{
mzlog(1," big letter error %c: %d",c,(int)FontData[(((unsigned char)c)-32)*(FontHeight)]);
return 100;
}
return (int)FontData[(((unsigned char)c)-32)*(FontHeight)]*2;
+#endif
}
#if VDRVERSNUM >= 10307
int anyFont::Text(int x, int y, const char *txt, tColor fg, tColor bg)
@@ -61,6 +85,10 @@ int anyFont::Text(int x, int y, const ch
int anyFont::Text(int x, int y, const char *txt, eDvbColor fg, eDvbColor bg, tWindowHandle wh)
#endif
{
+#if VDRVERSNUM >= 10503
+ osd->DrawText(x, y, txt, fg, trans ? clrTransparent : bg, Font);
+ return x += Font->Width(txt);
+#else
unsigned int pxl;
int row,col;
@@ -85,6 +113,7 @@ int anyFont::Text(int x, int y, const ch
x += Width(*txt++);
}
return x;
+#endif
}
#if VDRVERSNUM >= 10307
int anyFont::LargeText(int x, int y, const char *txt, tColor fg, tColor bg)
@@ -92,6 +121,10 @@ int anyFont::LargeText(int x, int y, con
int anyFont::LargeText(int x, int y, const char *txt, eDvbColor fg, eDvbColor bg, tWindowHandle wh)
#endif
{
+#if VDRVERSNUM >= 10503
+ osd->DrawText(x, y, txt, fg, trans ? clrTransparent : bg, Font);
+ return x + Font->Width(txt);
+#else
unsigned int pxl;
int row,col;
@@ -116,6 +149,7 @@ int anyFont::LargeText(int x, int y, con
x += LargeWidth(*txt++);
}
return x;
+#endif
}
#if VDRVERSNUM >= 10307
int anyFont::Text(int x, int y, int w, int h, const char *txt, tColor fg, tColor bg)
diff -Naurp tvonscreen-1.0.141/anyfont.h tvonscreen-1.0.141-vdr153/anyfont.h
--- tvonscreen-1.0.141/anyfont.h 2004-07-08 13:54:56.000000000 +0000
+++ tvonscreen-1.0.141-vdr153/anyfont.h 2007-09-14 12:47:38.000000000 +0000
@@ -19,11 +19,17 @@ class anyFont
#else
cOsdBase *osd;
#endif
+#if VDRVERSNUM >= 10503
+ const cFont *Font;
+#else
const cFont::tPixelData *FontData;
int FontHeight;
+#endif
int trans;
public:
-#if VDRVERSNUM >= 10307
+#if VDRVERSNUM >= 10503
+ anyFont(cOsd *o,int fheight,int transparent=0);
+#elif VDRVERSNUM >= 10307
anyFont(cOsd *o,const cFont::tPixelData *fd,int fheight,int transparent=0);
#else
anyFont(cOsdBase *o,const cFont::tPixelData *fd,int fheight,int transparent=0);
diff -Naurp tvonscreen-1.0.141/magazine.c tvonscreen-1.0.141-vdr153/magazine.c
--- tvonscreen-1.0.141/magazine.c 2006-06-18 13:59:36.000000000 +0000
+++ tvonscreen-1.0.141-vdr153/magazine.c 2007-09-13 20:04:34.000000000 +0000
@@ -812,10 +812,12 @@ void magazine::autoTimer(const class cEv
}
}
+#if VDRVERSNUM < 10503
#include "fontosd/fontosd-arial18.c"
#include "fontosd/fontosd-verdana16.c"
#include "fontosd/fontosd-tahoma16.c"
#include "fontosd/fontosd-timesNewRoman16.c"
+#endif
void magazine::Show(void)
{
@@ -850,10 +852,17 @@ void magazine::Show(void)
delete f3;
delete f4;
+#if VDRVERSNUM >= 10503
+ f1=new anyFont(osd,18,1); // Sendung
+ f2=new anyFont(osd,16,1); // Extra-Info
+ f3=new anyFont(osd,20,1); // Sender
+ f4=new anyFont(osd,16); // Tasten
+#else
f1=new anyFont(osd,(cFont::tPixelData *)fontosd_arial18,FONTOSD_ARIAL18,1); // Sendung
f2=new anyFont(osd,(cFont::tPixelData *)fontosd_verdana16,FONTOSD_VERDANA16,1); // Extra-Info
f3=new anyFont(osd,(cFont::tPixelData *)fontosd_tahoma16,FONTOSD_TAHOMA16,1); // Sender
f4=new anyFont(osd,(cFont::tPixelData *)fontosd_newroman16,FONTOSD_NEWROMAN16); // Tasten
+#endif
for (int i=0; i < (int)(sizeof(Areas)/sizeof(tArea)); i++)
{
// cBitmap *b=osd->GetBitmap(i);
|