Program Listing for File font5x8.h

Return to documentation for file (src/canvas/fonts/font5x8.h)

/*
 * font5x8.cpp - 5x8 font courtesy of Roznerd - http://roznerd.blogspot.com/2010/02/led-dot-matrix-pov-font-generator.html
 */

#ifndef FONT5X8_H
#define FONT5X8_H

#include "font.h"

namespace PixelMaestro {
    class Font5x8 : public Font {
        public:
            Font5x8();
            ~Font5x8() = default;
            const uint8_t* get_char(uint8_t character);

        private:
            const uint8_t font[96][5] = {
                 {0x00, 0x00, 0x00, 0x00, 0x00} // 20
                ,{0x00, 0x00, 0x5f, 0x00, 0x00} // 21 !
                ,{0x00, 0x07, 0x00, 0x07, 0x00} // 22 "
                ,{0x14, 0x7f, 0x14, 0x7f, 0x14} // 23 #
                ,{0x24, 0x2a, 0x7f, 0x2a, 0x12} // 24 $
                ,{0x23, 0x13, 0x08, 0x64, 0x62} // 25 %
                ,{0x36, 0x49, 0x55, 0x22, 0x50} // 26 &
                ,{0x00, 0x05, 0x03, 0x00, 0x00} // 27 '
                ,{0x00, 0x1c, 0x22, 0x41, 0x00} // 28 (
                ,{0x00, 0x41, 0x22, 0x1c, 0x00} // 29 )
                ,{0x14, 0x08, 0x3e, 0x08, 0x14} // 2a *
                ,{0x08, 0x08, 0x3e, 0x08, 0x08} // 2b +
                ,{0x00, 0x50, 0x30, 0x00, 0x00} // 2c ,
                ,{0x08, 0x08, 0x08, 0x08, 0x08} // 2d -
                ,{0x00, 0x60, 0x60, 0x00, 0x00} // 2e .
                ,{0x20, 0x10, 0x08, 0x04, 0x02} // 2f /
                ,{0x3e, 0x51, 0x49, 0x45, 0x3e} // 30 0
                ,{0x00, 0x42, 0x7f, 0x40, 0x00} // 31 1
                ,{0x42, 0x61, 0x51, 0x49, 0x46} // 32 2
                ,{0x21, 0x41, 0x45, 0x4b, 0x31} // 33 3
                ,{0x18, 0x14, 0x12, 0x7f, 0x10} // 34 4
                ,{0x27, 0x45, 0x45, 0x45, 0x39} // 35 5
                ,{0x3c, 0x4a, 0x49, 0x49, 0x30} // 36 6
                ,{0x01, 0x71, 0x09, 0x05, 0x03} // 37 7
                ,{0x36, 0x49, 0x49, 0x49, 0x36} // 38 8
                ,{0x06, 0x49, 0x49, 0x29, 0x1e} // 39 9
                ,{0x00, 0x36, 0x36, 0x00, 0x00} // 3a :
                ,{0x00, 0x56, 0x36, 0x00, 0x00} // 3b ;
                ,{0x08, 0x14, 0x22, 0x41, 0x00} // 3c <
                ,{0x11, 0x11, 0x11, 0x11, 0x11} // 3d =
                ,{0x00, 0x41, 0x22, 0x14, 0x08} // 3e >
                ,{0x02, 0x01, 0x51, 0x09, 0x06} // 3f ?
                ,{0x32, 0x49, 0x79, 0x41, 0x3e} // 40 @
                ,{0x7e, 0x11, 0x11, 0x11, 0x7e} // 41 A
                ,{0x7f, 0x49, 0x49, 0x49, 0x36} // 42 B
                ,{0x3e, 0x41, 0x41, 0x41, 0x22} // 43 C
                ,{0x7f, 0x41, 0x41, 0x22, 0x1c} // 44 D
                ,{0x7f, 0x49, 0x49, 0x49, 0x41} // 45 E
                ,{0x7f, 0x09, 0x09, 0x09, 0x01} // 46 F
                ,{0x3e, 0x41, 0x49, 0x49, 0x7a} // 47 G
                ,{0x7f, 0x08, 0x08, 0x08, 0x7f} // 48 H
                ,{0x00, 0x41, 0x7f, 0x41, 0x00} // 49 I
                ,{0x20, 0x40, 0x41, 0x3f, 0x01} // 4a J
                ,{0x7f, 0x08, 0x14, 0x22, 0x41} // 4b K
                ,{0x7f, 0x40, 0x40, 0x40, 0x40} // 4c L
                ,{0x7f, 0x02, 0x0c, 0x02, 0x7f} // 4d M
                ,{0x7f, 0x04, 0x08, 0x10, 0x7f} // 4e N
                ,{0x3e, 0x41, 0x41, 0x41, 0x3e} // 4f O
                ,{0x7f, 0x09, 0x09, 0x09, 0x06} // 50 P
                ,{0x3e, 0x41, 0x51, 0x21, 0x5e} // 51 Q
                ,{0x7f, 0x09, 0x19, 0x29, 0x46} // 52 R
                ,{0x46, 0x49, 0x49, 0x49, 0x31} // 53 S
                ,{0x01, 0x01, 0x7f, 0x01, 0x01} // 54 T
                ,{0x3f, 0x40, 0x40, 0x40, 0x3f} // 55 U
                ,{0x1f, 0x20, 0x40, 0x20, 0x1f} // 56 V
                ,{0x3f, 0x40, 0x38, 0x40, 0x3f} // 57 W
                ,{0x63, 0x14, 0x08, 0x14, 0x63} // 58 X
                ,{0x07, 0x08, 0x70, 0x08, 0x07} // 59 Y
                ,{0x61, 0x51, 0x49, 0x45, 0x43} // 5a Z
                ,{0x00, 0x7f, 0x41, 0x41, 0x00} // 5b [
                ,{0x02, 0x04, 0x08, 0x10, 0x20} // 5c ¥
                ,{0x00, 0x41, 0x41, 0x7f, 0x00} // 5d ]
                ,{0x04, 0x02, 0x01, 0x02, 0x04} // 5e ^
                ,{0x40, 0x40, 0x40, 0x40, 0x40} // 5f _
                ,{0x00, 0x01, 0x02, 0x04, 0x00} // 60 `
                ,{0x20, 0x54, 0x54, 0x54, 0x78} // 61 a
                ,{0x7f, 0x48, 0x44, 0x44, 0x38} // 62 b
                ,{0x38, 0x44, 0x44, 0x44, 0x20} // 63 c
                ,{0x38, 0x44, 0x44, 0x48, 0x7f} // 64 d
                ,{0x38, 0x54, 0x54, 0x54, 0x18} // 65 e
                ,{0x08, 0x7e, 0x09, 0x01, 0x02} // 66 f
                ,{0x0c, 0x52, 0x52, 0x52, 0x3e} // 67 g
                ,{0x7f, 0x08, 0x04, 0x04, 0x78} // 68 h
                ,{0x00, 0x44, 0x7d, 0x40, 0x00} // 69 i
                ,{0x20, 0x40, 0x44, 0x3d, 0x00} // 6a j
                ,{0x7f, 0x10, 0x28, 0x44, 0x00} // 6b k
                ,{0x00, 0x41, 0x7f, 0x40, 0x00} // 6c l
                ,{0x7c, 0x04, 0x18, 0x04, 0x78} // 6d m
                ,{0x7c, 0x08, 0x04, 0x04, 0x78} // 6e n
                ,{0x38, 0x44, 0x44, 0x44, 0x38} // 6f o
                ,{0x7c, 0x14, 0x14, 0x14, 0x08} // 70 p
                ,{0x08, 0x14, 0x14, 0x18, 0x7c} // 71 q
                ,{0x7c, 0x08, 0x04, 0x04, 0x08} // 72 r
                ,{0x48, 0x54, 0x54, 0x54, 0x20} // 73 s
                ,{0x04, 0x3f, 0x44, 0x40, 0x20} // 74 t
                ,{0x3c, 0x40, 0x40, 0x20, 0x7c} // 75 u
                ,{0x1c, 0x20, 0x40, 0x20, 0x1c} // 76 v
                ,{0x3c, 0x40, 0x30, 0x40, 0x3c} // 77 w
                ,{0x44, 0x28, 0x10, 0x28, 0x44} // 78 x
                ,{0x0c, 0x50, 0x50, 0x50, 0x3c} // 79 y
                ,{0x44, 0x64, 0x54, 0x4c, 0x44} // 7a z
                ,{0x00, 0x08, 0x36, 0x41, 0x00} // 7b {
                ,{0x00, 0x00, 0x7f, 0x00, 0x00} // 7c |
                ,{0x00, 0x41, 0x36, 0x08, 0x00} // 7d }
                ,{0x10, 0x08, 0x08, 0x10, 0x08} // 7e ←
                ,{0x78, 0x46, 0x41, 0x46, 0x78} // 7f →
                };
    };
}

#endif // FONT5X8_H