summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--uisimulator/common/font-player.c548
-rw-r--r--uisimulator/common/font-player.h262
-rw-r--r--uisimulator/common/lcd-playersim.c315
-rw-r--r--uisimulator/common/stubs.c5
4 files changed, 662 insertions, 468 deletions
diff --git a/uisimulator/common/font-player.c b/uisimulator/common/font-player.c
new file mode 100644
index 0000000000..988b903c7b
--- /dev/null
+++ b/uisimulator/common/font-player.c
@@ -0,0 +1,548 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * All files in this archive are subject to the GNU General Public License.
11 * See the file COPYING in the source tree root for full license agreement.
12 *
13 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
14 * KIND, either express or implied.
15 *
16 ****************************************************************************/
17
18#include "font-player.h"
19
20#include "hwcompat.h"
21
22
23unsigned char font_new_player[256][5] = {
24 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 00 */
25 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 01 */
26 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 02 */
27 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 03 */
28 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 04 */
29 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 05 */
30 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 06 */
31 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 07 */
32 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 08 */
33 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 09 */
34 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0a */
35 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0b */
36 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0c */
37 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0d */
38 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0e */
39 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0f */
40 { 0x3e, 0x1c, 0x1c, 0x08, 0x08 }, /* 10 */
41 { 0x08, 0x08, 0x1c, 0x1c, 0x3e }, /* 11 */
42 { 0x02, 0x04, 0x08, 0x10, 0x20 }, /* 12 */
43 { 0x00, 0x4f, 0x00, 0x4f, 0x00 }, /* 13 */
44 { 0x06, 0x0f, 0x7f, 0x01, 0x7f }, /* 14 */
45 { 0x48, 0x56, 0x55, 0x35, 0x09 }, /* 15 */
46 { 0x0c, 0x0c, 0x0c, 0x0c, 0x0c }, /* 16 */
47 { 0x10, 0x38, 0x54, 0x10, 0x1f }, /* 17 */
48 { 0x04, 0x02, 0x7f, 0x02, 0x04 }, /* 18 */
49 { 0x10, 0x20, 0x7f, 0x20, 0x10 }, /* 19 */
50 { 0x7f, 0x3e, 0x1c, 0x08, 0x7f }, /* 1a */
51 { 0x7f, 0x08, 0x1c, 0x3e, 0x7f }, /* 1b */
52 { 0x7f, 0x08, 0x2a, 0x1c, 0x08 }, /* 1c */
53 { 0x08, 0x1c, 0x2a, 0x08, 0x7f }, /* 1d */
54 { 0x02, 0x0e, 0x3e, 0x0e, 0x02 }, /* 1e */
55 { 0x20, 0x38, 0x3e, 0x38, 0x20 }, /* 1f */
56 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 20 */
57 { 0x00, 0x00, 0x4f, 0x00, 0x00 }, /* 21 */
58 { 0x00, 0x07, 0x00, 0x07, 0x00 }, /* 22 */
59 { 0x14, 0x7f, 0x14, 0x7f, 0x14 }, /* 23 */
60 { 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, /* 24 */
61 { 0x23, 0x13, 0x08, 0x64, 0x62 }, /* 25 */
62 { 0x36, 0x49, 0x55, 0x22, 0x50 }, /* 26 */
63 { 0x00, 0x05, 0x03, 0x00, 0x00 }, /* 27 */
64 { 0x00, 0x1c, 0x22, 0x41, 0x00 }, /* 28 */
65 { 0x00, 0x41, 0x22, 0x1c, 0x00 }, /* 29 */
66 { 0x14, 0x08, 0x3e, 0x08, 0x14 }, /* 2a */
67 { 0x08, 0x08, 0x3e, 0x08, 0x08 }, /* 2b */
68 { 0x00, 0x50, 0x30, 0x00, 0x00 }, /* 2c */
69 { 0x08, 0x08, 0x08, 0x08, 0x08 }, /* 2d */
70 { 0x00, 0x30, 0x30, 0x00, 0x00 }, /* 2e */
71 { 0x20, 0x10, 0x08, 0x04, 0x02 }, /* 2f */
72 { 0x3e, 0x51, 0x49, 0x45, 0x3e }, /* 30 */
73 { 0x00, 0x42, 0x7f, 0x40, 0x00 }, /* 31 */
74 { 0x42, 0x61, 0x51, 0x49, 0x46 }, /* 32 */
75 { 0x21, 0x41, 0x45, 0x4b, 0x31 }, /* 33 */
76 { 0x18, 0x14, 0x12, 0x7f, 0x10 }, /* 34 */
77 { 0x27, 0x45, 0x45, 0x45, 0x39 }, /* 35 */
78 { 0x3c, 0x4a, 0x49, 0x49, 0x30 }, /* 36 */
79 { 0x01, 0x01, 0x71, 0x0d, 0x03 }, /* 37 */
80 { 0x36, 0x49, 0x49, 0x49, 0x36 }, /* 38 */
81 { 0x06, 0x49, 0x49, 0x29, 0x1e }, /* 39 */
82 { 0x00, 0x36, 0x36, 0x00, 0x00 }, /* 3a */
83 { 0x00, 0x5b, 0x3b, 0x00, 0x00 }, /* 3b */
84 { 0x08, 0x14, 0x22, 0x41, 0x00 }, /* 3c */
85 { 0x14, 0x14, 0x14, 0x14, 0x14 }, /* 3d */
86 { 0x00, 0x41, 0x22, 0x14, 0x08 }, /* 3e */
87 { 0x02, 0x01, 0x51, 0x09, 0x06 }, /* 3f */
88 { 0x32, 0x49, 0x79, 0x41, 0x3e }, /* 40 */
89 { 0x7e, 0x11, 0x11, 0x11, 0x7e }, /* 41 */
90 { 0x7f, 0x49, 0x49, 0x49, 0x36 }, /* 42 */
91 { 0x3e, 0x41, 0x41, 0x41, 0x22 }, /* 43 */
92 { 0x7f, 0x41, 0x41, 0x22, 0x1c }, /* 44 */
93 { 0x7f, 0x49, 0x49, 0x49, 0x41 }, /* 45 */
94 { 0x7f, 0x09, 0x09, 0x09, 0x01 }, /* 46 */
95 { 0x3e, 0x41, 0x49, 0x49, 0x7a }, /* 47 */
96 { 0x7f, 0x08, 0x08, 0x08, 0x7f }, /* 48 */
97 { 0x00, 0x41, 0x7f, 0x41, 0x00 }, /* 49 */
98 { 0x20, 0x41, 0x41, 0x3f, 0x01 }, /* 4a */
99 { 0x7f, 0x08, 0x14, 0x22, 0x41 }, /* 4b */
100 { 0x7f, 0x40, 0x40, 0x40, 0x40 }, /* 4c */
101 { 0x7f, 0x02, 0x0c, 0x02, 0x7f }, /* 4d */
102 { 0x7f, 0x04, 0x08, 0x10, 0x7f }, /* 4e */
103 { 0x3e, 0x41, 0x41, 0x41, 0x3e }, /* 4f */
104 { 0x7f, 0x09, 0x09, 0x09, 0x06 }, /* 50 */
105 { 0x3e, 0x41, 0x41, 0x21, 0x5e }, /* 51 */
106 { 0x7f, 0x09, 0x19, 0x29, 0x46 }, /* 52 */
107 { 0x26, 0x49, 0x49, 0x49, 0x32 }, /* 53 */
108 { 0x01, 0x01, 0x7f, 0x01, 0x01 }, /* 54 */
109 { 0x3f, 0x40, 0x40, 0x40, 0x3f }, /* 55 */
110 { 0x1f, 0x20, 0x40, 0x20, 0x1f }, /* 56 */
111 { 0x3f, 0x40, 0x38, 0x40, 0x3f }, /* 57 */
112 { 0x63, 0x14, 0x08, 0x14, 0x63 }, /* 58 */
113 { 0x03, 0x04, 0x78, 0x04, 0x03 }, /* 59 */
114 { 0x61, 0x51, 0x49, 0x45, 0x43 }, /* 5a */
115 { 0x00, 0x7f, 0x41, 0x41, 0x00 }, /* 5b */
116 { 0x15, 0x16, 0x7c, 0x16, 0x15 }, /* 5c */
117 { 0x00, 0x41, 0x41, 0x7f, 0x00 }, /* 5d */
118 { 0x04, 0x02, 0x01, 0x02, 0x04 }, /* 5e */
119 { 0x40, 0x40, 0x40, 0x40, 0x40 }, /* 5f */
120 { 0x00, 0x01, 0x02, 0x04, 0x00 }, /* 60 */
121 { 0x20, 0x54, 0x54, 0x54, 0x78 }, /* 61 */
122 { 0x7f, 0x48, 0x44, 0x44, 0x38 }, /* 62 */
123 { 0x38, 0x44, 0x44, 0x44, 0x20 }, /* 63 */
124 { 0x38, 0x44, 0x44, 0x48, 0x7f }, /* 64 */
125 { 0x38, 0x54, 0x54, 0x54, 0x18 }, /* 65 */
126 { 0x08, 0x7e, 0x09, 0x01, 0x02 }, /* 66 */
127 { 0x0c, 0x52, 0x52, 0x52, 0x3e }, /* 67 */
128 { 0x7f, 0x08, 0x04, 0x04, 0x78 }, /* 68 */
129 { 0x00, 0x44, 0x7d, 0x40, 0x00 }, /* 69 */
130 { 0x20, 0x40, 0x44, 0x3d, 0x00 }, /* 6a */
131 { 0x7f, 0x10, 0x28, 0x44, 0x00 }, /* 6b */
132 { 0x00, 0x41, 0x7f, 0x40, 0x00 }, /* 6c */
133 { 0x7c, 0x04, 0x18, 0x04, 0x78 }, /* 6d */
134 { 0x7c, 0x08, 0x04, 0x04, 0x78 }, /* 6e */
135 { 0x38, 0x44, 0x44, 0x44, 0x38 }, /* 6f */
136 { 0x7c, 0x14, 0x14, 0x14, 0x08 }, /* 70 */
137 { 0x08, 0x14, 0x14, 0x18, 0x7c }, /* 71 */
138 { 0x7c, 0x08, 0x04, 0x04, 0x08 }, /* 72 */
139 { 0x48, 0x54, 0x54, 0x54, 0x20 }, /* 73 */
140 { 0x04, 0x3f, 0x44, 0x40, 0x20 }, /* 74 */
141 { 0x3c, 0x40, 0x40, 0x20, 0x7c }, /* 75 */
142 { 0x1c, 0x20, 0x40, 0x20, 0x1c }, /* 76 */
143 { 0x3c, 0x40, 0x30, 0x40, 0x3c }, /* 77 */
144 { 0x44, 0x28, 0x10, 0x28, 0x44 }, /* 78 */
145 { 0x4c, 0x50, 0x50, 0x50, 0x3c }, /* 79 */
146 { 0x44, 0x64, 0x54, 0x4c, 0x44 }, /* 7a */
147 { 0x00, 0x08, 0x36, 0x41, 0x00 }, /* 7b */
148 { 0x00, 0x00, 0x7f, 0x00, 0x00 }, /* 7c */
149 { 0x00, 0x41, 0x36, 0x08, 0x00 }, /* 7d */
150 { 0x08, 0x08, 0x2a, 0x1c, 0x08 }, /* 7e */
151 { 0x08, 0x1c, 0x2a, 0x08, 0x08 }, /* 7f */
152 { 0x40, 0x40, 0x40, 0x40, 0x40 }, /* 80 */
153 { 0x60, 0x60, 0x60, 0x60, 0x60 }, /* 81 */
154 { 0x70, 0x70, 0x70, 0x70, 0x70 }, /* 82 */
155 { 0x78, 0x78, 0x78, 0x78, 0x78 }, /* 83 */
156 { 0x7c, 0x7c, 0x7c, 0x7c, 0x7c }, /* 84 */
157 { 0x7e, 0x7e, 0x7e, 0x7e, 0x7e }, /* 85 */
158 { 0x7f, 0x7f, 0x7f, 0x7f, 0x7f }, /* 86 */
159 { 0x08, 0x2a, 0x1c, 0x2a, 0x08 }, /* 87 */
160 { 0x7f, 0x00, 0x00, 0x00, 0x7f }, /* 88 */
161 { 0x7f, 0x7f, 0x00, 0x00, 0x7f }, /* 89 */
162 { 0x7f, 0x7f, 0x7f, 0x00, 0x7f }, /* 8a */
163 { 0x00, 0x7f, 0x00, 0x00, 0x00 }, /* 8b */
164 { 0x00, 0x7f, 0x7f, 0x00, 0x00 }, /* 8c */
165 { 0x00, 0x7f, 0x7f, 0x7f, 0x00 }, /* 8d */
166 { 0x00, 0x7f, 0x7f, 0x7f, 0x7f }, /* 8e */
167 { 0x3e, 0x3e, 0x3e, 0x3e, 0x3e }, /* 8f */
168 { 0x1c, 0x3e, 0x3e, 0x3e, 0x1c }, /* 90 */
169 { 0x7f, 0x41, 0x41, 0x41, 0x7f }, /* 91 */
170 { 0x7f, 0x5b, 0x41, 0x5f, 0x7f }, /* 92 */
171 { 0x7f, 0x4d, 0x55, 0x59, 0x7f }, /* 93 */
172 { 0x20, 0x40, 0x3c, 0x04, 0x04 }, /* 94 */
173 { 0x44, 0x44, 0x5f, 0x44, 0x44 }, /* 95 */
174 { 0x22, 0x14, 0x08, 0x14, 0x22 }, /* 96 */
175 { 0x08, 0x08, 0x2a, 0x08, 0x08 }, /* 97 */
176 { 0x45, 0x29, 0x11, 0x29, 0x45 }, /* 98 */
177 { 0x1d, 0x15, 0x17, 0x00, 0x00 }, /* 99 */
178 { 0x15, 0x15, 0x1f, 0x00, 0x00 }, /* 9a */
179 { 0x17, 0x08, 0x74, 0x56, 0x5d }, /* 9b */
180 { 0x17, 0x08, 0x24, 0x32, 0x79 }, /* 9c */
181 { 0x35, 0x1f, 0x28, 0x34, 0x7a }, /* 9d */
182 { 0x08, 0x14, 0x2a, 0x14, 0x22 }, /* 9e */
183 { 0x22, 0x14, 0x2a, 0x14, 0x08 }, /* 9f */
184 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* a0 */
185 { 0x70, 0x50, 0x70, 0x00, 0x00 }, /* a1 */
186 { 0x00, 0x00, 0x0f, 0x01, 0x01 }, /* a2 */
187 { 0x40, 0x40, 0x78, 0x00, 0x00 }, /* a3 */
188 { 0x10, 0x20, 0x40, 0x00, 0x00 }, /* a4 */
189 { 0x00, 0x18, 0x18, 0x00, 0x00 }, /* a5 */
190 { 0x0a, 0x0a, 0x4a, 0x2a, 0x1e }, /* a6 */
191 { 0x04, 0x44, 0x34, 0x14, 0x0c }, /* a7 */
192 { 0x20, 0x10, 0x78, 0x04, 0x00 }, /* a8 */
193 { 0x18, 0x08, 0x4c, 0x48, 0x38 }, /* a9 */
194 { 0x48, 0x48, 0x78, 0x48, 0x48 }, /* aa */
195 { 0x48, 0x28, 0x18, 0x7c, 0x08 }, /* ab */
196 { 0x08, 0x7c, 0x08, 0x28, 0x18 }, /* ac */
197 { 0x40, 0x48, 0x48, 0x78, 0x40 }, /* ad */
198 { 0x54, 0x54, 0x54, 0x7c, 0x00 }, /* ae */
199 { 0x18, 0x00, 0x58, 0x40, 0x38 }, /* af */
200 { 0x08, 0x08, 0x08, 0x08, 0x08 }, /* b0 */
201 { 0x01, 0x41, 0x3d, 0x09, 0x07 }, /* b1 */
202 { 0x10, 0x08, 0x7c, 0x02, 0x01 }, /* b2 */
203 { 0x0e, 0x02, 0x43, 0x22, 0x1e }, /* b3 */
204 { 0x42, 0x42, 0x7e, 0x42, 0x42 }, /* b4 */
205 { 0x22, 0x12, 0x0a, 0x7f, 0x02 }, /* b5 */
206 { 0x42, 0x3f, 0x02, 0x42, 0x3e }, /* b6 */
207 { 0x0a, 0x0a, 0x7f, 0x0a, 0x0a }, /* b7 */
208 { 0x08, 0x46, 0x42, 0x22, 0x1e }, /* b8 */
209 { 0x04, 0x03, 0x42, 0x3e, 0x02 }, /* b9 */
210 { 0x42, 0x42, 0x42, 0x42, 0x7e }, /* ba */
211 { 0x02, 0x07, 0x42, 0x3f, 0x02 }, /* bb */
212 { 0x4a, 0x4a, 0x40, 0x20, 0x10 }, /* bc */
213 { 0x42, 0x22, 0x12, 0x2a, 0x46 }, /* bd */
214 { 0x02, 0x3f, 0x42, 0x4a, 0x46 }, /* be */
215 { 0x06, 0x48, 0x40, 0x20, 0x1e }, /* bf */
216 { 0x08, 0x46, 0x4a, 0x32, 0x1e }, /* c0 */
217 { 0x0a, 0x4a, 0x3e, 0x09, 0x08 }, /* c1 */
218 { 0x0e, 0x00, 0x4e, 0x20, 0x1e }, /* c2 */
219 { 0x04, 0x45, 0x3d, 0x05, 0x04 }, /* c3 */
220 { 0x00, 0x7f, 0x08, 0x10, 0x00 }, /* c4 */
221 { 0x44, 0x24, 0x1f, 0x04, 0x04 }, /* c5 */
222 { 0x40, 0x42, 0x42, 0x42, 0x40 }, /* c6 */
223 { 0x42, 0x2a, 0x12, 0x2a, 0x06 }, /* c7 */
224 { 0x22, 0x12, 0x7b, 0x16, 0x22 }, /* c8 */
225 { 0x00, 0x40, 0x20, 0x1f, 0x00 }, /* c9 */
226 { 0x78, 0x00, 0x02, 0x04, 0x78 }, /* ca */
227 { 0x3f, 0x44, 0x44, 0x44, 0x44 }, /* cb */
228 { 0x02, 0x42, 0x42, 0x22, 0x1e }, /* cc */
229 { 0x04, 0x02, 0x04, 0x08, 0x30 }, /* cd */
230 { 0x32, 0x02, 0x7f, 0x02, 0x32 }, /* ce */
231 { 0x02, 0x12, 0x22, 0x52, 0x0e }, /* cf */
232 { 0x00, 0x2a, 0x2a, 0x2a, 0x40 }, /* d0 */
233 { 0x38, 0x24, 0x22, 0x20, 0x70 }, /* d1 */
234 { 0x40, 0x28, 0x10, 0x28, 0x06 }, /* d2 */
235 { 0x0a, 0x3e, 0x4a, 0x4a, 0x4a }, /* d3 */
236 { 0x04, 0x7f, 0x04, 0x14, 0x0c }, /* d4 */
237 { 0x40, 0x42, 0x42, 0x7e, 0x40 }, /* d5 */
238 { 0x4a, 0x4a, 0x4a, 0x4a, 0x7e }, /* d6 */
239 { 0x04, 0x05, 0x45, 0x25, 0x1c }, /* d7 */
240 { 0x1f, 0x40, 0x20, 0x1f, 0x00 }, /* d8 */
241 { 0x7c, 0x00, 0x7e, 0x40, 0x30 }, /* d9 */
242 { 0x7e, 0x40, 0x20, 0x10, 0x08 }, /* da */
243 { 0x7f, 0x41, 0x41, 0x41, 0x7f }, /* db */
244 { 0x0e, 0x02, 0x42, 0x22, 0x1e }, /* dc */
245 { 0x42, 0x42, 0x40, 0x20, 0x18 }, /* dd */
246 { 0x02, 0x04, 0x01, 0x02, 0x00 }, /* de */
247 { 0x07, 0x05, 0x07, 0x00, 0x00 }, /* df */
248 { 0x38, 0x44, 0x48, 0x30, 0x4c }, /* e0 */
249 { 0x7c, 0x2a, 0x2a, 0x2a, 0x14 }, /* e1 */
250 { 0x02, 0x4c, 0x30, 0x0c, 0x02 }, /* e2 */
251 { 0x44, 0x3c, 0x04, 0x7c, 0x44 }, /* e3 */
252 { 0x63, 0x55, 0x49, 0x41, 0x41 }, /* e4 */
253 { 0x38, 0x44, 0x4c, 0x54, 0x24 }, /* e5 */
254 { 0x40, 0x3e, 0x10, 0x10, 0x1e }, /* e6 */
255 { 0x04, 0x04, 0x3c, 0x44, 0x44 }, /* e7 */
256 { 0x49, 0x55, 0x7f, 0x55, 0x49 }, /* e8 */
257 { 0x3c, 0x4a, 0x4a, 0x4a, 0x3c }, /* e9 */
258 { 0x58, 0x64, 0x04, 0x64, 0x58 }, /* ea */
259 { 0x3a, 0x45, 0x45, 0x45, 0x39 }, /* eb */
260 { 0x60, 0x50, 0x20, 0x50, 0x30 }, /* ec */
261 { 0x08, 0x54, 0x3e, 0x15, 0x08 }, /* ed */
262 { 0x14, 0x2a, 0x2a, 0x2a, 0x00 }, /* ee */
263 { 0x7c, 0x0a, 0x09, 0x09, 0x06 }, /* ef */
264 { 0x08, 0x04, 0x08, 0x10, 0x08 }, /* f0 */
265 { 0x14, 0x0a, 0x14, 0x28, 0x14 }, /* f1 */
266 { 0x24, 0x3b, 0x2a, 0x7e, 0x2a }, /* f2 */
267 { 0x40, 0x3f, 0x15, 0x15, 0x7f }, /* f3 */
268 { 0x46, 0x20, 0x1f, 0x20, 0x46 }, /* f4 */
269 { 0x24, 0x14, 0x7f, 0x18, 0x24 }, /* f5 */
270 { 0x24, 0x14, 0x7f, 0x14, 0x24 }, /* f6 */
271 { 0x44, 0x6a, 0x79, 0x6a, 0x44 }, /* f7 */
272 { 0x40, 0x44, 0x7f, 0x44, 0x40 }, /* f8 */
273 { 0x7f, 0x49, 0x49, 0x49, 0x7f }, /* f9 */
274 { 0x14, 0x14, 0x7c, 0x14, 0x12 }, /* fa */
275 { 0x44, 0x3c, 0x14, 0x14, 0x74 }, /* fb */
276 { 0x7c, 0x14, 0x1c, 0x14, 0x7c }, /* fc */
277 { 0x2a, 0x55, 0x2a, 0x55, 0x2a }, /* fd */
278 { 0x55, 0x2a, 0x55, 0x2a, 0x55 }, /* fe */
279 { 0x7f, 0x7f, 0x7f, 0x7f, 0x7f } /* ff */
280};
281
282unsigned char font_old_player[256][5] = {
283 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 00 */
284 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 01 */
285 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 02 */
286 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 03 */
287 { 0x3e, 0x41, 0x5d, 0x55, 0x1e }, /* 04 */
288 { 0x48, 0x7e, 0x49, 0x49, 0x42 }, /* 05 */
289 { 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, /* 06 */
290 { 0x15, 0x16, 0x7c, 0x16, 0x15 }, /* 07 */
291 { 0x38, 0x55, 0x56, 0x54, 0x18 }, /* 08 */
292 { 0x38, 0x54, 0x56, 0x55, 0x18 }, /* 09 */
293 { 0x38, 0x41, 0x42, 0x20, 0x78 }, /* 0a */
294 { 0x00, 0x49, 0x7a, 0x40, 0x00 }, /* 0b */
295 { 0x30, 0x49, 0x4a, 0x48, 0x30 }, /* 0c */
296 { 0x0e, 0x51, 0x51, 0x71, 0x11 }, /* 0d */
297 { 0x1f, 0x10, 0x7c, 0x14, 0x04 }, /* 0e */
298 { 0x5c, 0x32, 0x2a, 0x26, 0x1d }, /* 0f */
299 { 0x18, 0x64, 0x3c, 0x26, 0x18 }, /* 10 */
300 { 0x0f, 0x09, 0x7d, 0x34, 0x5c }, /* 11 */
301 { 0x70, 0x2a, 0x2d, 0x2a, 0x70 }, /* 12 */
302 { 0x20, 0x52, 0x55, 0x52, 0x78 }, /* 13 */
303 { 0x60, 0x58, 0x46, 0x58, 0x60 }, /* 14 */
304 { 0x40, 0x40, 0x40, 0x40, 0x40 }, /* 15 */
305 { 0x1c, 0x55, 0x7f, 0x55, 0x1c }, /* 16 */
306 { 0x7f, 0x01, 0x01, 0x01, 0x07 }, /* 17 */
307 { 0x70, 0x0c, 0x03, 0x0c, 0x70 }, /* 18 */
308 { 0x4e, 0x71, 0x01, 0x71, 0x4e }, /* 19 */
309 { 0x01, 0x7f, 0x01, 0x7f, 0x01 }, /* 1a */
310 { 0x0f, 0x10, 0x7f, 0x10, 0x0f }, /* 1b */
311 { 0x41, 0x63, 0x55, 0x49, 0x41 }, /* 1c */
312 { 0x3e, 0x49, 0x49, 0x49, 0x3e }, /* 1d */
313 { 0x63, 0x49, 0x49, 0x49, 0x63 }, /* 1e */
314 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 1f */
315 { 0x7e, 0x09, 0x7f, 0x49, 0x49 }, /* 20 */
316 { 0x24, 0x54, 0x78, 0x54, 0x58 }, /* 21 */
317 { 0x7e, 0x01, 0x25, 0x26, 0x18 }, /* 22 */
318 { 0x7c, 0x54, 0x56, 0x45, 0x44 }, /* 23 */
319 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 24 */
320 { 0x00, 0x00, 0x5f, 0x00, 0x00 }, /* 25 */
321 { 0x05, 0x03, 0x00, 0x05, 0x03 }, /* 26 */
322 { 0x14, 0x7f, 0x14, 0x7f, 0x14 }, /* 27 */
323 { 0x22, 0x1c, 0x14, 0x1c, 0x22 }, /* 28 */
324 { 0x23, 0x13, 0x08, 0x64, 0x62 }, /* 29 */
325 { 0x36, 0x49, 0x56, 0x20, 0x58 }, /* 2a */
326 { 0x00, 0x05, 0x03, 0x00, 0x00 }, /* 2b */
327 { 0x00, 0x1c, 0x22, 0x41, 0x00 }, /* 2c */
328 { 0x00, 0x41, 0x22, 0x1c, 0x00 }, /* 2d */
329 { 0x22, 0x14, 0x7f, 0x14, 0x22 }, /* 2e */
330 { 0x08, 0x08, 0x3e, 0x08, 0x08 }, /* 2f */
331 { 0x00, 0x50, 0x30, 0x00, 0x00 }, /* 30 */
332 { 0x08, 0x08, 0x08, 0x08, 0x08 }, /* 31 */
333 { 0x00, 0x30, 0x30, 0x00, 0x00 }, /* 32 */
334 { 0x20, 0x10, 0x08, 0x04, 0x02 }, /* 33 */
335 { 0x3e, 0x41, 0x41, 0x41, 0x3e }, /* 34 */
336 { 0x00, 0x42, 0x7f, 0x40, 0x00 }, /* 35 */
337 { 0x42, 0x61, 0x51, 0x49, 0x46 }, /* 36 */
338 { 0x21, 0x41, 0x45, 0x4b, 0x31 }, /* 37 */
339 { 0x18, 0x14, 0x12, 0x7f, 0x10 }, /* 38 */
340 { 0x27, 0x45, 0x45, 0x45, 0x39 }, /* 39 */
341 { 0x3c, 0x4a, 0x49, 0x49, 0x30 }, /* 3a */
342 { 0x01, 0x01, 0x71, 0x0d, 0x03 }, /* 3b */
343 { 0x36, 0x49, 0x49, 0x49, 0x36 }, /* 3c */
344 { 0x06, 0x49, 0x49, 0x29, 0x1e }, /* 3d */
345 { 0x00, 0x36, 0x36, 0x00, 0x00 }, /* 3e */
346 { 0x00, 0x56, 0x36, 0x00, 0x00 }, /* 3f */
347 { 0x08, 0x1c, 0x36, 0x63, 0x41 }, /* 40 */
348 { 0x14, 0x14, 0x14, 0x14, 0x14 }, /* 41 */
349 { 0x41, 0x63, 0x36, 0x1c, 0x08 }, /* 42 */
350 { 0x02, 0x01, 0x51, 0x09, 0x06 }, /* 43 */
351 { 0x00, 0x00, 0x7d, 0x00, 0x00 }, /* 44 */
352 { 0x7c, 0x12, 0x11, 0x12, 0x7c }, /* 45 */
353 { 0x7f, 0x49, 0x49, 0x49, 0x36 }, /* 46 */
354 { 0x3e, 0x41, 0x41, 0x41, 0x22 }, /* 47 */
355 { 0x7f, 0x41, 0x41, 0x22, 0x1c }, /* 48 */
356 { 0x7f, 0x49, 0x49, 0x49, 0x41 }, /* 49 */
357 { 0x7f, 0x09, 0x09, 0x09, 0x01 }, /* 4a */
358 { 0x3e, 0x41, 0x49, 0x49, 0x38 }, /* 4b */
359 { 0x7f, 0x08, 0x08, 0x08, 0x7f }, /* 4c */
360 { 0x00, 0x41, 0x7f, 0x41, 0x00 }, /* 4d */
361 { 0x20, 0x41, 0x41, 0x3f, 0x01 }, /* 4e */
362 { 0x7f, 0x08, 0x14, 0x22, 0x41 }, /* 4f */
363 { 0x7f, 0x40, 0x40, 0x40, 0x40 }, /* 50 */
364 { 0x7f, 0x02, 0x04, 0x02, 0x7f }, /* 51 */
365 { 0x7f, 0x04, 0x08, 0x10, 0x7f }, /* 52 */
366 { 0x3e, 0x41, 0x41, 0x41, 0x3e }, /* 53 */
367 { 0x7f, 0x09, 0x09, 0x09, 0x06 }, /* 54 */
368 { 0x3e, 0x41, 0x41, 0x21, 0x5e }, /* 55 */
369 { 0x7f, 0x09, 0x19, 0x29, 0x46 }, /* 56 */
370 { 0x26, 0x49, 0x49, 0x49, 0x32 }, /* 57 */
371 { 0x01, 0x01, 0x7f, 0x01, 0x01 }, /* 58 */
372 { 0x3f, 0x40, 0x40, 0x40, 0x3f }, /* 59 */
373 { 0x1f, 0x20, 0x40, 0x20, 0x1f }, /* 5a */
374 { 0x3f, 0x40, 0x20, 0x40, 0x3f }, /* 5b */
375 { 0x63, 0x14, 0x08, 0x14, 0x63 }, /* 5c */
376 { 0x03, 0x04, 0x78, 0x04, 0x03 }, /* 5d */
377 { 0x61, 0x51, 0x49, 0x45, 0x43 }, /* 5e */
378 { 0x70, 0x29, 0x24, 0x29, 0x70 }, /* 5f */
379 { 0x38, 0x45, 0x44, 0x45, 0x38 }, /* 60 */
380 { 0x7a, 0x09, 0x11, 0x22, 0x79 }, /* 61 */
381 { 0x3c, 0x41, 0x40, 0x41, 0x3c }, /* 62 */
382 { 0x0a, 0x55, 0x55, 0x55, 0x28 }, /* 63 */
383 { 0x30, 0x48, 0x45, 0x40, 0x20 }, /* 64 */
384 { 0x20, 0x54, 0x54, 0x54, 0x78 }, /* 65 */
385 { 0x7f, 0x44, 0x44, 0x44, 0x38 }, /* 66 */
386 { 0x38, 0x44, 0x44, 0x44, 0x44 }, /* 67 */
387 { 0x38, 0x44, 0x44, 0x44, 0x7f }, /* 68 */
388 { 0x38, 0x54, 0x54, 0x54, 0x58 }, /* 69 */
389 { 0x00, 0x04, 0x7e, 0x05, 0x05 }, /* 6a */
390 { 0x08, 0x54, 0x54, 0x54, 0x3c }, /* 6b */
391 { 0x7f, 0x08, 0x04, 0x04, 0x78 }, /* 6c */
392 { 0x00, 0x44, 0x7d, 0x40, 0x00 }, /* 6d */
393 { 0x20, 0x40, 0x44, 0x3d, 0x00 }, /* 6e */
394 { 0x00, 0x7f, 0x10, 0x28, 0x44 }, /* 6f */
395 { 0x00, 0x41, 0x7f, 0x40, 0x00 }, /* 70 */
396 { 0x7c, 0x04, 0x78, 0x04, 0x78 }, /* 71 */
397 { 0x7c, 0x08, 0x04, 0x04, 0x78 }, /* 72 */
398 { 0x38, 0x44, 0x44, 0x44, 0x38 }, /* 73 */
399 { 0x7c, 0x14, 0x14, 0x14, 0x08 }, /* 74 */
400 { 0x08, 0x14, 0x14, 0x14, 0x7c }, /* 75 */
401 { 0x00, 0x7c, 0x08, 0x04, 0x04 }, /* 76 */
402 { 0x48, 0x54, 0x54, 0x54, 0x20 }, /* 77 */
403 { 0x00, 0x04, 0x3f, 0x44, 0x44 }, /* 78 */
404 { 0x3c, 0x40, 0x40, 0x20, 0x7c }, /* 79 */
405 { 0x1c, 0x20, 0x40, 0x20, 0x1c }, /* 7a */
406 { 0x3c, 0x40, 0x20, 0x40, 0x3c }, /* 7b */
407 { 0x44, 0x28, 0x10, 0x28, 0x44 }, /* 7c */
408 { 0x4c, 0x50, 0x50, 0x50, 0x3c }, /* 7d */
409 { 0x44, 0x64, 0x54, 0x4c, 0x44 }, /* 7e */
410 { 0x20, 0x55, 0x54, 0x55, 0x78 }, /* 7f */
411 { 0x30, 0x4a, 0x48, 0x4a, 0x30 }, /* 80 */
412 { 0x7a, 0x11, 0x09, 0x0a, 0x71 }, /* 81 */
413 { 0x38, 0x42, 0x40, 0x22, 0x78 }, /* 82 */
414 { 0x20, 0x55, 0x56, 0x54, 0x78 }, /* 83 */
415 { 0x0c, 0x12, 0x52, 0x32, 0x12 }, /* 84 */
416 { 0x20, 0x00, 0x20, 0x00, 0x20 }, /* 85 */
417 { 0x10, 0x18, 0x1c, 0x18, 0x10 }, /* 86 */
418 { 0x04, 0x0c, 0x1c, 0x0c, 0x04 }, /* 87 */
419 { 0x08, 0x1c, 0x3e, 0x7f, 0x00 }, /* 88 */
420 { 0x00, 0x7f, 0x3e, 0x1c, 0x08 }, /* 89 */
421 { 0x7f, 0x03, 0x03, 0x06, 0x06 }, /* 8a */
422 { 0x55, 0x2a, 0x55, 0x2a, 0x55 }, /* 8b */
423 { 0x78, 0x15, 0x16, 0x14, 0x78 }, /* 8c */
424 { 0x78, 0x14, 0x16, 0x15, 0x78 }, /* 8d */
425 { 0x78, 0x16, 0x15, 0x16, 0x78 }, /* 8e */
426 { 0x7a, 0x15, 0x15, 0x16, 0x79 }, /* 8f */
427 { 0x7c, 0x55, 0x56, 0x54, 0x44 }, /* 90 */
428 { 0x7c, 0x56, 0x55, 0x46, 0x44 }, /* 91 */
429 { 0x7c, 0x55, 0x54, 0x45, 0x44 }, /* 92 */
430 { 0x00, 0x45, 0x7e, 0x44, 0x00 }, /* 93 */
431 { 0x00, 0x44, 0x7e, 0x45, 0x00 }, /* 94 */
432 { 0x08, 0x7f, 0x49, 0x22, 0x1c }, /* 95 */
433 { 0x38, 0x45, 0x46, 0x44, 0x38 }, /* 96 */
434 { 0x38, 0x44, 0x46, 0x45, 0x38 }, /* 97 */
435 { 0x38, 0x46, 0x45, 0x46, 0x38 }, /* 98 */
436 { 0x3a, 0x45, 0x45, 0x46, 0x39 }, /* 99 */
437 { 0x3c, 0x41, 0x42, 0x40, 0x3c }, /* 9a */
438 { 0x3c, 0x40, 0x42, 0x41, 0x3c }, /* 9b */
439 { 0x20, 0x54, 0x56, 0x55, 0x78 }, /* 9c */
440 { 0x20, 0x56, 0x55, 0x56, 0x78 }, /* 9d */
441 { 0x22, 0x55, 0x55, 0x56, 0x79 }, /* 9e */
442 { 0x38, 0x56, 0x55, 0x56, 0x18 }, /* 9f */
443 { 0x38, 0x55, 0x54, 0x55, 0x18 }, /* a0 */
444 { 0x00, 0x48, 0x7a, 0x41, 0x00 }, /* a1 */
445 { 0x00, 0x4a, 0x79, 0x42, 0x00 }, /* a2 */
446 { 0x00, 0x49, 0x78, 0x41, 0x00 }, /* a3 */
447 { 0x30, 0x48, 0x4a, 0x49, 0x30 }, /* a4 */
448 { 0x30, 0x4a, 0x49, 0x4a, 0x30 }, /* a5 */
449 { 0x32, 0x49, 0x49, 0x4a, 0x31 }, /* a6 */
450 { 0x38, 0x40, 0x42, 0x21, 0x78 }, /* a7 */
451 { 0x18, 0x24, 0x67, 0x24, 0x24 }, /* a8 */
452 { 0x00, 0x00, 0x00, 0x7f, 0x41 }, /* a9 */
453 { 0x00, 0x7d, 0x0a, 0x05, 0x04 }, /* aa */
454 { 0x38, 0x45, 0x46, 0x45, 0x44 }, /* ab */
455 { 0x48, 0x55, 0x56, 0x55, 0x20 }, /* ac */
456 { 0x38, 0x55, 0x56, 0x55, 0x18 }, /* ad */
457 { 0x38, 0x42, 0x45, 0x22, 0x78 }, /* ae */
458 { 0x0c, 0x50, 0x52, 0x51, 0x3c }, /* af */
459 { 0x30, 0x4a, 0x4a, 0x7f, 0x02 }, /* b0 */
460 { 0x38, 0x44, 0x46, 0x45, 0x44 }, /* b1 */
461 { 0x0e, 0x15, 0x75, 0x55, 0x06 }, /* b2 */
462 { 0x08, 0x15, 0x15, 0x75, 0x5e }, /* b3 */
463 { 0x44, 0x64, 0x55, 0x4c, 0x44 }, /* b4 */
464 { 0x44, 0x64, 0x56, 0x4d, 0x44 }, /* b5 */
465 { 0x48, 0x54, 0x56, 0x55, 0x20 }, /* b6 */
466 { 0x7c, 0x08, 0x06, 0x05, 0x78 }, /* b7 */
467 { 0x00, 0x49, 0x7f, 0x44, 0x00 }, /* b8 */
468 { 0x1c, 0x5e, 0x6f, 0x5e, 0x1c }, /* b9 */
469 { 0x7c, 0x09, 0x06, 0x05, 0x78 }, /* ba */
470 { 0x08, 0x3f, 0x48, 0x48, 0x03 }, /* bb */
471 { 0x38, 0x44, 0x7f, 0x00, 0x03 }, /* bc */
472 { 0x44, 0x65, 0x56, 0x4d, 0x44 }, /* bd */
473 { 0x02, 0x01, 0x01, 0x01, 0x01 }, /* be */
474 { 0x02, 0x01, 0x01, 0x01, 0x7d }, /* bf */
475 { 0x41, 0x41, 0x41, 0x41, 0x42 }, /* c0 */
476 { 0x39, 0x45, 0x55, 0x55, 0x31 }, /* c1 */
477 { 0x09, 0x55, 0x55, 0x55, 0x3d }, /* c2 */
478 { 0x02, 0x55, 0x75, 0x15, 0x08 }, /* c3 */
479 { 0x04, 0x2a, 0x6a, 0x2a, 0x10 }, /* c4 */
480 { 0x00, 0x44, 0x7d, 0x44, 0x00 }, /* c5 */
481 { 0x00, 0x44, 0x7c, 0x40, 0x00 }, /* c6 */
482 { 0x3c, 0x42, 0x41, 0x42, 0x3d }, /* c7 */
483 { 0x3a, 0x45, 0x44, 0x46, 0x39 }, /* c8 */
484 { 0x3a, 0x41, 0x40, 0x22, 0x79 }, /* c9 */
485 { 0x32, 0x49, 0x48, 0x4a, 0x31 }, /* ca */
486 { 0x20, 0x40, 0x40, 0x40, 0x5f }, /* cb */
487 { 0x5f, 0x40, 0x40, 0x40, 0x20 }, /* cc */
488 { 0x0e, 0x1e, 0x3c, 0x1e, 0x0e }, /* cd */
489 { 0x41, 0x7f, 0x00, 0x00, 0x00 }, /* ce */
490 { 0x32, 0x39, 0x25, 0x39, 0x32 }, /* cf */
491 { 0x22, 0x41, 0x0e, 0x49, 0x2a }, /* d0 */
492 { 0x42, 0x41, 0x41, 0x41, 0x41 }, /* d1 */
493 { 0x1c, 0x14, 0x14, 0x22, 0x7f }, /* d2 */
494 { 0x7e, 0x79, 0x49, 0x79, 0x7e }, /* d3 */
495 { 0x00, 0x08, 0x30, 0x0c, 0x02 }, /* d4 */
496 { 0x14, 0x36, 0x77, 0x36, 0x14 }, /* d5 */
497 { 0x00, 0x7c, 0x7c, 0x7f, 0x00 }, /* d6 */
498 { 0x7f, 0x7f, 0x00, 0x41, 0x41 }, /* d7 */
499 { 0x41, 0x41, 0x00, 0x41, 0x41 }, /* d8 */
500 { 0x00, 0x02, 0x5f, 0x62, 0x22 }, /* d9 */
501 { 0x7f, 0x7f, 0x00, 0x7f, 0x7f }, /* da */
502 { 0x08, 0x1c, 0x3e, 0x1c, 0x08 }, /* db */
503 { 0x7c, 0x4c, 0x54, 0x4c, 0x7c }, /* dc */
504 { 0x08, 0x7b, 0x3f, 0x7b, 0x08 }, /* dd */
505 { 0x00, 0x50, 0x20, 0x50, 0x00 }, /* de */
506 { 0x60, 0x60, 0x60, 0x60, 0x60 }, /* df */
507 { 0x70, 0x70, 0x70, 0x70, 0x70 }, /* e0 */
508 { 0x78, 0x78, 0x78, 0x78, 0x78 }, /* e1 */
509 { 0x7c, 0x7c, 0x7c, 0x7c, 0x7c }, /* e2 */
510 { 0x7e, 0x7e, 0x7e, 0x7e, 0x7e }, /* e3 */
511 { 0x00, 0x00, 0x70, 0x08, 0x04 }, /* e4 */
512 { 0x00, 0x3e, 0x41, 0x1c, 0x22 }, /* e5 */
513 { 0x5e, 0x52, 0x72, 0x52, 0x5e }, /* e6 */
514 { 0x20, 0x10, 0x0a, 0x06, 0x0e }, /* e7 */
515 { 0x02, 0x04, 0x28, 0x30, 0x38 }, /* e8 */
516 { 0x20, 0x55, 0x56, 0x56, 0x79 }, /* e9 */
517 { 0x01, 0x01, 0x01, 0x01, 0x02 }, /* ea */
518 { 0x04, 0x08, 0x70, 0x00, 0x00 }, /* eb */
519 { 0x7f, 0x7f, 0x7f, 0x7f, 0x7f }, /* ec */
520 { 0x7f, 0x63, 0x55, 0x49, 0x51 }, /* ed */
521 { 0x01, 0x01, 0x01, 0x01, 0x01 }, /* ee */
522 { 0x7f, 0x01, 0x01, 0x01, 0x01 }, /* ef */
523 { 0x70, 0x78, 0x6c, 0x06, 0x06 }, /* f0 */
524 { 0x17, 0x15, 0x7d, 0x48, 0x48 }, /* f1 */
525 { 0x52, 0x7a, 0x42, 0x06, 0x7c }, /* f2 */
526 { 0x25, 0x35, 0x29, 0x01, 0x7e }, /* f3 */
527 { 0x00, 0x00, 0x07, 0x08, 0x10 }, /* f4 */
528 { 0x20, 0x40, 0x40, 0x40, 0x40 }, /* f5 */
529 { 0x40, 0x40, 0x40, 0x40, 0x20 }, /* f6 */
530 { 0x10, 0x08, 0x07, 0x00, 0x00 }, /* f7 */
531 { 0x30, 0x48, 0x45, 0x43, 0x47 }, /* f8 */
532 { 0x7c, 0x46, 0x67, 0x46, 0x7c }, /* f9 */
533 { 0x55, 0x55, 0x41, 0x7f, 0x03 }, /* fa */
534 { 0x1c, 0x36, 0x36, 0x36, 0x1c }, /* fb */
535 { 0x60, 0x7c, 0x02, 0x31, 0x3f }, /* fc */
536 { 0x51, 0x49, 0x55, 0x63, 0x7f }, /* fd */
537 { 0x7f, 0x60, 0x60, 0x00, 0x00 }, /* fe */
538 { 0x7f, 0x03, 0x03, 0x00, 0x00 } /* ff */
539};
540unsigned char (*font_player)[256][5]=&font_new_player;
541
542void font_init()
543{
544 if (has_new_lcd())
545 font_player = &font_new_player;
546 else
547 font_player = &font_old_player;
548}
diff --git a/uisimulator/common/font-player.h b/uisimulator/common/font-player.h
index 5033681cfe..99c45da030 100644
--- a/uisimulator/common/font-player.h
+++ b/uisimulator/common/font-player.h
@@ -14,262 +14,8 @@
14 * KIND, either express or implied. 14 * KIND, either express or implied.
15 * 15 *
16 ****************************************************************************/ 16 ****************************************************************************/
17int font_player[256][5] = { 17
18 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 00 */ 18extern unsigned char (*font_player)[256][5];
19 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 01 */ 19
20 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 02 */ 20void font_init();
21 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 03 */
22 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 04 */
23 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 05 */
24 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 06 */
25 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 07 */
26 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 08 */
27 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 09 */
28 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0a */
29 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0b */
30 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0c */
31 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0d */
32 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0e */
33 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0f */
34 { 0x3e, 0x1c, 0x1c, 0x08, 0x08 }, /* 10 */
35 { 0x08, 0x08, 0x1c, 0x1c, 0x3e }, /* 11 */
36 { 0x02, 0x04, 0x08, 0x10, 0x20 }, /* 12 */
37 { 0x00, 0x4f, 0x00, 0x4f, 0x00 }, /* 13 */
38 { 0x06, 0x0f, 0x7f, 0x01, 0x7f }, /* 14 */
39 { 0x48, 0x56, 0x55, 0x35, 0x09 }, /* 15 */
40 { 0x0c, 0x0c, 0x0c, 0x0c, 0x0c }, /* 16 */
41 { 0x10, 0x38, 0x54, 0x10, 0x1f }, /* 17 */
42 { 0x04, 0x02, 0x7f, 0x02, 0x04 }, /* 18 */
43 { 0x10, 0x20, 0x7f, 0x20, 0x10 }, /* 19 */
44 { 0x7f, 0x3e, 0x1c, 0x08, 0x7f }, /* 1a */
45 { 0x7f, 0x08, 0x1c, 0x3e, 0x7f }, /* 1b */
46 { 0x7f, 0x08, 0x2a, 0x1c, 0x08 }, /* 1c */
47 { 0x08, 0x1c, 0x2a, 0x08, 0x7f }, /* 1d */
48 { 0x02, 0x0e, 0x3e, 0x0e, 0x02 }, /* 1e */
49 { 0x20, 0x38, 0x3e, 0x38, 0x20 }, /* 1f */
50 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 20 */
51 { 0x00, 0x00, 0x4f, 0x00, 0x00 }, /* 21 */
52 { 0x00, 0x07, 0x00, 0x07, 0x00 }, /* 22 */
53 { 0x14, 0x7f, 0x14, 0x7f, 0x14 }, /* 23 */
54 { 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, /* 24 */
55 { 0x23, 0x13, 0x08, 0x64, 0x62 }, /* 25 */
56 { 0x36, 0x49, 0x55, 0x22, 0x50 }, /* 26 */
57 { 0x00, 0x05, 0x03, 0x00, 0x00 }, /* 27 */
58 { 0x00, 0x1c, 0x22, 0x41, 0x00 }, /* 28 */
59 { 0x00, 0x41, 0x22, 0x1c, 0x00 }, /* 29 */
60 { 0x14, 0x08, 0x3e, 0x08, 0x14 }, /* 2a */
61 { 0x08, 0x08, 0x3e, 0x08, 0x08 }, /* 2b */
62 { 0x00, 0x50, 0x30, 0x00, 0x00 }, /* 2c */
63 { 0x08, 0x08, 0x08, 0x08, 0x08 }, /* 2d */
64 { 0x00, 0x30, 0x30, 0x00, 0x00 }, /* 2e */
65 { 0x20, 0x10, 0x08, 0x04, 0x02 }, /* 2f */
66 { 0x3e, 0x51, 0x49, 0x45, 0x3e }, /* 30 */
67 { 0x00, 0x42, 0x7f, 0x40, 0x00 }, /* 31 */
68 { 0x42, 0x61, 0x51, 0x49, 0x46 }, /* 32 */
69 { 0x21, 0x41, 0x45, 0x4b, 0x31 }, /* 33 */
70 { 0x18, 0x14, 0x12, 0x7f, 0x10 }, /* 34 */
71 { 0x27, 0x45, 0x45, 0x45, 0x39 }, /* 35 */
72 { 0x3c, 0x4a, 0x49, 0x49, 0x30 }, /* 36 */
73 { 0x01, 0x01, 0x71, 0x0d, 0x03 }, /* 37 */
74 { 0x36, 0x49, 0x49, 0x49, 0x36 }, /* 38 */
75 { 0x06, 0x49, 0x49, 0x29, 0x1e }, /* 39 */
76 { 0x00, 0x36, 0x36, 0x00, 0x00 }, /* 3a */
77 { 0x00, 0x5b, 0x3b, 0x00, 0x00 }, /* 3b */
78 { 0x08, 0x14, 0x22, 0x41, 0x00 }, /* 3c */
79 { 0x14, 0x14, 0x14, 0x14, 0x14 }, /* 3d */
80 { 0x00, 0x41, 0x22, 0x14, 0x08 }, /* 3e */
81 { 0x02, 0x01, 0x51, 0x09, 0x06 }, /* 3f */
82 { 0x32, 0x49, 0x79, 0x41, 0x3e }, /* 40 */
83 { 0x7e, 0x11, 0x11, 0x11, 0x7e }, /* 41 */
84 { 0x7f, 0x49, 0x49, 0x49, 0x36 }, /* 42 */
85 { 0x3e, 0x41, 0x41, 0x41, 0x22 }, /* 43 */
86 { 0x7f, 0x41, 0x41, 0x22, 0x1c }, /* 44 */
87 { 0x7f, 0x49, 0x49, 0x49, 0x41 }, /* 45 */
88 { 0x7f, 0x09, 0x09, 0x09, 0x01 }, /* 46 */
89 { 0x3e, 0x41, 0x49, 0x49, 0x7a }, /* 47 */
90 { 0x7f, 0x08, 0x08, 0x08, 0x7f }, /* 48 */
91 { 0x00, 0x41, 0x7f, 0x41, 0x00 }, /* 49 */
92 { 0x20, 0x41, 0x41, 0x3f, 0x01 }, /* 4a */
93 { 0x7f, 0x08, 0x14, 0x22, 0x41 }, /* 4b */
94 { 0x7f, 0x40, 0x40, 0x40, 0x40 }, /* 4c */
95 { 0x7f, 0x02, 0x0c, 0x02, 0x7f }, /* 4d */
96 { 0x7f, 0x04, 0x08, 0x10, 0x7f }, /* 4e */
97 { 0x3e, 0x41, 0x41, 0x41, 0x3e }, /* 4f */
98 { 0x7f, 0x09, 0x09, 0x09, 0x06 }, /* 50 */
99 { 0x3e, 0x41, 0x41, 0x21, 0x5e }, /* 51 */
100 { 0x7f, 0x09, 0x19, 0x29, 0x46 }, /* 52 */
101 { 0x26, 0x49, 0x49, 0x49, 0x32 }, /* 53 */
102 { 0x01, 0x01, 0x7f, 0x01, 0x01 }, /* 54 */
103 { 0x3f, 0x40, 0x40, 0x40, 0x3f }, /* 55 */
104 { 0x1f, 0x20, 0x40, 0x20, 0x1f }, /* 56 */
105 { 0x3f, 0x40, 0x38, 0x40, 0x3f }, /* 57 */
106 { 0x63, 0x14, 0x08, 0x14, 0x63 }, /* 58 */
107 { 0x03, 0x04, 0x78, 0x04, 0x03 }, /* 59 */
108 { 0x61, 0x51, 0x49, 0x45, 0x43 }, /* 5a */
109 { 0x00, 0x7f, 0x41, 0x41, 0x00 }, /* 5b */
110 { 0x15, 0x16, 0x7c, 0x16, 0x15 }, /* 5c */
111 { 0x00, 0x41, 0x41, 0x7f, 0x00 }, /* 5d */
112 { 0x04, 0x02, 0x01, 0x02, 0x04 }, /* 5e */
113 { 0x40, 0x40, 0x40, 0x40, 0x40 }, /* 5f */
114 { 0x00, 0x01, 0x02, 0x04, 0x00 }, /* 60 */
115 { 0x20, 0x54, 0x54, 0x54, 0x78 }, /* 61 */
116 { 0x7f, 0x48, 0x44, 0x44, 0x38 }, /* 62 */
117 { 0x38, 0x44, 0x44, 0x44, 0x20 }, /* 63 */
118 { 0x38, 0x44, 0x44, 0x48, 0x7f }, /* 64 */
119 { 0x38, 0x54, 0x54, 0x54, 0x18 }, /* 65 */
120 { 0x08, 0x7e, 0x09, 0x01, 0x02 }, /* 66 */
121 { 0x0c, 0x52, 0x52, 0x52, 0x3e }, /* 67 */
122 { 0x7f, 0x08, 0x04, 0x04, 0x78 }, /* 68 */
123 { 0x00, 0x44, 0x7d, 0x40, 0x00 }, /* 69 */
124 { 0x20, 0x40, 0x44, 0x3d, 0x00 }, /* 6a */
125 { 0x7f, 0x10, 0x28, 0x44, 0x00 }, /* 6b */
126 { 0x00, 0x41, 0x7f, 0x40, 0x00 }, /* 6c */
127 { 0x7c, 0x04, 0x18, 0x04, 0x78 }, /* 6d */
128 { 0x7c, 0x08, 0x04, 0x04, 0x78 }, /* 6e */
129 { 0x38, 0x44, 0x44, 0x44, 0x38 }, /* 6f */
130 { 0x7c, 0x14, 0x14, 0x14, 0x08 }, /* 70 */
131 { 0x08, 0x14, 0x14, 0x18, 0x7c }, /* 71 */
132 { 0x7c, 0x08, 0x04, 0x04, 0x08 }, /* 72 */
133 { 0x48, 0x54, 0x54, 0x54, 0x20 }, /* 73 */
134 { 0x04, 0x3f, 0x44, 0x40, 0x20 }, /* 74 */
135 { 0x3c, 0x40, 0x40, 0x20, 0x7c }, /* 75 */
136 { 0x1c, 0x20, 0x40, 0x20, 0x1c }, /* 76 */
137 { 0x3c, 0x40, 0x30, 0x40, 0x3c }, /* 77 */
138 { 0x44, 0x28, 0x10, 0x28, 0x44 }, /* 78 */
139 { 0x4c, 0x50, 0x50, 0x50, 0x3c }, /* 79 */
140 { 0x44, 0x64, 0x54, 0x4c, 0x44 }, /* 7a */
141 { 0x00, 0x08, 0x36, 0x41, 0x00 }, /* 7b */
142 { 0x00, 0x00, 0x7f, 0x00, 0x00 }, /* 7c */
143 { 0x00, 0x41, 0x36, 0x08, 0x00 }, /* 7d */
144 { 0x08, 0x08, 0x2a, 0x1c, 0x08 }, /* 7e */
145 { 0x08, 0x1c, 0x2a, 0x08, 0x08 }, /* 7f */
146 { 0x40, 0x40, 0x40, 0x40, 0x40 }, /* 80 */
147 { 0x60, 0x60, 0x60, 0x60, 0x60 }, /* 81 */
148 { 0x70, 0x70, 0x70, 0x70, 0x70 }, /* 82 */
149 { 0x78, 0x78, 0x78, 0x78, 0x78 }, /* 83 */
150 { 0x7c, 0x7c, 0x7c, 0x7c, 0x7c }, /* 84 */
151 { 0x7e, 0x7e, 0x7e, 0x7e, 0x7e }, /* 85 */
152 { 0x7f, 0x7f, 0x7f, 0x7f, 0x7f }, /* 86 */
153 { 0x08, 0x2a, 0x1c, 0x2a, 0x08 }, /* 87 */
154 { 0x7f, 0x00, 0x00, 0x00, 0x7f }, /* 88 */
155 { 0x7f, 0x7f, 0x00, 0x00, 0x7f }, /* 89 */
156 { 0x7f, 0x7f, 0x7f, 0x00, 0x7f }, /* 8a */
157 { 0x00, 0x7f, 0x00, 0x00, 0x00 }, /* 8b */
158 { 0x00, 0x7f, 0x7f, 0x00, 0x00 }, /* 8c */
159 { 0x00, 0x7f, 0x7f, 0x7f, 0x00 }, /* 8d */
160 { 0x00, 0x7f, 0x7f, 0x7f, 0x7f }, /* 8e */
161 { 0x3e, 0x3e, 0x3e, 0x3e, 0x3e }, /* 8f */
162 { 0x1c, 0x3e, 0x3e, 0x3e, 0x1c }, /* 90 */
163 { 0x7f, 0x41, 0x41, 0x41, 0x7f }, /* 91 */
164 { 0x7f, 0x5b, 0x41, 0x5f, 0x7f }, /* 92 */
165 { 0x7f, 0x4d, 0x55, 0x59, 0x7f }, /* 93 */
166 { 0x20, 0x40, 0x3c, 0x04, 0x04 }, /* 94 */
167 { 0x44, 0x44, 0x5f, 0x44, 0x44 }, /* 95 */
168 { 0x22, 0x14, 0x08, 0x14, 0x22 }, /* 96 */
169 { 0x08, 0x08, 0x2a, 0x08, 0x08 }, /* 97 */
170 { 0x45, 0x29, 0x11, 0x29, 0x45 }, /* 98 */
171 { 0x1d, 0x15, 0x17, 0x00, 0x00 }, /* 99 */
172 { 0x15, 0x15, 0x1f, 0x00, 0x00 }, /* 9a */
173 { 0x17, 0x08, 0x74, 0x56, 0x5d }, /* 9b */
174 { 0x17, 0x08, 0x24, 0x32, 0x79 }, /* 9c */
175 { 0x35, 0x1f, 0x28, 0x34, 0x7a }, /* 9d */
176 { 0x08, 0x14, 0x2a, 0x14, 0x22 }, /* 9e */
177 { 0x22, 0x14, 0x2a, 0x14, 0x08 }, /* 9f */
178 { 0x00, 0x00, 0x00, 0x00, 0x00 }, /* a0 */
179 { 0x70, 0x50, 0x70, 0x00, 0x00 }, /* a1 */
180 { 0x00, 0x00, 0x0f, 0x01, 0x01 }, /* a2 */
181 { 0x40, 0x40, 0x78, 0x00, 0x00 }, /* a3 */
182 { 0x10, 0x20, 0x40, 0x00, 0x00 }, /* a4 */
183 { 0x00, 0x18, 0x18, 0x00, 0x00 }, /* a5 */
184 { 0x0a, 0x0a, 0x4a, 0x2a, 0x1e }, /* a6 */
185 { 0x04, 0x44, 0x34, 0x14, 0x0c }, /* a7 */
186 { 0x20, 0x10, 0x78, 0x04, 0x00 }, /* a8 */
187 { 0x18, 0x08, 0x4c, 0x48, 0x38 }, /* a9 */
188 { 0x48, 0x48, 0x78, 0x48, 0x48 }, /* aa */
189 { 0x48, 0x28, 0x18, 0x7c, 0x08 }, /* ab */
190 { 0x08, 0x7c, 0x08, 0x28, 0x18 }, /* ac */
191 { 0x40, 0x48, 0x48, 0x78, 0x40 }, /* ad */
192 { 0x54, 0x54, 0x54, 0x7c, 0x00 }, /* ae */
193 { 0x18, 0x00, 0x58, 0x40, 0x38 }, /* af */
194 { 0x08, 0x08, 0x08, 0x08, 0x08 }, /* b0 */
195 { 0x01, 0x41, 0x3d, 0x09, 0x07 }, /* b1 */
196 { 0x10, 0x08, 0x7c, 0x02, 0x01 }, /* b2 */
197 { 0x0e, 0x02, 0x43, 0x22, 0x1e }, /* b3 */
198 { 0x42, 0x42, 0x7e, 0x42, 0x42 }, /* b4 */
199 { 0x22, 0x12, 0x0a, 0x7f, 0x02 }, /* b5 */
200 { 0x42, 0x3f, 0x02, 0x42, 0x3e }, /* b6 */
201 { 0x0a, 0x0a, 0x7f, 0x0a, 0x0a }, /* b7 */
202 { 0x08, 0x46, 0x42, 0x22, 0x1e }, /* b8 */
203 { 0x04, 0x03, 0x42, 0x3e, 0x02 }, /* b9 */
204 { 0x42, 0x42, 0x42, 0x42, 0x7e }, /* ba */
205 { 0x02, 0x07, 0x42, 0x3f, 0x02 }, /* bb */
206 { 0x4a, 0x4a, 0x40, 0x20, 0x10 }, /* bc */
207 { 0x42, 0x22, 0x12, 0x2a, 0x46 }, /* bd */
208 { 0x02, 0x3f, 0x42, 0x4a, 0x46 }, /* be */
209 { 0x06, 0x48, 0x40, 0x20, 0x1e }, /* bf */
210 { 0x08, 0x46, 0x4a, 0x32, 0x1e }, /* c0 */
211 { 0x0a, 0x4a, 0x3e, 0x09, 0x08 }, /* c1 */
212 { 0x0e, 0x00, 0x4e, 0x20, 0x1e }, /* c2 */
213 { 0x04, 0x45, 0x3d, 0x05, 0x04 }, /* c3 */
214 { 0x00, 0x7f, 0x08, 0x10, 0x00 }, /* c4 */
215 { 0x44, 0x24, 0x1f, 0x04, 0x04 }, /* c5 */
216 { 0x40, 0x42, 0x42, 0x42, 0x40 }, /* c6 */
217 { 0x42, 0x2a, 0x12, 0x2a, 0x06 }, /* c7 */
218 { 0x22, 0x12, 0x7b, 0x16, 0x22 }, /* c8 */
219 { 0x00, 0x40, 0x20, 0x1f, 0x00 }, /* c9 */
220 { 0x78, 0x00, 0x02, 0x04, 0x78 }, /* ca */
221 { 0x3f, 0x44, 0x44, 0x44, 0x44 }, /* cb */
222 { 0x02, 0x42, 0x42, 0x22, 0x1e }, /* cc */
223 { 0x04, 0x02, 0x04, 0x08, 0x30 }, /* cd */
224 { 0x32, 0x02, 0x7f, 0x02, 0x32 }, /* ce */
225 { 0x02, 0x12, 0x22, 0x52, 0x0e }, /* cf */
226 { 0x00, 0x2a, 0x2a, 0x2a, 0x40 }, /* d0 */
227 { 0x38, 0x24, 0x22, 0x20, 0x70 }, /* d1 */
228 { 0x40, 0x28, 0x10, 0x28, 0x06 }, /* d2 */
229 { 0x0a, 0x3e, 0x4a, 0x4a, 0x4a }, /* d3 */
230 { 0x04, 0x7f, 0x04, 0x14, 0x0c }, /* d4 */
231 { 0x40, 0x42, 0x42, 0x7e, 0x40 }, /* d5 */
232 { 0x4a, 0x4a, 0x4a, 0x4a, 0x7e }, /* d6 */
233 { 0x04, 0x05, 0x45, 0x25, 0x1c }, /* d7 */
234 { 0x1f, 0x40, 0x20, 0x1f, 0x00 }, /* d8 */
235 { 0x7c, 0x00, 0x7e, 0x40, 0x30 }, /* d9 */
236 { 0x7e, 0x40, 0x20, 0x10, 0x08 }, /* da */
237 { 0x7f, 0x41, 0x41, 0x41, 0x7f }, /* db */
238 { 0x0e, 0x02, 0x42, 0x22, 0x1e }, /* dc */
239 { 0x42, 0x42, 0x40, 0x20, 0x18 }, /* dd */
240 { 0x02, 0x04, 0x01, 0x02, 0x00 }, /* de */
241 { 0x07, 0x05, 0x07, 0x00, 0x00 }, /* df */
242 { 0x38, 0x44, 0x48, 0x30, 0x4c }, /* e0 */
243 { 0x7c, 0x2a, 0x2a, 0x2a, 0x14 }, /* e1 */
244 { 0x02, 0x4c, 0x30, 0x0c, 0x02 }, /* e2 */
245 { 0x44, 0x3c, 0x04, 0x7c, 0x44 }, /* e3 */
246 { 0x63, 0x55, 0x49, 0x41, 0x41 }, /* e4 */
247 { 0x38, 0x44, 0x4c, 0x54, 0x24 }, /* e5 */
248 { 0x40, 0x3e, 0x10, 0x10, 0x1e }, /* e6 */
249 { 0x04, 0x04, 0x3c, 0x44, 0x44 }, /* e7 */
250 { 0x49, 0x55, 0x7f, 0x55, 0x49 }, /* e8 */
251 { 0x3c, 0x4a, 0x4a, 0x4a, 0x3c }, /* e9 */
252 { 0x58, 0x64, 0x04, 0x64, 0x58 }, /* ea */
253 { 0x3a, 0x45, 0x45, 0x45, 0x39 }, /* eb */
254 { 0x60, 0x50, 0x20, 0x50, 0x30 }, /* ec */
255 { 0x08, 0x54, 0x3e, 0x15, 0x08 }, /* ed */
256 { 0x14, 0x2a, 0x2a, 0x2a, 0x00 }, /* ee */
257 { 0x7c, 0x0a, 0x09, 0x09, 0x06 }, /* ef */
258 { 0x08, 0x04, 0x08, 0x10, 0x08 }, /* f0 */
259 { 0x14, 0x0a, 0x14, 0x28, 0x14 }, /* f1 */
260 { 0x24, 0x3b, 0x2a, 0x7e, 0x2a }, /* f2 */
261 { 0x40, 0x3f, 0x15, 0x15, 0x7f }, /* f3 */
262 { 0x46, 0x20, 0x1f, 0x20, 0x46 }, /* f4 */
263 { 0x24, 0x14, 0x7f, 0x18, 0x24 }, /* f5 */
264 { 0x24, 0x14, 0x7f, 0x14, 0x24 }, /* f6 */
265 { 0x44, 0x6a, 0x79, 0x6a, 0x44 }, /* f7 */
266 { 0x40, 0x44, 0x7f, 0x44, 0x40 }, /* f8 */
267 { 0x7f, 0x49, 0x49, 0x49, 0x7f }, /* f9 */
268 { 0x14, 0x14, 0x7c, 0x14, 0x12 }, /* fa */
269 { 0x44, 0x3c, 0x14, 0x14, 0x74 }, /* fb */
270 { 0x7c, 0x14, 0x1c, 0x14, 0x7c }, /* fc */
271 { 0x2a, 0x55, 0x2a, 0x55, 0x2a }, /* fd */
272 { 0x55, 0x2a, 0x55, 0x2a, 0x55 }, /* fe */
273 { 0x7f, 0x7f, 0x7f, 0x7f, 0x7f } /* ff */
274};
275 21
diff --git a/uisimulator/common/lcd-playersim.c b/uisimulator/common/lcd-playersim.c
index a804cc4b7e..7c9685c5db 100644
--- a/uisimulator/common/lcd-playersim.c
+++ b/uisimulator/common/lcd-playersim.c
@@ -29,74 +29,114 @@
29#include "system.h" 29#include "system.h"
30 30
31#include "font-player.h" 31#include "font-player.h"
32#include "lcd-playersim.h"
32 33
33/*** definitions ***/ 34/*** definitions ***/
34 35
35#define CHAR_WIDTH 6 36#define CHAR_WIDTH 6
36#define CHAR_HEIGHT 8 37#define CHAR_HEIGHT 8
37#define ICON_HEIGHT 10 38#define ICON_HEIGHT 24
39#define CHAR_PIXEL 4
40#define BORDER_MARGIN 1
38 41
39unsigned char lcd_framebuffer[LCD_WIDTH][LCD_HEIGHT/8]; 42unsigned char lcd_buffer[2][11];
40 43
41static int double_height=1; 44static int double_height=1;
45extern bool lcd_display_redraw;
46extern unsigned const char *lcd_ascii;
47
42 48
43void lcd_print_icon(int x, int icon_line, bool enable, char **icon) 49void lcd_print_icon(int x, int icon_line, bool enable, char **icon)
44{ 50{
45 int xpos = x; 51 int xpos = x;
46 int ypos = icon_line*(ICON_HEIGHT+CHAR_HEIGHT*2); 52 int ypos = icon_line*(ICON_HEIGHT+CHAR_HEIGHT*2);
47 int row=0, col; 53 int row=0, col;
54
55 int p=0, cp=0;
56 struct coordinate points[LCD_WIDTH * LCD_HEIGHT];
57 struct coordinate clearpoints[LCD_WIDTH * LCD_HEIGHT];
48 58
49 while (icon[row]) { 59 while (icon[row]) {
50 col=0; 60 col=0;
51 while (icon[row][col]) { 61 while (icon[row][col]) {
52 lcd_framebuffer[xpos+col][(ypos+row)/8] &= ~(1<<((row+ypos)&7)); 62 switch(icon[row][col]) {
53 if (enable) { 63 case '*':
54 if (icon[row][col]=='*') { 64 if (enable) {
55 lcd_framebuffer[xpos+col][(ypos+row)/8] |= 1<<((row+ypos)&7); 65 /* set a dot */
56 } 66 points[p].x = xpos + col +BORDER_MARGIN;
67 points[p].y = ypos+row +BORDER_MARGIN;
68 p++; /* increase the point counter */
69 } else {
70 /* clear a dot */
71 clearpoints[cp].x = xpos + col +BORDER_MARGIN;
72 clearpoints[cp].y = ypos+row +BORDER_MARGIN;
73 cp++; /* increase the point counter */
74 }
75 break;
76 case ' ': /* Clear bit */
77 /* clear a dot */
78 clearpoints[cp].x = xpos + col+BORDER_MARGIN;
79 clearpoints[cp].y = ypos+row+BORDER_MARGIN;
80 cp++; /* increase the point counter */
81 break;
57 } 82 }
58 col++; 83 col++;
59 } 84 }
60 row++; 85 row++;
61 } 86 }
62 lcd_update(); 87 drawdots(0, &clearpoints[0], cp);
88 drawdots(1, &points[0], p);
63} 89}
64 90
65void lcd_print_char(int x, int y, unsigned char ch) 91void lcd_print_char(int x, int y)
66{ 92{
67 int xpos = x * CHAR_WIDTH; 93 int xpos = x * CHAR_WIDTH * CHAR_PIXEL;
68 int ypos = y * CHAR_HEIGHT; 94 int ypos = y * CHAR_HEIGHT * CHAR_PIXEL + ICON_HEIGHT;
69 int col, row; 95 int col, row;
70 int y2; 96 int p=0, cp=0;
71 // double_height=2; 97 struct rectangle points[CHAR_HEIGHT*CHAR_WIDTH];
98 struct rectangle clearpoints[CHAR_HEIGHT*CHAR_WIDTH];
99 unsigned char ch=lcd_buffer[y][x];
100
72 if (double_height == 2 && y == 1) 101 if (double_height == 2 && y == 1)
73 return; /* Second row can't be printed in double height. ??*/ 102 return; /* Second row can't be printed in double height. ??*/
74 103
75 xpos*=2; 104 /* Clear all char
76 105 clearpoints[cp].x = xpos +BORDER_MARGIN;
77 /* printf("(%d,%d)='%d'\n", x, y, ch);*/ 106 clearpoints[cp].y = ypos +BORDER_MARGIN;
107 clearpoints[cp].width=CHAR_WIDTH*CHAR_PIXEL;
108 clearpoints[cp].height=7*CHAR_PIXEL*double_height;
109 cp++;
110 */
78 for (col=0; col<5; col++) { 111 for (col=0; col<5; col++) {
79 for (row=0; row<7; row++) { 112 for (row=0; row<7; row++) {
80 for (y2=0; y2<double_height*2; y2++) { 113 char fontbit=(*font_player)[ch][col]&(1<<row);
81 int y; 114 int height=CHAR_PIXEL*double_height;
82 unsigned char bitval;
83 115
84 if (double_height*row >=7) 116 y=CHAR_PIXEL*(double_height*row)+ypos;
85 y2+=double_height; 117 if (double_height==2) {
86 y=y2+double_height*2*row+2*ypos+ICON_HEIGHT; 118 if (row == 3) /* Adjust for blank row in the middle */
119 height=CHAR_PIXEL;
120 }
87 121
88 bitval=3<<((y&6)); 122 if (fontbit) {
89 if (font_player[ch][col]&(1<<row)) { 123 /* set a dot */
90 lcd_framebuffer[xpos+col*2][y/8] |= bitval; 124 points[p].x = xpos + col*CHAR_PIXEL +BORDER_MARGIN;
91 125 points[p].y = y +BORDER_MARGIN;
92 } else { 126 points[p].width=CHAR_PIXEL;
93 lcd_framebuffer[xpos+col*2][y/8] &= ~bitval; 127 points[p].height=height;
94 } 128 p++; /* increase the point counter */
95 lcd_framebuffer[xpos+col*2+1][y/8] = 129 } else {
96 lcd_framebuffer[xpos+col*2][y/8]; 130 clearpoints[cp].x = xpos + col*CHAR_PIXEL +BORDER_MARGIN;
131 clearpoints[cp].y = y +BORDER_MARGIN;
132 clearpoints[cp].width=CHAR_PIXEL;
133 clearpoints[cp].height=height;
134 cp++;
97 } 135 }
98 } 136 }
99 } 137 }
138 drawrectangles(0, &clearpoints[0], cp);
139 drawrectangles(1, &points[0], p);
100} 140}
101 141
102 142
@@ -106,189 +146,35 @@ void lcd_print_char(int x, int y, unsigned char ch)
106 */ 146 */
107void lcd_drawrect (int x, int y, int nx, int ny) 147void lcd_drawrect (int x, int y, int nx, int ny)
108{ 148{
109 int i; 149 (void)x;
110 150 (void)y;
111 if (x > LCD_WIDTH) 151 (void)nx;
112 return; 152 (void)ny;
113 if (y > LCD_HEIGHT)
114 return;
115
116 if (x + nx > LCD_WIDTH)
117 nx = LCD_WIDTH - x;
118 if (y + ny > LCD_HEIGHT)
119 ny = LCD_HEIGHT - y;
120
121 /* vertical lines */
122 for (i = 0; i < ny; i++) {
123 DRAW_PIXEL(x, (y + i));
124 DRAW_PIXEL((x + nx - 1), (y + i));
125 }
126
127 /* horizontal lines */
128 for (i = 0; i < nx; i++) {
129 DRAW_PIXEL((x + i),y);
130 DRAW_PIXEL((x + i),(y + ny - 1));
131 }
132} 153}
133 154
134/* Invert a rectangular area at (x, y), size (nx, ny) */ 155/* Invert a rectangular area at (x, y), size (nx, ny) */
135void lcd_invertrect (int x, int y, int nx, int ny) 156void lcd_invertrect (int x, int y, int nx, int ny)
136{ 157{
137 int i, j; 158 (void)x;
138 159 (void)y;
139 if (x > LCD_WIDTH) 160 (void)nx;
140 return; 161 (void)ny;
141 if (y > LCD_HEIGHT)
142 return;
143
144 if (x + nx > LCD_WIDTH)
145 nx = LCD_WIDTH - x;
146 if (y + ny > LCD_HEIGHT)
147 ny = LCD_HEIGHT - y;
148
149 for (i = 0; i < nx; i++)
150 for (j = 0; j < ny; j++)
151 INVERT_PIXEL((x + i), (y + j));
152} 162}
153 163
154void lcd_drawline( int x1, int y1, int x2, int y2 ) 164void lcd_drawline( int x1, int y1, int x2, int y2 )
155{ 165{
156 int numpixels; 166 (void)x1;
157 int i; 167 (void)x2;
158 int deltax, deltay; 168 (void)y1;
159 int d, dinc1, dinc2; 169 (void)y2;
160 int x, xinc1, xinc2;
161 int y, yinc1, yinc2;
162
163 deltax = abs(x2 - x1);
164 deltay = abs(y2 - y1);
165
166 if(deltax >= deltay)
167 {
168 numpixels = deltax;
169 d = 2 * deltay - deltax;
170 dinc1 = deltay * 2;
171 dinc2 = (deltay - deltax) * 2;
172 xinc1 = 1;
173 xinc2 = 1;
174 yinc1 = 0;
175 yinc2 = 1;
176 }
177 else
178 {
179 numpixels = deltay;
180 d = 2 * deltax - deltay;
181 dinc1 = deltax * 2;
182 dinc2 = (deltax - deltay) * 2;
183 xinc1 = 0;
184 xinc2 = 1;
185 yinc1 = 1;
186 yinc2 = 1;
187 }
188 numpixels++; /* include endpoints */
189
190 if(x1 > x2)
191 {
192 xinc1 = -xinc1;
193 xinc2 = -xinc2;
194 }
195
196 if(y1 > y2)
197 {
198 yinc1 = -yinc1;
199 yinc2 = -yinc2;
200 }
201
202 x = x1;
203 y = y1;
204
205 for(i=0; i<numpixels; i++)
206 {
207 DRAW_PIXEL(x,y);
208
209 if(d < 0)
210 {
211 d += dinc1;
212 x += xinc1;
213 y += yinc1;
214 }
215 else
216 {
217 d += dinc2;
218 x += xinc2;
219 y += yinc2;
220 }
221 }
222} 170}
223 171
224void lcd_clearline( int x1, int y1, int x2, int y2 ) 172void lcd_clearline( int x1, int y1, int x2, int y2 )
225{ 173{
226 int numpixels; 174 (void)x1;
227 int i; 175 (void)x2;
228 int deltax, deltay; 176 (void)y1;
229 int d, dinc1, dinc2; 177 (void)y2;
230 int x, xinc1, xinc2;
231 int y, yinc1, yinc2;
232
233 deltax = abs(x2 - x1);
234 deltay = abs(y2 - y1);
235
236 if(deltax >= deltay)
237 {
238 numpixels = deltax;
239 d = 2 * deltay - deltax;
240 dinc1 = deltay * 2;
241 dinc2 = (deltay - deltax) * 2;
242 xinc1 = 1;
243 xinc2 = 1;
244 yinc1 = 0;
245 yinc2 = 1;
246 }
247 else
248 {
249 numpixels = deltay;
250 d = 2 * deltax - deltay;
251 dinc1 = deltax * 2;
252 dinc2 = (deltax - deltay) * 2;
253 xinc1 = 0;
254 xinc2 = 1;
255 yinc1 = 1;
256 yinc2 = 1;
257 }
258 numpixels++; /* include endpoints */
259
260 if(x1 > x2)
261 {
262 xinc1 = -xinc1;
263 xinc2 = -xinc2;
264 }
265
266 if(y1 > y2)
267 {
268 yinc1 = -yinc1;
269 yinc2 = -yinc2;
270 }
271
272 x = x1;
273 y = y1;
274
275 for(i=0; i<numpixels; i++)
276 {
277 CLEAR_PIXEL(x,y);
278
279 if(d < 0)
280 {
281 d += dinc1;
282 x += xinc1;
283 y += yinc1;
284 }
285 else
286 {
287 d += dinc2;
288 x += xinc2;
289 y += yinc2;
290 }
291 }
292} 178}
293 179
294/* 180/*
@@ -296,7 +182,8 @@ void lcd_clearline( int x1, int y1, int x2, int y2 )
296 */ 182 */
297void lcd_drawpixel(int x, int y) 183void lcd_drawpixel(int x, int y)
298{ 184{
299 DRAW_PIXEL(x,y); 185 (void)x;
186 (void)y;
300} 187}
301 188
302/* 189/*
@@ -304,7 +191,8 @@ void lcd_drawpixel(int x, int y)
304 */ 191 */
305void lcd_clearpixel(int x, int y) 192void lcd_clearpixel(int x, int y)
306{ 193{
307 CLEAR_PIXEL(x,y); 194 (void)x;
195 (void)y;
308} 196}
309 197
310/* 198/*
@@ -312,21 +200,28 @@ void lcd_clearpixel(int x, int y)
312 */ 200 */
313void lcd_invertpixel(int x, int y) 201void lcd_invertpixel(int x, int y)
314{ 202{
315 INVERT_PIXEL(x,y); 203 (void)x;
204 (void)y;
316} 205}
317 206
318void lcd_clear_display(void) 207void lcd_clear_display(void)
319{ 208{
320 memset (lcd_framebuffer, 0, sizeof lcd_framebuffer); 209 int x, y;
210 for (y=0; y<2; y++) {
211 for (x=0; x<11; x++) {
212 lcd_buffer[y][x++]=lcd_ascii[' '];
213 }
214 }
215 lcd_update();
321} 216}
322 217
323void lcd_puts(int x, int y, unsigned char *str) 218void lcd_puts(int x, int y, unsigned char *str)
324{ 219{
325 int i; 220 int i;
326 for (i=0; *str && x<11; i++) 221 for (i=0; *str && x<11; i++)
327 lcd_print_char(x++, y, *str++); 222 lcd_buffer[y][x++]=lcd_ascii[*str++];
328 for (; x<11; x++) 223 for (; x<11; x++)
329 lcd_print_char(x, y, ' '); 224 lcd_buffer[y][x]=lcd_ascii[' '];
330 lcd_update(); 225 lcd_update();
331} 226}
332 227
@@ -353,14 +248,16 @@ void lcd_define_pattern(int which, char *pattern, int length)
353 } 248 }
354 for (i = 1; i <= 5; i++) 249 for (i = 1; i <= 5; i++)
355 { 250 {
356 font_player[pat][i-1] = icon[i]; 251 (*font_player)[pat][i-1] = icon[i];
357 } 252 }
253 lcd_display_redraw=true;
254 lcd_update();
358} 255}
359 256
360extern void lcd_puts(int x, int y, unsigned char *str); 257extern void lcd_puts(int x, int y, unsigned char *str);
361 258
362void lcd_putc(int x, int y, unsigned char ch) 259void lcd_putc(int x, int y, unsigned char ch)
363{ 260{
364 lcd_print_char(x, y, ch); 261 lcd_buffer[y][x]=lcd_ascii[ch];
365 lcd_update(); 262 lcd_update();
366} 263}
diff --git a/uisimulator/common/stubs.c b/uisimulator/common/stubs.c
index 89e3cea102..9b628828ae 100644
--- a/uisimulator/common/stubs.c
+++ b/uisimulator/common/stubs.c
@@ -29,6 +29,9 @@
29#include "string.h" 29#include "string.h"
30#include "lcd.h" 30#include "lcd.h"
31 31
32extern char having_new_lcd;
33
34
32void backlight_on(void) 35void backlight_on(void)
33{ 36{
34 /* we could do something better here! */ 37 /* we could do something better here! */
@@ -163,7 +166,7 @@ bool oscillograph(void)
163 166
164bool has_new_lcd(void) 167bool has_new_lcd(void)
165{ 168{
166 return false; 169 return having_new_lcd;
167} 170}
168 171
169void lcd_set_contrast( int x ) 172void lcd_set_contrast( int x )