]> git.vomp.tv Git - vompclient.git/blob - wsymbol.cc
Fix an OO issue that only a later compiler picked up
[vompclient.git] / wsymbol.cc
1 /*
2     Copyright 2004-2005 Chris Tallon
3
4     This file is part of VOMP.
5
6     VOMP is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by
8     the Free Software Foundation; either version 2 of the License, or
9     (at your option) any later version.
10
11     VOMP is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     GNU General Public License for more details.
15
16     You should have received a copy of the GNU General Public License
17     along with VOMP; if not, write to the Free Software
18     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19 */
20
21 #include "wsymbol.h"
22
23 UCHAR WSymbol::widths[] = { 2, 2, 4, 4, 1, 1, 3, 3, 3, 3, 3, 4, 4, 2, 2};
24 UCHAR WSymbol::heights[] = { 8, 8, 12, 12, 24, 4, 18, 18, 18, 18, 18, 30, 30, 16, 16};
25
26 UCHAR WSymbol::symbols[] = {
27
28 /*
29 00000000 00000011
30 00000000 00001111
31 00000000 00111111
32 00000000 11111111
33 00000011 11111111
34 00001111 11111111
35 00111111 11111111
36 11111111 11111111
37 */
38
39 0x00, 0x03,
40 0x00, 0x0F,
41 0x00, 0x3F,
42 0x00, 0xFF,
43 0x03, 0xFF,
44 0x0F, 0xFF,
45 0x3F, 0xFF,
46 0xFF, 0xFF,
47
48 /*
49 11111111 00000011
50 00000000 00001111
51 00000000 00111111
52 00000000 11111111
53 00000011 11111111
54 00001111 11111111
55 00111111 11111111
56 11111111 11111111
57 */
58
59 0xFF, 0x03,
60 0x00, 0x0F,
61 0x00, 0x3F,
62 0x00, 0xFF,
63 0x03, 0xFF,
64 0x0F, 0xFF,
65 0x3F, 0xFF,
66 0xFF, 0xFF,
67
68 /*
69 00000000 00000000 00000000 00000000
70 00000000 00000000 00000000 00000000
71 00000000 00000000 00000000 00000000
72 00000000 00000000 00000000 00000000
73 00000000 00000000 00000000 00000000
74 00000000 00000000 00000000 00000000
75 00000000 00000000 00000000 00000000
76 00000000 00000000 00000000 00000000
77 00000000 00000000 00000000 00000000
78 00000000 00000000 00000000 00000000
79 00000000 00000000 00000000 00000000
80 00000000 00000000 00000000 00000000
81 */
82
83 0x00, 0x00, 0x00, 0x00,
84 0x00, 0x00, 0x00, 0x00,
85 0x00, 0x00, 0x00, 0x00,
86 0x00, 0x00, 0x00, 0x00,
87 0x00, 0x00, 0x00, 0x00,
88 0x00, 0x00, 0x00, 0x00,
89 0x00, 0x00, 0x00, 0x00,
90 0x00, 0x00, 0x00, 0x00,
91 0x00, 0x00, 0x00, 0x00,
92 0x00, 0x00, 0x00, 0x00,
93 0x00, 0x00, 0x00, 0x00,
94 0x00, 0x00, 0x00, 0x00,
95
96 /*
97 00000000 00000000 00000000 00000011
98 00000000 00000000 00000000 00011111
99 00000000 00000000 00000000 11111111
100 00000000 00000000 00000011 11111111
101 00000000 00000000 00011111 11111111
102 00000000 00000000 11111111 11111111
103 00000000 00000011 11111111 11111111
104 00000000 00011111 11111111 11111111
105 00000000 11111111 11111111 11111111
106 00000011 11111111 11111111 11111111
107 00011111 11111111 11111111 11111111
108 11111111 11111111 11111111 11111111
109 */
110
111 0x00, 0x00, 0x00, 0x03,
112 0x00, 0x00, 0x00, 0x1F,
113 0x00, 0x00, 0x00, 0xFF,
114 0x00, 0x00, 0x03, 0xFF,
115 0x00, 0x00, 0x1F, 0xFF,
116 0x00, 0x00, 0xFF, 0xFF,
117 0x00, 0x03, 0xFF, 0xFF,
118 0x00, 0x1F, 0xFF, 0xFF,
119 0x00, 0xFF, 0xFF, 0xFF,
120 0x03, 0xFF, 0xFF, 0xFF,
121 0x1F, 0xFF, 0xFF, 0xFF,
122 0xFF, 0xFF, 0xFF, 0xFF,
123
124 /*
125 00001111
126 00001111
127 00001111
128 00001111
129 00001111
130 00001111
131 00001111
132 00001111
133 00001111
134 00001111
135 00001111
136 00001111
137 00001111
138 00001111
139 00001111
140 00001111
141 00001111
142 00001111
143 00001111
144 00001111
145 00001111
146 00001111
147 00001111
148 00001111
149 */
150
151 0x0F,
152 0x0F,
153 0x0F,
154 0x0F,
155 0x0F,
156 0x0F,
157 0x0F,
158 0x0F,
159 0x0F,
160 0x0F,
161 0x0F,
162 0x0F,
163 0x0F,
164 0x0F,
165 0x0F,
166 0x0F,
167 0x0F,
168 0x0F,
169 0x0F,
170 0x0F,
171 0x0F,
172 0x0F,
173 0x0F,
174 0x0F,
175
176 /*
177 00001111
178 00001111
179 00001111
180 00001111
181 */
182
183 0x0F,
184 0x0F,
185 0x0F,
186 0x0F,
187
188 /*
189 11000000 00000000 00110000
190 11000000 00000000 11110000
191 11000000 00000011 11110000
192 11000000 00001111 11110000
193 11000000 00111111 11110000
194 11000000 11111111 11110000
195 11000011 11111111 11110000
196 11001111 11111111 11110000
197 11111111 11111111 11110000
198
199 11111111 11111111 11110000
200 11001111 11111111 11110000
201 11000011 11111111 11110000
202 11000000 11111111 11110000
203 11000000 00111111 11110000
204 11000000 00001111 11110000
205 11000000 00000011 11110000
206 11000000 00000000 11110000
207 11000000 00000000 00110000
208 */
209
210 0xC0, 0x00, 0x30,
211 0xC0, 0x00, 0xF0,
212 0xC0, 0x03, 0xF0,
213 0xC0, 0x0F, 0xF0,
214 0xC0, 0x3F, 0xF0,
215 0xC0, 0xFF, 0xF0,
216 0xC3, 0xFF, 0xF0,
217 0xCF, 0xFF, 0xF0,
218 0xFF, 0xFF, 0xF0,
219
220 0xFF, 0xFF, 0xF0,
221 0xCF, 0xFF, 0xF0,
222 0xC3, 0xFF, 0xF0,
223 0xC0, 0xFF, 0xF0,
224 0xC0, 0x3F, 0xF0,
225 0xC0, 0x0F, 0xF0,
226 0xC0, 0x03, 0xF0,
227 0xC0, 0x00, 0xF0,
228 0xC0, 0x00, 0x30,
229
230 /*
231 11000000 00000000 00110000
232 11110000 00000000 00110000
233 11111100 00000000 00110000
234 11111111 00000000 00110000
235 11111111 11000000 00110000
236 11111111 11110000 00110000
237 11111111 11111100 00110000
238 11111111 11111111 00110000
239 11111111 11111111 11110000
240
241 11111111 11111111 11110000
242 11111111 11111111 00110000
243 11111111 11111100 00110000
244 11111111 11110000 00110000
245 11111111 11000000 00110000
246 11111111 00000000 00110000
247 11111100 00000000 00110000
248 11110000 00000000 00110000
249 11000000 00000000 00110000
250 */
251
252 0xC0, 0x00, 0x30,
253 0xF0, 0x00, 0x30,
254 0xFC, 0x00, 0x30,
255 0xFF, 0x00, 0x30,
256 0xFF, 0xC0, 0x30,
257 0xFF, 0xF0, 0x30,
258 0xFF, 0xFC, 0x30,
259 0xFF, 0xFF, 0x30,
260 0xFF, 0xFF, 0xF0,
261
262 0xFF, 0xFF, 0xF0,
263 0xFF, 0xFF, 0x30,
264 0xFF, 0xFC, 0x30,
265 0xFF, 0xF0, 0x30,
266 0xFF, 0xC0, 0x30,
267 0xFF, 0x00, 0x30,
268 0xFC, 0x00, 0x30,
269 0xF0, 0x00, 0x30,
270 0xC0, 0x00, 0x30,
271
272 /*
273 00000000 00000000 00000000
274 00000000 00000000 00000000
275 00000000 00000000 00000000
276 00000000 00000000 00000000
277 00000000 01100000 00000000
278 00000000 11110000 00000000
279 00000001 11111000 00000000
280 00000001 11111000 00000000
281 00000011 11111100 00000000
282
283 00000111 11111110 00000000
284 00001111 11111111 00000000
285 00011111 11111111 10000000
286 00011111 11111111 10000000
287 00111111 11111111 11000000
288 01111111 11111111 11100000
289 11111111 11111111 11110000
290 00000000 00000000 00000000
291 00000000 00000000 00000000
292 */
293
294 0x00, 0x00, 0x00,
295 0x00, 0x00, 0x00,
296 0x00, 0x00, 0x00,
297 0x00, 0x00, 0x00,
298 0x00, 0x60, 0x00,
299 0x00, 0xF0, 0x00,
300 0x01, 0xF8, 0x00,
301 0x01, 0xF8, 0x00,
302 0x03, 0xFC, 0x00,
303
304 0x07, 0xFE, 0x00,
305 0x0F, 0xFF, 0x00,
306 0x1F, 0xFF, 0x80,
307 0x1F, 0xFF, 0x80,
308 0x3F, 0xFF, 0xC0,
309 0x7F, 0xFF, 0xE0,
310 0xFF, 0xFF, 0xF0,
311 0x00, 0x00, 0x00,
312 0x00, 0x00, 0x00,
313
314 /*
315 00000000 00000000 00000000
316 00000000 00000000 00000000
317 00000000 00000000 00000000
318 00000000 00000000 00000000
319 11111111 11111111 11110000
320 01111111 11111111 11100000
321 00111111 11111111 11000000
322 00011111 11111111 10000000
323 00011111 11111111 10000000
324
325 00001111 11111111 00000000
326 00000111 11111110 00000000
327 00000011 11111100 00000000
328 00000001 11111000 00000000
329 00000001 11111000 00000000
330 00000000 11110000 00000000
331 00000000 01100000 00000000
332 00000000 00000000 00000000
333 00000000 00000000 00000000
334 */
335
336 0x00, 0x00, 0x00,
337 0x00, 0x00, 0x00,
338 0x00, 0x00, 0x00,
339 0x00, 0x00, 0x00,
340 0xFF, 0xFF, 0xF0,
341 0x7F, 0xFF, 0xE0,
342 0x3F, 0xFF, 0xC0,
343 0x1F, 0xFF, 0x80,
344 0x1F, 0xFF, 0x80,
345
346 0x0F, 0xFF, 0x00,
347 0x07, 0xFE, 0x00,
348 0x03, 0xFC, 0x00,
349 0x01, 0xF8, 0x00,
350 0x01, 0xF8, 0x00,
351 0x00, 0xF0, 0x00,
352 0x00, 0x60, 0x00,
353 0x00, 0x00, 0x00,
354 0x00, 0x00, 0x00,
355
356
357 /*
358 11000000 00000000 00000000
359 11110000 00000000 00000000
360 11111100 00000000 00000000
361 11111111 00000000 00000000
362 11111111 11000000 00000000
363 11111111 11110000 00000000
364 11111111 11111100 00000000
365 11111111 11111111 00000000
366 11111111 11111111 11000000
367
368 11111111 11111111 11000000
369 11111111 11111111 00000000
370 11111111 11111100 00000000
371 11111111 11110000 00000000
372 11111111 11000000 00000000
373 11111111 00000000 00000000
374 11111100 00000000 00000000
375 11110000 00000000 00000000
376 11000000 00000000 00000000
377 */
378
379 0xC0, 0x00, 0x00,
380 0xF0, 0x00, 0x00,
381 0xFC, 0x00, 0x00,
382 0xFF, 0x00, 0x00,
383 0xFF, 0xC0, 0x00,
384 0xFF, 0xF0, 0x00,
385 0xFF, 0xFC, 0x00,
386 0xFF, 0xFF, 0x00,
387 0xFF, 0xFF, 0xC0,
388
389 0xFF, 0xFF, 0xC0,
390 0xFF, 0xFF, 0x00,
391 0xFF, 0xFC, 0x00,
392 0xFF, 0xF0, 0x00,
393 0xFF, 0xC0, 0x00,
394 0xFF, 0x00, 0x00,
395 0xFC, 0x00, 0x00,
396 0xF0, 0x00, 0x00,
397 0xC0, 0x00, 0x00,
398
399 /*
400 11000000 00000000 00000000 00001100
401 01100000 00000000 11000000 00011000
402 00110000 00000001 11000000 00110000
403 00011000 00000011 11000000 01100000
404 00001100 00000111 11000000 11000000
405 00000110 00001111 11000001 10000000
406 00000011 00011111 11000011 00000000
407 00000001 10111111 11000110 00000000
408 00000000 11111111 11001100 00000000
409 00000000 11111111 11011000 00000000
410 00001111 11111111 11110000 00000000
411 00001111 11111111 11100000 00000000
412 00001111 11111111 11000000 00000000
413 00001111 11111111 11000000 00000000
414 00001111 11111111 11000000 00000000
415 00001111 11111111 11000000 00000000
416 00001111 11111111 11000000 00000000
417 00001111 11111111 11100000 00000000
418 00001111 11111111 11110000 00000000
419 00000000 11111111 11011000 00000000
420 00000000 11111111 11001100 00000000
421 00000001 10111111 11000110 00000000
422 00000011 00011111 11000011 00000000
423 00000110 00001111 11000001 10000000
424 00001100 00000111 11000000 11000000
425 00011000 00000011 11000000 01100000
426 00110000 00000001 11000000 00110000
427 01100000 00000000 11000000 00011000
428 11000000 00000000 00000000 00001100
429 00000000 00000000 00000000 00000000
430 */
431
432 0xC0, 0x00, 0x00, 0x0C,
433 0x60, 0x00, 0xC0, 0x18,
434 0x30, 0x01, 0xC0, 0x30,
435 0x18, 0x03, 0xC0, 0x60,
436 0x0C, 0x07, 0xC0, 0xC0,
437 0x06, 0x0F, 0xC1, 0x80,
438 0x03, 0x1F, 0xC3, 0x00,
439 0x01, 0xBF, 0xC6, 0x00,
440 0x00, 0xFF, 0xCC, 0x00,
441 0x00, 0xFF, 0xD8, 0x00,
442 0x0F, 0xFF, 0xF0, 0x00,
443 0x0F, 0xFF, 0xE0, 0x00,
444 0x0F, 0xFF, 0xC0, 0x00,
445 0x0F, 0xFF, 0xC0, 0x00,
446 0x0F, 0xFF, 0xC0, 0x00,
447 0x0F, 0xFF, 0xC0, 0x00,
448 0x0F, 0xFF, 0xC0, 0x00,
449 0x0F, 0xFF, 0xE0, 0x00,
450 0x0F, 0xFF, 0xF0, 0x00,
451 0x00, 0xFF, 0xD8, 0x00,
452 0x00, 0xFF, 0xCC, 0x00,
453 0x01, 0xBF, 0xC6, 0x00,
454 0x03, 0x1F, 0xC3, 0x00,
455 0x06, 0x0F, 0xC1, 0x80,
456 0x0C, 0x07, 0xC0, 0xC0,
457 0x18, 0x03, 0xC0, 0x60,
458 0x30, 0x01, 0xC0, 0x30,
459 0x60, 0x00, 0xC0, 0x18,
460 0xC0, 0x00, 0x00, 0x0C,
461 0x00, 0x00, 0x00, 0x00,
462
463 /*
464 00000000 00000000 00000000 00000000
465 00000000 00000000 11000000 00000000
466 00000000 00000001 11000000 00000000
467 00000000 00000011 11011111 10000000
468 00000000 00000111 11011111 10000000
469 00000000 00001111 11000000 00000000
470 00000000 00011111 11000000 00000000
471 00000000 00111111 11000000 00000000
472 00000000 01111111 11011111 10000000
473 00000000 11111111 11011111 10000000
474 00001111 11111111 11000000 00000000
475 00001111 11111111 11000000 00000000
476 00001111 11111111 11000000 00000000
477 00001111 11111111 11011111 10000000
478 00001111 11111111 11011111 10000000
479 00001111 11111111 11000000 00000000
480 00001111 11111111 11000000 00000000
481 00001111 11111111 11000000 00000000
482 00001111 11111111 11011111 10000000
483 00000000 11111111 11011111 10000000
484 00000000 01111111 11000000 00000000
485 00000000 00111111 11000000 00000000
486 00000000 00011111 11000000 00000000
487 00000000 00001111 11011111 10000000
488 00000000 00000111 11011111 10000000
489 00000000 00000011 11000000 00000000
490 00000000 00000001 11000000 00000000
491 00000000 00000000 11000000 00000000
492 00000000 00000000 00000000 00000000
493 00000000 00000000 00000000 00000000
494 */
495
496 0x00, 0x00, 0x00, 0x00,
497 0x00, 0x00, 0xC0, 0x00,
498 0x00, 0x01, 0xC0, 0x00,
499 0x00, 0x03, 0xDF, 0x80,
500 0x00, 0x07, 0xDF, 0x80,
501 0x00, 0x0F, 0xC0, 0x00,
502 0x00, 0x1F, 0xC0, 0x00,
503 0x00, 0x3F, 0xC0, 0x00,
504 0x00, 0x7F, 0xDF, 0x80,
505 0x00, 0xFF, 0xDF, 0x80,
506 0x0F, 0xFF, 0xC0, 0x00,
507 0x0F, 0xFF, 0xC0, 0x00,
508 0x0F, 0xFF, 0xC0, 0x00,
509 0x0F, 0xFF, 0xDF, 0x80,
510 0x0F, 0xFF, 0xDF, 0x80,
511 0x0F, 0xFF, 0xC0, 0x00,
512 0x0F, 0xFF, 0xC0, 0x00,
513 0x0F, 0xFF, 0xC0, 0x00,
514 0x0F, 0xFF, 0xDF, 0x80,
515 0x00, 0xFF, 0xDF, 0x80,
516 0x00, 0x7F, 0xC0, 0x00,
517 0x00, 0x3F, 0xC0, 0x00,
518 0x00, 0x1F, 0xC0, 0x00,
519 0x00, 0x0F, 0xDF, 0x80,
520 0x00, 0x07, 0xDF, 0x80,
521 0x00, 0x03, 0xC0, 0x00,
522 0x00, 0x01, 0xC0, 0x00,
523 0x00, 0x00, 0xC0, 0x00,
524 0x00, 0x00, 0x00, 0x00,
525 0x00, 0x00, 0x00, 0x00,
526
527 /*
528 00000000 00000011
529 00000000 00001111
530 00000000 00111111
531 00000000 11111111
532 00000011 11111111
533 00001111 11111111
534 00111111 11111111
535 11111111 11111111
536 11111111 11111111
537 00111111 11111111
538 00001111 11111111
539 00000011 11111111
540 00000000 11111111
541 00000000 00111111
542 00000000 00001111
543 00000000 00000011
544 */
545
546 0x00, 0x03,
547 0x00, 0x07,
548 0x00, 0x3F,
549 0x00, 0xFF,
550 0x03, 0xFF,
551 0x07, 0xFF,
552 0x3F, 0xFF,
553 0xFF, 0xFF,
554 0xFF, 0xFF,
555 0x3F, 0xFF,
556 0x07, 0xFF,
557 0x03, 0xFF,
558 0x00, 0xFF,
559 0x00, 0x3F,
560 0x00, 0x07,
561 0x00, 0x03,
562
563 /*
564 11000000 00000000
565 11110000 00000000
566 11111100 00000000
567 11111111 00000000
568 11111111 11000000
569 11111111 11110000
570 11111111 11111100
571 11111111 11111111
572 11111111 11111111
573 11111111 11111100
574 11111111 11110000
575 11111111 11000000
576 11111111 00000000
577 11111100 00000000
578 11110000 00000000
579 11000000 00000000
580 */
581
582 0xC0, 0x00,
583 0xF0, 0x00,
584 0xFC, 0x00,
585 0xFF, 0x00,
586 0xFF, 0xC0,
587 0xFF, 0xF0,
588 0xFF, 0xFC,
589 0xFF, 0xFF,
590 0xFF, 0xFF,
591 0xFF, 0xFC,
592 0xFF, 0xF0,
593 0xFF, 0xC0,
594 0xFF, 0x00,
595 0xFC, 0x00,
596 0xF0, 0x00,
597 0xC0, 0x00
598
599
600 };
601
602 WSymbol::WSymbol()
603 {
604   nextSymbol = 0;
605   nextColour = Colour::LIGHTTEXT;
606 }
607
608 void WSymbol::draw()
609 {
610   int offset = 0;
611   for(int i = 0; i < nextSymbol; i++)
612   {
613     offset += (widths[i]) * heights[i];
614   }
615
616   UCHAR* base = symbols + offset;
617   int widthBytes = widths[nextSymbol];
618   int widthBits = widthBytes * 8;
619   int height = heights[nextSymbol];
620
621   int x, y, bytesIn, bitsIn;
622
623   for (y = 0; y < height; y++)
624   {
625     for (x = 0; x < widthBits; x++)
626     {
627       bytesIn = (y * widthBytes) + (int)(x / 8);
628       bitsIn = x % 8;
629
630       if ((base[bytesIn] >> (7 - bitsIn)) & 0x01)
631       {
632         drawPixel(x, y, nextColour);
633       }
634     }
635   }
636 }