blob: 320e0366ab4da3c9e2cdb31d1afe03a9daeeb418 (
plain)
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
|
/*
* See the README file for copyright information and how to reach the author.
*/
#include <vdr/font.h>
#include "patchfont.h"
#include "mymenusetup.h"
void PatchFont(eDvbFont DvbFont)
{
const cFont *font = cFont::GetFont(DvbFont);
int num_rows_global = font->Height();
int num_rows = num_rows_global+2;
int i,j,num_char;
cFont::tPixelData* font_data = new cFont::tPixelData[225*(num_rows)];
for (i = 0; i < 225; i++)
for (j = 0; j < num_rows; j++)
font_data[(i*num_rows)+j]=0x0000000000000000;
font_data[0+0]=6;//font->CharData(0)->width;
font_data[0+1]=num_rows_global;
for(num_char=33, i = 1; num_char<256; i++, num_char++)
{
const cFont::tCharData* char_data = font->CharData(num_char);
font_data[i*num_rows+0] = (num_char>=127 && num_char<=129)?6:char_data->width;
font_data[i*num_rows+1] = char_data->height;
// new marker
if(num_char==250&&mysetup.PatchNew)
{
if(DvbFont==fontOsd)
{
font_data[i*num_rows+ 0]=16;
font_data[i*num_rows+ 1]=27;
font_data[i*num_rows+ 2]=0; // ................
font_data[i*num_rows+ 3]=0xc600; // ##...##.........
font_data[i*num_rows+ 4]=0xe600; // ###..##.........
font_data[i*num_rows+ 5]=0xf600; // ####.##.........
font_data[i*num_rows+ 6]=0xf600; // ####.##.........
font_data[i*num_rows+ 7]=0xde00; // ##.####.........
font_data[i*num_rows+ 8]=0xde00; // ##.####.........
font_data[i*num_rows+ 9]=0xce00; // ##..###.........
font_data[i*num_rows+10]=0xc600; // ##...##.........
font_data[i*num_rows+11]=0x0; // ................
font_data[i*num_rows+12]=0x1fc0; // ...#######......
font_data[i*num_rows+13]=0x1fc0; // ...#######......
font_data[i*num_rows+14]=0x1800; // ...##...........
font_data[i*num_rows+15]=0x1f00; // ...#####........
font_data[i*num_rows+16]=0x1f00; // ...#####........
font_data[i*num_rows+17]=0x1800; // ...##...........
font_data[i*num_rows+18]=0x1fc0; // ...#######......
font_data[i*num_rows+19]=0x1fc0; // ...#######......
font_data[i*num_rows+20]=0x0; // ................
font_data[i*num_rows+21]=0x318; // ......##...##...
font_data[i*num_rows+22]=0x318; // ......##...##...
font_data[i*num_rows+23]=0x318; // ......##...##...
font_data[i*num_rows+24]=0x318; // ......##...##...
font_data[i*num_rows+25]=0x318; // ......##...##...
font_data[i*num_rows+26]=0x318; // ......##...##...
font_data[i*num_rows+27]=0x3f8; // ......#######...
font_data[i*num_rows+28]=0x1f0; // .......#####....
}
else
{
font_data[i*num_rows+ 0]=16;
font_data[i*num_rows+ 1]=22;
font_data[i*num_rows+ 2]=0x0; // ................
font_data[i*num_rows+ 3]=0xc600; // ##...##.........
font_data[i*num_rows+ 4]=0xe600; // ###..##.........
font_data[i*num_rows+ 5]=0xf600; // ####.##.........
font_data[i*num_rows+ 6]=0xde00; // ##.####.........
font_data[i*num_rows+ 7]=0xce00; // ##..###.........
font_data[i*num_rows+ 8]=0xc600; // ##...##.........
font_data[i*num_rows+ 9]=0x0; // ................
font_data[i*num_rows+10]=0x1fc0; // ...#######......
font_data[i*num_rows+11]=0x1fc0; // ...#######......
font_data[i*num_rows+12]=0x1800; // ...##...........
font_data[i*num_rows+13]=0x1f00; // ...#####........
font_data[i*num_rows+14]=0x1800; // ...##...........
font_data[i*num_rows+15]=0x1fc0; // ...#######......
font_data[i*num_rows+16]=0x1fc0; // ...#######......
font_data[i*num_rows+17]=0x0; // ................
font_data[i*num_rows+18]=0x318; // ......##...##...
font_data[i*num_rows+19]=0x318; // ......##...##...
font_data[i*num_rows+20]=0x318; // ......##...##...
font_data[i*num_rows+21]=0x318; // ......##...##...
font_data[i*num_rows+22]=0x3f8; // ......#######...
font_data[i*num_rows+23]=0x1f0; // .......#####....
}
}
// dvd marker
else if(num_char==251&&mysetup.PatchDvd)
{
if(DvbFont==fontOsd)
{
font_data[i*num_rows+ 0]=22;
font_data[i*num_rows+ 1]=27;
font_data[i*num_rows+ 5]=0x0; // .. .... .... .... .... ....
font_data[i*num_rows+ 6]=0x003f00; // .. .... ..## #### .... ....
font_data[i*num_rows+ 7]=0x01ffe0; // .. ...# #### #### ###. ....
font_data[i*num_rows+ 8]=0x03ff90; // .. ..## #### #### #..# ....
font_data[i*num_rows+ 9]=0x07ff08; // .. .### #### #### .... #...
font_data[i*num_rows+10]=0x0fff04; // .. #### #### #### .... .#..
font_data[i*num_rows+11]=0x0ffe04; // .. #### #### ###. .... .#..
font_data[i*num_rows+12]=0x0ffe0c; // .. #### #### ###. .... ##..
font_data[i*num_rows+13]=0x1ffc3e; // .# #### #### ##.. ..## ###.
font_data[i*num_rows+14]=0x1ff2fe; // .# #### #### ..#. #### ###.
font_data[i*num_rows+15]=0x1fe1fe; // .# #### ###. ...# #### ###.
font_data[i*num_rows+16]=0x1fe1fe; // .# #### ###. ...# #### ###.
font_data[i*num_rows+17]=0x1fd3fe; // .# #### ##.# ..## #### ###.
font_data[i*num_rows+18]=0x1f0ffe; // .# #### .... #### #### ###.
font_data[i*num_rows+19]=0x0c1ffc; // .. ##.. ...# #### #### ##..
font_data[i*num_rows+20]=0x081ffc; // .. #... ...# #### #### ##..
font_data[i*num_rows+21]=0x083ffc; // .. #... ..## #### #### ##..
font_data[i*num_rows+22]=0x043ff8; // .. .#.. ..## #### #### #...
font_data[i*num_rows+23]=0x027ff0; // .. ..#. .### #### #### ....
font_data[i*num_rows+24]=0x01ffe0; // .. ...# #### #### ###. ....
font_data[i*num_rows+25]=0x003f00; // .. .... ..## #### .... ....
font_data[i*num_rows+26]=0x000000; // .. .... .... .... .... ....
}
else
{
font_data[i*num_rows+ 0]=22;
font_data[i*num_rows+ 1]=22;
font_data[i*num_rows+ 2]=0x0; // .. .... .... .... .... ....
font_data[i*num_rows+ 3]=0x003f00; // .. .... ..## #### .... ....
font_data[i*num_rows+ 4]=0x01ffe0; // .. ...# #### #### ###. ....
font_data[i*num_rows+ 5]=0x03ff90; // .. ..## #### #### #..# ....
font_data[i*num_rows+ 6]=0x07ff08; // .. .### #### #### .... #...
font_data[i*num_rows+ 7]=0x0fff04; // .. #### #### #### .... .#..
font_data[i*num_rows+ 8]=0x0ffe04; // .. #### #### ###. .... .#..
font_data[i*num_rows+ 9]=0x0ffe0c; // .. #### #### ###. .... ##..
font_data[i*num_rows+10]=0x1ffc3e; // .# #### #### ##.. ..## ###.
font_data[i*num_rows+11]=0x1ff2fe; // .# #### #### ..#. #### ###.
font_data[i*num_rows+12]=0x1fe1fe; // .# #### ###. ...# #### ###.
font_data[i*num_rows+13]=0x1fe1fe; // .# #### ###. ...# #### ###.
font_data[i*num_rows+14]=0x1fd3fe; // .# #### ##.# ..## #### ###.
font_data[i*num_rows+15]=0x1f0ffe; // .# #### .... #### #### ###.
font_data[i*num_rows+16]=0x0c1ffc; // .. ##.. ...# #### #### ##..
font_data[i*num_rows+17]=0x081ffc; // .. #... ...# #### #### ##..
font_data[i*num_rows+18]=0x083ffc; // .. #... ..## #### #### ##..
font_data[i*num_rows+19]=0x043ff8; // .. .#.. ..## #### #### #...
font_data[i*num_rows+20]=0x027ff0; // .. ..#. .### #### #### ....
font_data[i*num_rows+21]=0x01ffe0; // .. ...# #### #### ###. ....
font_data[i*num_rows+22]=0x003f00; // .. .... ..## #### .... ....
font_data[i*num_rows+23]=0x000000; // .. .... .... .... .... ....
}
}
else
{
for(j = 0; j<(int)char_data->height; j++)
{
cFont::tPixelData Data = (cFont::tPixelData)char_data->lines[j];
font_data[(i*num_rows)+2+j] = Data;
}
}
}
cFont::SetFont(DvbFont, font_data);
}
|