Small bitmap-library to use with monocrome displays.
TinyBitmap.cpp@4:5d6f6e0191b8, 2018-08-31 (annotated)
- Committer:
- glx
- Date:
- Fri Aug 31 15:54:00 2018 +0000
- Revision:
- 4:5d6f6e0191b8
- Parent:
- 0:f068fae80257
- Child:
- 5:481c2e048ca4
Framebuffer is set at initialisation, not every time a function is used.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
glx | 0:f068fae80257 | 1 | #define M_PI 3.14159265358979323846 //Pi |
glx | 0:f068fae80257 | 2 | |
glx | 0:f068fae80257 | 3 | #include "mbed.h" |
glx | 0:f068fae80257 | 4 | #include <math.h> |
glx | 0:f068fae80257 | 5 | #include "TinyBitmap.h" |
glx | 0:f068fae80257 | 6 | |
glx | 4:5d6f6e0191b8 | 7 | TinyBitmap::TinyBitmap(int width, int height, char *framebuffer int commandbytes, int bitmaplayout) //Constructor |
glx | 0:f068fae80257 | 8 | { |
glx | 0:f068fae80257 | 9 | _IMAGEWIDTH = width; |
glx | 0:f068fae80257 | 10 | _IMAGEHEIGHT = height; |
glx | 0:f068fae80257 | 11 | _COMMANDBYTES = commandbytes; |
glx | 0:f068fae80257 | 12 | _BITMAPLAYOUT = bitmaplayout; |
glx | 4:5d6f6e0191b8 | 13 | _FRAMEBUFFER = &framebuffer; |
glx | 0:f068fae80257 | 14 | |
glx | 0:f068fae80257 | 15 | Bit0 = 0x01; |
glx | 0:f068fae80257 | 16 | Bit1 = 0x02; |
glx | 0:f068fae80257 | 17 | Bit2 = 0x04; |
glx | 0:f068fae80257 | 18 | Bit3 = 0x08; |
glx | 0:f068fae80257 | 19 | Bit4 = 0x10; |
glx | 0:f068fae80257 | 20 | Bit5 = 0x20; |
glx | 0:f068fae80257 | 21 | Bit6 = 0x40; |
glx | 0:f068fae80257 | 22 | Bit7 = 0x80; |
glx | 0:f068fae80257 | 23 | } |
glx | 0:f068fae80257 | 24 | |
glx | 4:5d6f6e0191b8 | 25 | void TinyBitmap::DrawPixel(int x, int y) |
glx | 0:f068fae80257 | 26 | { |
glx | 0:f068fae80257 | 27 | bool InsideBorders = true; |
glx | 0:f068fae80257 | 28 | if (x < 0 | y < 0 | x > _IMAGEWIDTH - 1 | y > _IMAGEHEIGHT - 1) InsideBorders = false; |
glx | 0:f068fae80257 | 29 | |
glx | 0:f068fae80257 | 30 | if(_BITMAPLAYOUT == 0x00 && InsideBorders) { |
glx | 0:f068fae80257 | 31 | int pixelnumber = (y * _IMAGEWIDTH) + x; //get the 1D pixel-position |
glx | 0:f068fae80257 | 32 | int bytecount = pixelnumber / 8; //the byte-number |
glx | 0:f068fae80257 | 33 | int offset = pixelnumber % 8; //the bit inside the byte |
glx | 0:f068fae80257 | 34 | char modifier = 0; |
glx | 0:f068fae80257 | 35 | |
glx | 0:f068fae80257 | 36 | if (offset == 0) modifier = Bit7; |
glx | 0:f068fae80257 | 37 | if (offset == 1) modifier = Bit6; |
glx | 0:f068fae80257 | 38 | if (offset == 2) modifier = Bit5; |
glx | 0:f068fae80257 | 39 | if (offset == 3) modifier = Bit4; |
glx | 0:f068fae80257 | 40 | if (offset == 4) modifier = Bit3; |
glx | 0:f068fae80257 | 41 | if (offset == 5) modifier = Bit2; |
glx | 0:f068fae80257 | 42 | if (offset == 6) modifier = Bit1; |
glx | 0:f068fae80257 | 43 | if (offset == 7) modifier = Bit0; |
glx | 0:f068fae80257 | 44 | |
glx | 4:5d6f6e0191b8 | 45 | *_FRAMEBUFFER[bytecount + _COMMANDBYTES] = (char)(*_FRAMEBUFFER[bytecount + _COMMANDBYTES] | modifier); |
glx | 0:f068fae80257 | 46 | } |
glx | 0:f068fae80257 | 47 | |
glx | 0:f068fae80257 | 48 | if (_BITMAPLAYOUT == 0x02 && InsideBorders) |
glx | 0:f068fae80257 | 49 | { |
glx | 0:f068fae80257 | 50 | int MemPage = y / 8; |
glx | 0:f068fae80257 | 51 | int bytecount = x + (_IMAGEWIDTH * MemPage); //the byte-number |
glx | 0:f068fae80257 | 52 | int offset = y % 8; //the bit inside the byte |
glx | 0:f068fae80257 | 53 | //int pixelnumber = (bytecount * 8) + offset; //get the 1D pixel-position |
glx | 0:f068fae80257 | 54 | char modifier = 0; |
glx | 0:f068fae80257 | 55 | |
glx | 0:f068fae80257 | 56 | if (offset == 7) modifier = Bit7; |
glx | 0:f068fae80257 | 57 | if (offset == 6) modifier = Bit6; |
glx | 0:f068fae80257 | 58 | if (offset == 5) modifier = Bit5; |
glx | 0:f068fae80257 | 59 | if (offset == 4) modifier = Bit4; |
glx | 0:f068fae80257 | 60 | if (offset == 3) modifier = Bit3; |
glx | 0:f068fae80257 | 61 | if (offset == 2) modifier = Bit2; |
glx | 0:f068fae80257 | 62 | if (offset == 1) modifier = Bit1; |
glx | 0:f068fae80257 | 63 | if (offset == 0) modifier = Bit0; |
glx | 0:f068fae80257 | 64 | |
glx | 4:5d6f6e0191b8 | 65 | *_FRAMEBUFFER[bytecount + _COMMANDBYTES] = (char)(*_FRAMEBUFFER[bytecount + _COMMANDBYTES] | modifier); |
glx | 0:f068fae80257 | 66 | } |
glx | 0:f068fae80257 | 67 | |
glx | 0:f068fae80257 | 68 | if (_BITMAPLAYOUT == 0x04 && InsideBorders) |
glx | 0:f068fae80257 | 69 | { |
glx | 0:f068fae80257 | 70 | int pixelnumber = (y * _IMAGEWIDTH) + x; //get the 1D pixel-position |
glx | 0:f068fae80257 | 71 | int bytecount = pixelnumber / 8; //the byte-number |
glx | 0:f068fae80257 | 72 | int offset = pixelnumber % 8; //the bit inside the byte |
glx | 0:f068fae80257 | 73 | char modifier = 0; |
glx | 0:f068fae80257 | 74 | |
glx | 0:f068fae80257 | 75 | if (offset == 7) modifier = Bit7; |
glx | 0:f068fae80257 | 76 | if (offset == 6) modifier = Bit6; |
glx | 0:f068fae80257 | 77 | if (offset == 5) modifier = Bit5; |
glx | 0:f068fae80257 | 78 | if (offset == 4) modifier = Bit4; |
glx | 0:f068fae80257 | 79 | if (offset == 3) modifier = Bit3; |
glx | 0:f068fae80257 | 80 | if (offset == 2) modifier = Bit2; |
glx | 0:f068fae80257 | 81 | if (offset == 1) modifier = Bit1; |
glx | 0:f068fae80257 | 82 | if (offset == 0) modifier = Bit0; |
glx | 0:f068fae80257 | 83 | |
glx | 4:5d6f6e0191b8 | 84 | *_FRAMEBUFFER[bytecount + _COMMANDBYTES] = (char)(*_FRAMEBUFFER[bytecount + _COMMANDBYTES] | modifier); |
glx | 0:f068fae80257 | 85 | } |
glx | 0:f068fae80257 | 86 | |
glx | 0:f068fae80257 | 87 | } |
glx | 0:f068fae80257 | 88 | |
glx | 4:5d6f6e0191b8 | 89 | void TinyBitmap::DrawLine(int x1, int y1, int x2, int y2) |
glx | 0:f068fae80257 | 90 | { |
glx | 0:f068fae80257 | 91 | float xdiff_abs = abs(x2 - x1); |
glx | 0:f068fae80257 | 92 | float ydiff_abs = abs(y2 - y1); |
glx | 0:f068fae80257 | 93 | |
glx | 0:f068fae80257 | 94 | float steps; |
glx | 0:f068fae80257 | 95 | if (xdiff_abs >= ydiff_abs) steps = xdiff_abs; |
glx | 0:f068fae80257 | 96 | else steps = ydiff_abs; |
glx | 0:f068fae80257 | 97 | |
glx | 0:f068fae80257 | 98 | for (float i = 0; i <= (int)steps; i++) |
glx | 0:f068fae80257 | 99 | { |
glx | 0:f068fae80257 | 100 | float corrector = 0; |
glx | 0:f068fae80257 | 101 | if (i == 0 && steps == 0) { |
glx | 0:f068fae80257 | 102 | corrector = 1; |
glx | 0:f068fae80257 | 103 | } |
glx | 0:f068fae80257 | 104 | //X-Values: |
glx | 0:f068fae80257 | 105 | float pX = x1 + ((x2 - x1) / (steps + corrector) * i); |
glx | 0:f068fae80257 | 106 | //Y-Values: |
glx | 0:f068fae80257 | 107 | float pY = y1 + ((y2 - y1) / (steps + corrector) * i); |
glx | 4:5d6f6e0191b8 | 108 | DrawPixel((int)pX, (int)pY); |
glx | 0:f068fae80257 | 109 | } |
glx | 0:f068fae80257 | 110 | } |
glx | 0:f068fae80257 | 111 | |
glx | 4:5d6f6e0191b8 | 112 | void TinyBitmap::DrawCircle(int x, int y, int radius) |
glx | 0:f068fae80257 | 113 | { |
glx | 0:f068fae80257 | 114 | if(radius < 1) radius = 1; |
glx | 0:f068fae80257 | 115 | |
glx | 0:f068fae80257 | 116 | for (float rad = 0; rad < M_PI * 2 ; rad += (float)(5 / (2 * M_PI * radius))) |
glx | 0:f068fae80257 | 117 | { |
glx | 4:5d6f6e0191b8 | 118 | DrawPixel(x + (int)(radius * cos(rad)), y + (int)(radius * sin(rad))); |
glx | 0:f068fae80257 | 119 | } |
glx | 0:f068fae80257 | 120 | } |
glx | 0:f068fae80257 | 121 | |
glx | 4:5d6f6e0191b8 | 122 | void TinyBitmap::DrawRectangle(int x1, int y1, int x2, int y2) |
glx | 0:f068fae80257 | 123 | { |
glx | 4:5d6f6e0191b8 | 124 | DrawLine(x1, y1, x1, y2); |
glx | 4:5d6f6e0191b8 | 125 | DrawLine(x1, y1, x2, y1); |
glx | 4:5d6f6e0191b8 | 126 | DrawLine(x2, y1, x2, y2); |
glx | 4:5d6f6e0191b8 | 127 | DrawLine(x2, y2, x1, y2); |
glx | 0:f068fae80257 | 128 | } |
glx | 0:f068fae80257 | 129 | |
glx | 4:5d6f6e0191b8 | 130 | void TinyBitmap::DrawLineDirection(int x, int y, int degree, int lenght) |
glx | 0:f068fae80257 | 131 | { |
glx | 0:f068fae80257 | 132 | float rad = degree * (float)M_PI / 180; |
glx | 0:f068fae80257 | 133 | for (int radius = 0; radius <= lenght; radius++) |
glx | 0:f068fae80257 | 134 | { |
glx | 4:5d6f6e0191b8 | 135 | DrawPixel(x + (int)(radius * cos(rad)), y + (int)(radius * sin(rad))); |
glx | 0:f068fae80257 | 136 | } |
glx | 0:f068fae80257 | 137 | } |
glx | 0:f068fae80257 | 138 | |
glx | 0:f068fae80257 | 139 | |
glx | 0:f068fae80257 | 140 | //Textrendering |
glx | 4:5d6f6e0191b8 | 141 | void TinyBitmap::DrawText(int x, int y, char *CharArray, bool UseLargeFont) //removed: string text |
glx | 0:f068fae80257 | 142 | { |
glx | 0:f068fae80257 | 143 | |
glx | 0:f068fae80257 | 144 | const char Letter_A[] = { 0x41, 0x05, 0x0E, 0x11, 0x11, 0x11, 0x1F, 0x11, 0x11, 0x00 }; |
glx | 0:f068fae80257 | 145 | const char Letter_B[] = { 0x42, 0x05, 0x0F, 0x11, 0x11, 0x0F, 0x11, 0x11, 0x0F, 0x00 }; |
glx | 0:f068fae80257 | 146 | const char Letter_C[] = { 0x43, 0x05, 0x0E, 0x11, 0x01, 0x01, 0x01, 0x11, 0x0E, 0x00 }; |
glx | 0:f068fae80257 | 147 | const char Letter_D[] = { 0x44, 0x05, 0x07, 0x09, 0x11, 0x11, 0x11, 0x09, 0x07, 0x00 }; |
glx | 0:f068fae80257 | 148 | const char Letter_E[] = { 0x45, 0x05, 0x1F, 0x01, 0x01, 0x0F, 0x01, 0x01, 0x1F, 0x00 }; |
glx | 0:f068fae80257 | 149 | const char Letter_F[] = { 0x46, 0x05, 0x1F, 0x01, 0x01, 0x0F, 0x01, 0x01, 0x01, 0x00 }; |
glx | 0:f068fae80257 | 150 | const char Letter_G[] = { 0x47, 0x05, 0x0E, 0x11, 0x01, 0x1D, 0x11, 0x11, 0x1E, 0x00 }; |
glx | 0:f068fae80257 | 151 | const char Letter_H[] = { 0x48, 0x05, 0x11, 0x11, 0x11, 0x1F, 0x11, 0x11, 0x11, 0x00 }; |
glx | 0:f068fae80257 | 152 | const char Letter_I[] = { 0x49, 0x05, 0x0E, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0E, 0x00 }; |
glx | 0:f068fae80257 | 153 | const char Letter_J[] = { 0x4A, 0x05, 0x1C, 0x08, 0x08, 0x08, 0x08, 0x09, 0x06, 0x00 }; |
glx | 0:f068fae80257 | 154 | const char Letter_K[] = { 0x4B, 0x05, 0x11, 0x09, 0x05, 0x03, 0x05, 0x09, 0x11, 0x00 }; |
glx | 0:f068fae80257 | 155 | const char Letter_L[] = { 0x4C, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1F, 0x00 }; |
glx | 0:f068fae80257 | 156 | const char Letter_M[] = { 0x4D, 0x05, 0x11, 0x1B, 0x15, 0x15, 0x11, 0x11, 0x11, 0x00 }; |
glx | 0:f068fae80257 | 157 | const char Letter_N[] = { 0x4E, 0x05, 0x11, 0x11, 0x13, 0x15, 0x19, 0x11, 0x11, 0x00 }; |
glx | 0:f068fae80257 | 158 | const char Letter_O[] = { 0x4F, 0x05, 0x0E, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0E, 0x00 }; |
glx | 0:f068fae80257 | 159 | const char Letter_P[] = { 0x50, 0x05, 0x0F, 0x11, 0x11, 0x0F, 0x01, 0x01, 0x01, 0x00 }; |
glx | 0:f068fae80257 | 160 | const char Letter_Q[] = { 0x51, 0x05, 0x0E, 0x11, 0x11, 0x11, 0x15, 0x09, 0x16, 0x00 }; |
glx | 0:f068fae80257 | 161 | const char Letter_R[] = { 0x52, 0x05, 0x0F, 0x11, 0x11, 0x0F, 0x05, 0x09, 0x11, 0x00 }; |
glx | 0:f068fae80257 | 162 | const char Letter_S[] = { 0x53, 0x05, 0x1E, 0x01, 0x01, 0x0E, 0x10, 0x10, 0x0F, 0x00 }; |
glx | 0:f068fae80257 | 163 | const char Letter_T[] = { 0x54, 0x05, 0x1F, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00 }; |
glx | 0:f068fae80257 | 164 | const char Letter_U[] = { 0x55, 0x05, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0E, 0x00 }; |
glx | 0:f068fae80257 | 165 | const char Letter_V[] = { 0x56, 0x05, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0A, 0x04, 0x00 }; |
glx | 0:f068fae80257 | 166 | const char Letter_W[] = { 0x57, 0x05, 0x11, 0x11, 0x11, 0x15, 0x15, 0x15, 0x0A, 0x00 }; |
glx | 0:f068fae80257 | 167 | const char Letter_X[] = { 0x58, 0x05, 0x11, 0x11, 0x0A, 0x04, 0x0A, 0x11, 0x11, 0x00 }; |
glx | 0:f068fae80257 | 168 | const char Letter_Y[] = { 0x59, 0x05, 0x11, 0x11, 0x0A, 0x04, 0x04, 0x04, 0x04, 0x00 }; |
glx | 0:f068fae80257 | 169 | const char Letter_Z[] = { 0x5A, 0x05, 0x1F, 0x10, 0x08, 0x04, 0x02, 0x01, 0x1F, 0x00 }; |
glx | 0:f068fae80257 | 170 | |
glx | 0:f068fae80257 | 171 | const char Letter_a[] = { 0x61, 0x05, 0x00, 0x00, 0x0E, 0x10, 0x1E, 0x11, 0x1E, 0x00 }; |
glx | 0:f068fae80257 | 172 | const char Letter_b[] = { 0x62, 0x05, 0x01, 0x01, 0x01, 0x0F, 0x11, 0x11, 0x0F, 0x00 }; |
glx | 0:f068fae80257 | 173 | const char Letter_c[] = { 0x63, 0x05, 0x00, 0x00, 0x1E, 0x01, 0x01, 0x01, 0x1E, 0x00 }; |
glx | 0:f068fae80257 | 174 | const char Letter_d[] = { 0x64, 0x05, 0x10, 0x10, 0x10, 0x1E, 0x11, 0x11, 0x1E, 0x00 }; |
glx | 0:f068fae80257 | 175 | const char Letter_e[] = { 0x65, 0x05, 0x00, 0x00, 0x0E, 0x11, 0x1F, 0x01, 0x1E, 0x00 }; |
glx | 0:f068fae80257 | 176 | const char Letter_f[] = { 0x66, 0x05, 0x08, 0x14, 0x04, 0x0E, 0x04, 0x04, 0x04, 0x00 }; |
glx | 0:f068fae80257 | 177 | const char Letter_g[] = { 0x67, 0x05, 0x00, 0x00, 0x1E, 0x11, 0x1E, 0x10, 0x0F, 0x00 }; |
glx | 0:f068fae80257 | 178 | const char Letter_h[] = { 0x68, 0x05, 0x01, 0x01, 0x01, 0x0F, 0x11, 0x11, 0x11, 0x00 }; |
glx | 0:f068fae80257 | 179 | const char Letter_i[] = { 0x69, 0x05, 0x00, 0x04, 0x00, 0x06, 0x04, 0x04, 0x0E, 0x00 }; |
glx | 0:f068fae80257 | 180 | const char Letter_j[] = { 0x6A, 0x05, 0x08, 0x00, 0x08, 0x08, 0x08, 0x09, 0x06, 0x00 }; |
glx | 0:f068fae80257 | 181 | const char Letter_k[] = { 0x6B, 0x05, 0x02, 0x02, 0x12, 0x0A, 0x06, 0x0A, 0x12, 0x00 }; |
glx | 0:f068fae80257 | 182 | const char Letter_l[] = { 0x6C, 0x05, 0x06, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0E, 0x00 }; |
glx | 0:f068fae80257 | 183 | const char Letter_m[] = { 0x6D, 0x05, 0x00, 0x00, 0x1B, 0x15, 0x15, 0x11, 0x11, 0x00 }; |
glx | 0:f068fae80257 | 184 | const char Letter_n[] = { 0x6E, 0x05, 0x00, 0x00, 0x0D, 0x13, 0x11, 0x11, 0x11, 0x00 }; |
glx | 0:f068fae80257 | 185 | const char Letter_o[] = { 0x6F, 0x05, 0x00, 0x00, 0x0E, 0x11, 0x11, 0x11, 0x0E, 0x00 }; |
glx | 0:f068fae80257 | 186 | const char Letter_p[] = { 0x70, 0x05, 0x00, 0x00, 0x0F, 0x11, 0x0F, 0x01, 0x01, 0x00 }; |
glx | 0:f068fae80257 | 187 | const char Letter_q[] = { 0x71, 0x05, 0x00, 0x00, 0x1E, 0x11, 0x1E, 0x10, 0x10, 0x00 }; |
glx | 0:f068fae80257 | 188 | const char Letter_r[] = { 0x72, 0x05, 0x00, 0x00, 0x0D, 0x13, 0x01, 0x01, 0x01, 0x00 }; |
glx | 0:f068fae80257 | 189 | const char Letter_s[] = { 0x73, 0x05, 0x00, 0x00, 0x1E, 0x01, 0x0E, 0x10, 0x0F, 0x00 }; |
glx | 0:f068fae80257 | 190 | const char Letter_t[] = { 0x74, 0x05, 0x04, 0x04, 0x1F, 0x04, 0x04, 0x14, 0x08, 0x00 }; |
glx | 0:f068fae80257 | 191 | const char Letter_u[] = { 0x75, 0x05, 0x00, 0x00, 0x11, 0x11, 0x11, 0x11, 0x0E, 0x00 }; |
glx | 0:f068fae80257 | 192 | const char Letter_v[] = { 0x76, 0x05, 0x00, 0x00, 0x11, 0x11, 0x11, 0x0A, 0x04, 0x00 }; |
glx | 0:f068fae80257 | 193 | const char Letter_w[] = { 0x77, 0x05, 0x00, 0x00, 0x11, 0x11, 0x15, 0x15, 0x0A, 0x00 }; |
glx | 0:f068fae80257 | 194 | const char Letter_x[] = { 0x78, 0x05, 0x00, 0x00, 0x11, 0x0A, 0x04, 0x0A, 0x11, 0x00 }; |
glx | 0:f068fae80257 | 195 | const char Letter_y[] = { 0x79, 0x05, 0x00, 0x00, 0x11, 0x0A, 0x04, 0x04, 0x02, 0x00 }; |
glx | 0:f068fae80257 | 196 | const char Letter_z[] = { 0x7A, 0x05, 0x00, 0x00, 0x1F, 0x08, 0x04, 0x02, 0x1F, 0x00 }; |
glx | 0:f068fae80257 | 197 | |
glx | 0:f068fae80257 | 198 | const char Letter_0[] = { 0x30, 0x05, 0x0E, 0x11, 0x19, 0x15, 0x13, 0x11, 0x0E, 0x00 }; |
glx | 0:f068fae80257 | 199 | const char Letter_1[] = { 0x31, 0x05, 0x04, 0x06, 0x04, 0x04, 0x04, 0x04, 0x0E, 0x00 }; |
glx | 0:f068fae80257 | 200 | const char Letter_2[] = { 0x32, 0x05, 0x0E, 0x11, 0x10, 0x08, 0x04, 0x02, 0x1F, 0x00 }; |
glx | 0:f068fae80257 | 201 | const char Letter_3[] = { 0x33, 0x05, 0x1F, 0x08, 0x04, 0x08, 0x10, 0x11, 0x0E, 0x00 }; |
glx | 0:f068fae80257 | 202 | const char Letter_4[] = { 0x34, 0x05, 0x08, 0x0C, 0x0A, 0x09, 0x1F, 0x08, 0x08, 0x00 }; |
glx | 0:f068fae80257 | 203 | const char Letter_5[] = { 0x35, 0x05, 0x1F, 0x01, 0x0F, 0x10, 0x10, 0x11, 0x0E, 0x00 }; |
glx | 0:f068fae80257 | 204 | const char Letter_6[] = { 0x36, 0x05, 0x0C, 0x02, 0x01, 0x0F, 0x11, 0x11, 0x0E, 0x00 }; |
glx | 0:f068fae80257 | 205 | const char Letter_7[] = { 0x37, 0x05, 0x1F, 0x10, 0x08, 0x04, 0x02, 0x02, 0x02, 0x00 }; |
glx | 0:f068fae80257 | 206 | const char Letter_8[] = { 0x38, 0x05, 0x0E, 0x11, 0x11, 0x0E, 0x11, 0x11, 0x0E, 0x00 }; |
glx | 0:f068fae80257 | 207 | const char Letter_9[] = { 0x39, 0x05, 0x0E, 0x11, 0x11, 0x1E, 0x10, 0x08, 0x06, 0x00 }; |
glx | 0:f068fae80257 | 208 | |
glx | 0:f068fae80257 | 209 | const char Letter_CH21[] = { 0x21, 0x05, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x04, 0x00 }; |
glx | 0:f068fae80257 | 210 | const char Letter_CH22[] = { 0x22, 0x05, 0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00 }; |
glx | 0:f068fae80257 | 211 | const char Letter_CH23[] = { 0x23, 0x05, 0x0A, 0x0A, 0x1F, 0x0A, 0x1F, 0x0A, 0x0A, 0x00 }; |
glx | 0:f068fae80257 | 212 | const char Letter_CH24[] = { 0x24, 0x05, 0x04, 0x1E, 0x05, 0x0E, 0x14, 0x0F, 0x04, 0x00 }; |
glx | 0:f068fae80257 | 213 | const char Letter_CH25[] = { 0x25, 0x05, 0x03, 0x13, 0x08, 0x04, 0x02, 0x19, 0x18, 0x00 }; |
glx | 0:f068fae80257 | 214 | const char Letter_CH26[] = { 0x26, 0x05, 0x06, 0x09, 0x05, 0x02, 0x15, 0x09, 0x16, 0x00 }; |
glx | 0:f068fae80257 | 215 | const char Letter_CH27[] = { 0x27, 0x05, 0x06, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 }; |
glx | 0:f068fae80257 | 216 | const char Letter_CH28[] = { 0x28, 0x05, 0x08, 0x04, 0x02, 0x02, 0x02, 0x04, 0x08, 0x00 }; |
glx | 0:f068fae80257 | 217 | const char Letter_CH29[] = { 0x29, 0x05, 0x02, 0x04, 0x08, 0x08, 0x08, 0x04, 0x02, 0x00 }; |
glx | 0:f068fae80257 | 218 | const char Letter_CH2A[] = { 0x2A, 0x05, 0x00, 0x04, 0x15, 0x0E, 0x15, 0x04, 0x00, 0x00 }; |
glx | 0:f068fae80257 | 219 | const char Letter_CH2B[] = { 0x2B, 0x05, 0x00, 0x04, 0x04, 0x1F, 0x04, 0x04, 0x00, 0x00 }; |
glx | 0:f068fae80257 | 220 | const char Letter_CH2C[] = { 0x2C, 0x05, 0x00, 0x00, 0x00, 0x00, 0x06, 0x04, 0x02, 0x00 }; |
glx | 0:f068fae80257 | 221 | const char Letter_CH2D[] = { 0x2D, 0x05, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00 }; |
glx | 0:f068fae80257 | 222 | const char Letter_CH2E[] = { 0x2E, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00 }; |
glx | 0:f068fae80257 | 223 | const char Letter_CH2F[] = { 0x2F, 0x05, 0x00, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00 }; |
glx | 0:f068fae80257 | 224 | |
glx | 0:f068fae80257 | 225 | const char Letter_CH3A[] = { 0x3A, 0x05, 0x00, 0x06, 0x06, 0x00, 0x06, 0x06, 0x00, 0x00 }; |
glx | 0:f068fae80257 | 226 | const char Letter_CH3B[] = { 0x3B, 0x05, 0x00, 0x06, 0x06, 0x00, 0x06, 0x04, 0x02, 0x00 }; |
glx | 0:f068fae80257 | 227 | const char Letter_CH3C[] = { 0x3C, 0x05, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x00 }; |
glx | 0:f068fae80257 | 228 | const char Letter_CH3D[] = { 0x3D, 0x05, 0x00, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x00, 0x00 }; |
glx | 0:f068fae80257 | 229 | const char Letter_CH3E[] = { 0x3E, 0x05, 0x02, 0x04, 0x08, 0x10, 0x08, 0x04, 0x02, 0x00 }; |
glx | 0:f068fae80257 | 230 | const char Letter_CH3F[] = { 0x3F, 0x05, 0x0E, 0x11, 0x10, 0x08, 0x04, 0x00, 0x04, 0x00 }; |
glx | 0:f068fae80257 | 231 | const char Letter_CH40[] = { 0x40, 0x05, 0x0E, 0x11, 0x10, 0x16, 0x15, 0x15, 0x0E, 0x00 }; |
glx | 0:f068fae80257 | 232 | |
glx | 0:f068fae80257 | 233 | const char unArray[] = { 0x00, 0x05, 0x00, 0x00, 0x0A, 0x04, 0x0A, 0x00, 0x00, 0x00 }; |
glx | 0:f068fae80257 | 234 | |
glx | 0:f068fae80257 | 235 | const char Letter_Space[] = { 0x20, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; |
glx | 0:f068fae80257 | 236 | |
glx | 0:f068fae80257 | 237 | |
glx | 0:f068fae80257 | 238 | //char CharArray[text.size()]; |
glx | 0:f068fae80257 | 239 | //strncpy(CharArray, text.c_str(), sizeof(CharArray)); |
glx | 0:f068fae80257 | 240 | //CharArray[sizeof(CharArray) - 1] = 0; |
glx | 0:f068fae80257 | 241 | |
glx | 0:f068fae80257 | 242 | int xOffset = 0; |
glx | 0:f068fae80257 | 243 | |
glx | 0:f068fae80257 | 244 | for (int i = 0; i < 255; i++) { |
glx | 0:f068fae80257 | 245 | char ArrayToUse[10] = { 0 }; |
glx | 0:f068fae80257 | 246 | char cha = CharArray[i]; |
glx | 0:f068fae80257 | 247 | int LetterHeigth = 8; |
glx | 0:f068fae80257 | 248 | int LetterWidth; |
glx | 0:f068fae80257 | 249 | |
glx | 0:f068fae80257 | 250 | switch (cha) { //Select char-pattern |
glx | 0:f068fae80257 | 251 | case 'A': |
glx | 0:f068fae80257 | 252 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 253 | ArrayToUse[i] = Letter_A[i]; |
glx | 0:f068fae80257 | 254 | } |
glx | 0:f068fae80257 | 255 | break; |
glx | 0:f068fae80257 | 256 | case 'B': |
glx | 0:f068fae80257 | 257 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 258 | ArrayToUse[i] = Letter_B[i]; |
glx | 0:f068fae80257 | 259 | } |
glx | 0:f068fae80257 | 260 | break; |
glx | 0:f068fae80257 | 261 | case 'C': |
glx | 0:f068fae80257 | 262 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 263 | ArrayToUse[i] = Letter_C[i]; |
glx | 0:f068fae80257 | 264 | } |
glx | 0:f068fae80257 | 265 | break; |
glx | 0:f068fae80257 | 266 | case 'D': |
glx | 0:f068fae80257 | 267 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 268 | ArrayToUse[i] = Letter_D[i]; |
glx | 0:f068fae80257 | 269 | } |
glx | 0:f068fae80257 | 270 | break; |
glx | 0:f068fae80257 | 271 | case 'E': |
glx | 0:f068fae80257 | 272 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 273 | ArrayToUse[i] = Letter_E[i]; |
glx | 0:f068fae80257 | 274 | } |
glx | 0:f068fae80257 | 275 | break; |
glx | 0:f068fae80257 | 276 | case 'F': |
glx | 0:f068fae80257 | 277 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 278 | ArrayToUse[i] = Letter_F[i]; |
glx | 0:f068fae80257 | 279 | } |
glx | 0:f068fae80257 | 280 | break; |
glx | 0:f068fae80257 | 281 | case 'G': |
glx | 0:f068fae80257 | 282 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 283 | ArrayToUse[i] = Letter_G[i]; |
glx | 0:f068fae80257 | 284 | } |
glx | 0:f068fae80257 | 285 | break; |
glx | 0:f068fae80257 | 286 | case 'H': |
glx | 0:f068fae80257 | 287 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 288 | ArrayToUse[i] = Letter_H[i]; |
glx | 0:f068fae80257 | 289 | } |
glx | 0:f068fae80257 | 290 | break; |
glx | 0:f068fae80257 | 291 | case 'I': |
glx | 0:f068fae80257 | 292 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 293 | ArrayToUse[i] = Letter_I[i]; |
glx | 0:f068fae80257 | 294 | } |
glx | 0:f068fae80257 | 295 | break; |
glx | 0:f068fae80257 | 296 | case 'J': |
glx | 0:f068fae80257 | 297 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 298 | ArrayToUse[i] = Letter_J[i]; |
glx | 0:f068fae80257 | 299 | } |
glx | 0:f068fae80257 | 300 | break; |
glx | 0:f068fae80257 | 301 | case 'K': |
glx | 0:f068fae80257 | 302 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 303 | ArrayToUse[i] = Letter_K[i]; |
glx | 0:f068fae80257 | 304 | } |
glx | 0:f068fae80257 | 305 | break; |
glx | 0:f068fae80257 | 306 | case 'L': |
glx | 0:f068fae80257 | 307 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 308 | ArrayToUse[i] = Letter_L[i]; |
glx | 0:f068fae80257 | 309 | } |
glx | 0:f068fae80257 | 310 | break; |
glx | 0:f068fae80257 | 311 | case 'M': |
glx | 0:f068fae80257 | 312 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 313 | ArrayToUse[i] = Letter_M[i]; |
glx | 0:f068fae80257 | 314 | } |
glx | 0:f068fae80257 | 315 | break; |
glx | 0:f068fae80257 | 316 | case 'N': |
glx | 0:f068fae80257 | 317 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 318 | ArrayToUse[i] = Letter_N[i]; |
glx | 0:f068fae80257 | 319 | } |
glx | 0:f068fae80257 | 320 | break; |
glx | 0:f068fae80257 | 321 | case 'O': |
glx | 0:f068fae80257 | 322 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 323 | ArrayToUse[i] = Letter_O[i]; |
glx | 0:f068fae80257 | 324 | } |
glx | 0:f068fae80257 | 325 | break; |
glx | 0:f068fae80257 | 326 | case 'P': |
glx | 0:f068fae80257 | 327 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 328 | ArrayToUse[i] = Letter_P[i]; |
glx | 0:f068fae80257 | 329 | } |
glx | 0:f068fae80257 | 330 | break; |
glx | 0:f068fae80257 | 331 | case 'Q': |
glx | 0:f068fae80257 | 332 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 333 | ArrayToUse[i] = Letter_Q[i]; |
glx | 0:f068fae80257 | 334 | } |
glx | 0:f068fae80257 | 335 | break; |
glx | 0:f068fae80257 | 336 | case 'R': |
glx | 0:f068fae80257 | 337 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 338 | ArrayToUse[i] = Letter_R[i]; |
glx | 0:f068fae80257 | 339 | } |
glx | 0:f068fae80257 | 340 | break; |
glx | 0:f068fae80257 | 341 | case 'S': |
glx | 0:f068fae80257 | 342 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 343 | ArrayToUse[i] = Letter_S[i]; |
glx | 0:f068fae80257 | 344 | } |
glx | 0:f068fae80257 | 345 | break; |
glx | 0:f068fae80257 | 346 | case 'T': |
glx | 0:f068fae80257 | 347 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 348 | ArrayToUse[i] = Letter_T[i]; |
glx | 0:f068fae80257 | 349 | } |
glx | 0:f068fae80257 | 350 | break; |
glx | 0:f068fae80257 | 351 | case 'U': |
glx | 0:f068fae80257 | 352 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 353 | ArrayToUse[i] = Letter_U[i]; |
glx | 0:f068fae80257 | 354 | } |
glx | 0:f068fae80257 | 355 | break; |
glx | 0:f068fae80257 | 356 | case 'V': |
glx | 0:f068fae80257 | 357 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 358 | ArrayToUse[i] = Letter_V[i]; |
glx | 0:f068fae80257 | 359 | } |
glx | 0:f068fae80257 | 360 | break; |
glx | 0:f068fae80257 | 361 | case 'W': |
glx | 0:f068fae80257 | 362 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 363 | ArrayToUse[i] = Letter_W[i]; |
glx | 0:f068fae80257 | 364 | } |
glx | 0:f068fae80257 | 365 | break; |
glx | 0:f068fae80257 | 366 | case 'X': |
glx | 0:f068fae80257 | 367 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 368 | ArrayToUse[i] = Letter_X[i]; |
glx | 0:f068fae80257 | 369 | } |
glx | 0:f068fae80257 | 370 | break; |
glx | 0:f068fae80257 | 371 | case 'Y': |
glx | 0:f068fae80257 | 372 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 373 | ArrayToUse[i] = Letter_Y[i]; |
glx | 0:f068fae80257 | 374 | } |
glx | 0:f068fae80257 | 375 | break; |
glx | 0:f068fae80257 | 376 | case 'Z': |
glx | 0:f068fae80257 | 377 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 378 | ArrayToUse[i] = Letter_Z[i]; |
glx | 0:f068fae80257 | 379 | } |
glx | 0:f068fae80257 | 380 | break; |
glx | 0:f068fae80257 | 381 | |
glx | 0:f068fae80257 | 382 | case 'a': |
glx | 0:f068fae80257 | 383 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 384 | ArrayToUse[i] = Letter_a[i]; |
glx | 0:f068fae80257 | 385 | } |
glx | 0:f068fae80257 | 386 | break; |
glx | 0:f068fae80257 | 387 | case 'b': |
glx | 0:f068fae80257 | 388 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 389 | ArrayToUse[i] = Letter_b[i]; |
glx | 0:f068fae80257 | 390 | } |
glx | 0:f068fae80257 | 391 | break; |
glx | 0:f068fae80257 | 392 | case 'c': |
glx | 0:f068fae80257 | 393 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 394 | ArrayToUse[i] = Letter_c[i]; |
glx | 0:f068fae80257 | 395 | } |
glx | 0:f068fae80257 | 396 | break; |
glx | 0:f068fae80257 | 397 | case 'd': |
glx | 0:f068fae80257 | 398 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 399 | ArrayToUse[i] = Letter_d[i]; |
glx | 0:f068fae80257 | 400 | } |
glx | 0:f068fae80257 | 401 | break; |
glx | 0:f068fae80257 | 402 | case 'e': |
glx | 0:f068fae80257 | 403 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 404 | ArrayToUse[i] = Letter_e[i]; |
glx | 0:f068fae80257 | 405 | } |
glx | 0:f068fae80257 | 406 | break; |
glx | 0:f068fae80257 | 407 | case 'f': |
glx | 0:f068fae80257 | 408 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 409 | ArrayToUse[i] = Letter_f[i]; |
glx | 0:f068fae80257 | 410 | } |
glx | 0:f068fae80257 | 411 | break; |
glx | 0:f068fae80257 | 412 | case 'g': |
glx | 0:f068fae80257 | 413 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 414 | ArrayToUse[i] = Letter_g[i]; |
glx | 0:f068fae80257 | 415 | } |
glx | 0:f068fae80257 | 416 | break; |
glx | 0:f068fae80257 | 417 | case 'h': |
glx | 0:f068fae80257 | 418 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 419 | ArrayToUse[i] = Letter_h[i]; |
glx | 0:f068fae80257 | 420 | } |
glx | 0:f068fae80257 | 421 | break; |
glx | 0:f068fae80257 | 422 | case 'i': |
glx | 0:f068fae80257 | 423 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 424 | ArrayToUse[i] = Letter_i[i]; |
glx | 0:f068fae80257 | 425 | } |
glx | 0:f068fae80257 | 426 | break; |
glx | 0:f068fae80257 | 427 | case 'j': |
glx | 0:f068fae80257 | 428 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 429 | ArrayToUse[i] = Letter_j[i]; |
glx | 0:f068fae80257 | 430 | } |
glx | 0:f068fae80257 | 431 | break; |
glx | 0:f068fae80257 | 432 | case 'k': |
glx | 0:f068fae80257 | 433 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 434 | ArrayToUse[i] = Letter_k[i]; |
glx | 0:f068fae80257 | 435 | } |
glx | 0:f068fae80257 | 436 | break; |
glx | 0:f068fae80257 | 437 | case 'l': |
glx | 0:f068fae80257 | 438 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 439 | ArrayToUse[i] = Letter_l[i]; |
glx | 0:f068fae80257 | 440 | } |
glx | 0:f068fae80257 | 441 | break; |
glx | 0:f068fae80257 | 442 | case 'm': |
glx | 0:f068fae80257 | 443 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 444 | ArrayToUse[i] = Letter_m[i]; |
glx | 0:f068fae80257 | 445 | } |
glx | 0:f068fae80257 | 446 | break; |
glx | 0:f068fae80257 | 447 | case 'n': |
glx | 0:f068fae80257 | 448 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 449 | ArrayToUse[i] = Letter_n[i]; |
glx | 0:f068fae80257 | 450 | } |
glx | 0:f068fae80257 | 451 | break; |
glx | 0:f068fae80257 | 452 | case 'o': |
glx | 0:f068fae80257 | 453 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 454 | ArrayToUse[i] = Letter_o[i]; |
glx | 0:f068fae80257 | 455 | } |
glx | 0:f068fae80257 | 456 | break; |
glx | 0:f068fae80257 | 457 | case 'p': |
glx | 0:f068fae80257 | 458 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 459 | ArrayToUse[i] = Letter_p[i]; |
glx | 0:f068fae80257 | 460 | } |
glx | 0:f068fae80257 | 461 | break; |
glx | 0:f068fae80257 | 462 | case 'q': |
glx | 0:f068fae80257 | 463 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 464 | ArrayToUse[i] = Letter_q[i]; |
glx | 0:f068fae80257 | 465 | } |
glx | 0:f068fae80257 | 466 | break; |
glx | 0:f068fae80257 | 467 | case 'r': |
glx | 0:f068fae80257 | 468 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 469 | ArrayToUse[i] = Letter_r[i]; |
glx | 0:f068fae80257 | 470 | } |
glx | 0:f068fae80257 | 471 | break; |
glx | 0:f068fae80257 | 472 | case 's': |
glx | 0:f068fae80257 | 473 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 474 | ArrayToUse[i] = Letter_s[i]; |
glx | 0:f068fae80257 | 475 | } |
glx | 0:f068fae80257 | 476 | break; |
glx | 0:f068fae80257 | 477 | case 't': |
glx | 0:f068fae80257 | 478 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 479 | ArrayToUse[i] = Letter_t[i]; |
glx | 0:f068fae80257 | 480 | } |
glx | 0:f068fae80257 | 481 | break; |
glx | 0:f068fae80257 | 482 | case 'u': |
glx | 0:f068fae80257 | 483 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 484 | ArrayToUse[i] = Letter_u[i]; |
glx | 0:f068fae80257 | 485 | } |
glx | 0:f068fae80257 | 486 | break; |
glx | 0:f068fae80257 | 487 | case 'v': |
glx | 0:f068fae80257 | 488 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 489 | ArrayToUse[i] = Letter_v[i]; |
glx | 0:f068fae80257 | 490 | } |
glx | 0:f068fae80257 | 491 | break; |
glx | 0:f068fae80257 | 492 | case 'w': |
glx | 0:f068fae80257 | 493 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 494 | ArrayToUse[i] = Letter_w[i]; |
glx | 0:f068fae80257 | 495 | } |
glx | 0:f068fae80257 | 496 | break; |
glx | 0:f068fae80257 | 497 | case 'x': |
glx | 0:f068fae80257 | 498 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 499 | ArrayToUse[i] = Letter_x[i]; |
glx | 0:f068fae80257 | 500 | } |
glx | 0:f068fae80257 | 501 | break; |
glx | 0:f068fae80257 | 502 | case 'y': |
glx | 0:f068fae80257 | 503 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 504 | ArrayToUse[i] = Letter_y[i]; |
glx | 0:f068fae80257 | 505 | } |
glx | 0:f068fae80257 | 506 | break; |
glx | 0:f068fae80257 | 507 | case 'z': |
glx | 0:f068fae80257 | 508 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 509 | ArrayToUse[i] = Letter_z[i]; |
glx | 0:f068fae80257 | 510 | } |
glx | 0:f068fae80257 | 511 | break; |
glx | 0:f068fae80257 | 512 | |
glx | 0:f068fae80257 | 513 | case '0': |
glx | 0:f068fae80257 | 514 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 515 | ArrayToUse[i] = Letter_0[i]; |
glx | 0:f068fae80257 | 516 | } |
glx | 0:f068fae80257 | 517 | break; |
glx | 0:f068fae80257 | 518 | case '1': |
glx | 0:f068fae80257 | 519 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 520 | ArrayToUse[i] = Letter_1[i]; |
glx | 0:f068fae80257 | 521 | } |
glx | 0:f068fae80257 | 522 | break; |
glx | 0:f068fae80257 | 523 | case '2': |
glx | 0:f068fae80257 | 524 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 525 | ArrayToUse[i] = Letter_2[i]; |
glx | 0:f068fae80257 | 526 | } |
glx | 0:f068fae80257 | 527 | break; |
glx | 0:f068fae80257 | 528 | case '3': |
glx | 0:f068fae80257 | 529 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 530 | ArrayToUse[i] = Letter_3[i]; |
glx | 0:f068fae80257 | 531 | } |
glx | 0:f068fae80257 | 532 | break; |
glx | 0:f068fae80257 | 533 | case '4': |
glx | 0:f068fae80257 | 534 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 535 | ArrayToUse[i] = Letter_4[i]; |
glx | 0:f068fae80257 | 536 | } |
glx | 0:f068fae80257 | 537 | break; |
glx | 0:f068fae80257 | 538 | case '5': |
glx | 0:f068fae80257 | 539 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 540 | ArrayToUse[i] = Letter_5[i]; |
glx | 0:f068fae80257 | 541 | } |
glx | 0:f068fae80257 | 542 | break; |
glx | 0:f068fae80257 | 543 | case '6': |
glx | 0:f068fae80257 | 544 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 545 | ArrayToUse[i] = Letter_6[i]; |
glx | 0:f068fae80257 | 546 | } |
glx | 0:f068fae80257 | 547 | break; |
glx | 0:f068fae80257 | 548 | case '7': |
glx | 0:f068fae80257 | 549 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 550 | ArrayToUse[i] = Letter_7[i]; |
glx | 0:f068fae80257 | 551 | } |
glx | 0:f068fae80257 | 552 | break; |
glx | 0:f068fae80257 | 553 | case '8': |
glx | 0:f068fae80257 | 554 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 555 | ArrayToUse[i] = Letter_8[i]; |
glx | 0:f068fae80257 | 556 | } |
glx | 0:f068fae80257 | 557 | break; |
glx | 0:f068fae80257 | 558 | case '9': |
glx | 0:f068fae80257 | 559 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 560 | ArrayToUse[i] = Letter_9[i]; |
glx | 0:f068fae80257 | 561 | } |
glx | 0:f068fae80257 | 562 | break; |
glx | 0:f068fae80257 | 563 | |
glx | 0:f068fae80257 | 564 | case '!': |
glx | 0:f068fae80257 | 565 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 566 | ArrayToUse[i] = Letter_CH21[i]; |
glx | 0:f068fae80257 | 567 | } |
glx | 0:f068fae80257 | 568 | break; |
glx | 0:f068fae80257 | 569 | case '"': |
glx | 0:f068fae80257 | 570 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 571 | ArrayToUse[i] = Letter_CH22[i]; |
glx | 0:f068fae80257 | 572 | } |
glx | 0:f068fae80257 | 573 | break; |
glx | 0:f068fae80257 | 574 | case '#': |
glx | 0:f068fae80257 | 575 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 576 | ArrayToUse[i] = Letter_CH23[i]; |
glx | 0:f068fae80257 | 577 | } |
glx | 0:f068fae80257 | 578 | break; |
glx | 0:f068fae80257 | 579 | case '$': |
glx | 0:f068fae80257 | 580 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 581 | ArrayToUse[i] = Letter_CH24[i]; |
glx | 0:f068fae80257 | 582 | } |
glx | 0:f068fae80257 | 583 | break; |
glx | 0:f068fae80257 | 584 | case '%': |
glx | 0:f068fae80257 | 585 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 586 | ArrayToUse[i] = Letter_CH25[i]; |
glx | 0:f068fae80257 | 587 | } |
glx | 0:f068fae80257 | 588 | break; |
glx | 0:f068fae80257 | 589 | case '&': |
glx | 0:f068fae80257 | 590 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 591 | ArrayToUse[i] = Letter_CH26[i]; |
glx | 0:f068fae80257 | 592 | } |
glx | 0:f068fae80257 | 593 | break; |
glx | 0:f068fae80257 | 594 | case '\'': |
glx | 0:f068fae80257 | 595 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 596 | ArrayToUse[i] = Letter_CH27[i]; |
glx | 0:f068fae80257 | 597 | } |
glx | 0:f068fae80257 | 598 | break; |
glx | 0:f068fae80257 | 599 | case '(': |
glx | 0:f068fae80257 | 600 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 601 | ArrayToUse[i] = Letter_CH28[i]; |
glx | 0:f068fae80257 | 602 | } |
glx | 0:f068fae80257 | 603 | break; |
glx | 0:f068fae80257 | 604 | case ')': |
glx | 0:f068fae80257 | 605 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 606 | ArrayToUse[i] = Letter_CH29[i]; |
glx | 0:f068fae80257 | 607 | } |
glx | 0:f068fae80257 | 608 | break; |
glx | 0:f068fae80257 | 609 | case '*': |
glx | 0:f068fae80257 | 610 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 611 | ArrayToUse[i] = Letter_CH2A[i]; |
glx | 0:f068fae80257 | 612 | } |
glx | 0:f068fae80257 | 613 | break; |
glx | 0:f068fae80257 | 614 | case '+': |
glx | 0:f068fae80257 | 615 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 616 | ArrayToUse[i] = Letter_CH2B[i]; |
glx | 0:f068fae80257 | 617 | } |
glx | 0:f068fae80257 | 618 | break; |
glx | 0:f068fae80257 | 619 | case ',': |
glx | 0:f068fae80257 | 620 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 621 | ArrayToUse[i] = Letter_CH2C[i]; |
glx | 0:f068fae80257 | 622 | } |
glx | 0:f068fae80257 | 623 | break; |
glx | 0:f068fae80257 | 624 | case '-': |
glx | 0:f068fae80257 | 625 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 626 | ArrayToUse[i] = Letter_CH2D[i]; |
glx | 0:f068fae80257 | 627 | } |
glx | 0:f068fae80257 | 628 | break; |
glx | 0:f068fae80257 | 629 | case '.': |
glx | 0:f068fae80257 | 630 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 631 | ArrayToUse[i] = Letter_CH2E[i]; |
glx | 0:f068fae80257 | 632 | } |
glx | 0:f068fae80257 | 633 | break; |
glx | 0:f068fae80257 | 634 | case '/': |
glx | 0:f068fae80257 | 635 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 636 | ArrayToUse[i] = Letter_CH2F[i]; |
glx | 0:f068fae80257 | 637 | } |
glx | 0:f068fae80257 | 638 | break; |
glx | 0:f068fae80257 | 639 | |
glx | 0:f068fae80257 | 640 | case ':': |
glx | 0:f068fae80257 | 641 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 642 | ArrayToUse[i] = Letter_CH3A[i]; |
glx | 0:f068fae80257 | 643 | } |
glx | 0:f068fae80257 | 644 | break; |
glx | 0:f068fae80257 | 645 | case ';': |
glx | 0:f068fae80257 | 646 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 647 | ArrayToUse[i] = Letter_CH3B[i]; |
glx | 0:f068fae80257 | 648 | } |
glx | 0:f068fae80257 | 649 | break; |
glx | 0:f068fae80257 | 650 | case '<': |
glx | 0:f068fae80257 | 651 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 652 | ArrayToUse[i] = Letter_CH3C[i]; |
glx | 0:f068fae80257 | 653 | } |
glx | 0:f068fae80257 | 654 | break; |
glx | 0:f068fae80257 | 655 | case '=': |
glx | 0:f068fae80257 | 656 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 657 | ArrayToUse[i] = Letter_CH3D[i]; |
glx | 0:f068fae80257 | 658 | } |
glx | 0:f068fae80257 | 659 | break; |
glx | 0:f068fae80257 | 660 | case '>': |
glx | 0:f068fae80257 | 661 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 662 | ArrayToUse[i] = Letter_CH3E[i]; |
glx | 0:f068fae80257 | 663 | } |
glx | 0:f068fae80257 | 664 | break; |
glx | 0:f068fae80257 | 665 | case '?': |
glx | 0:f068fae80257 | 666 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 667 | ArrayToUse[i] = Letter_CH3F[i]; |
glx | 0:f068fae80257 | 668 | } |
glx | 0:f068fae80257 | 669 | break; |
glx | 0:f068fae80257 | 670 | case '@': |
glx | 0:f068fae80257 | 671 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 672 | ArrayToUse[i] = Letter_CH40[i]; |
glx | 0:f068fae80257 | 673 | } |
glx | 0:f068fae80257 | 674 | break; |
glx | 0:f068fae80257 | 675 | |
glx | 0:f068fae80257 | 676 | case ' ': |
glx | 0:f068fae80257 | 677 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 678 | ArrayToUse[i] = Letter_Space[i]; |
glx | 0:f068fae80257 | 679 | } |
glx | 0:f068fae80257 | 680 | break; |
glx | 0:f068fae80257 | 681 | |
glx | 0:f068fae80257 | 682 | case '\0': //if the end of string char is found, end function |
glx | 0:f068fae80257 | 683 | return; |
glx | 0:f068fae80257 | 684 | |
glx | 0:f068fae80257 | 685 | |
glx | 0:f068fae80257 | 686 | default: |
glx | 0:f068fae80257 | 687 | for(int i = 0; i < 10; i++) { |
glx | 0:f068fae80257 | 688 | ArrayToUse[i] = unArray[i]; |
glx | 0:f068fae80257 | 689 | } |
glx | 0:f068fae80257 | 690 | break; |
glx | 0:f068fae80257 | 691 | } |
glx | 0:f068fae80257 | 692 | // ASCII Width 1stR 2ndR 3rdR 4thR 5thR 6thR 7thR 8thR |
glx | 0:f068fae80257 | 693 | // Letter_A = { 0x41, 0x05, 0x0E, 0x11, 0x11, 0x11, 0x1F, 0x11, 0x11, 0x00 } |
glx | 0:f068fae80257 | 694 | LetterWidth = ArrayToUse[1]; |
glx | 0:f068fae80257 | 695 | |
glx | 0:f068fae80257 | 696 | if (UseLargeFont) { |
glx | 0:f068fae80257 | 697 | for (int LetterRow = 0; LetterRow < sizeof ArrayToUse - 2; LetterRow++) { |
glx | 0:f068fae80257 | 698 | if (((ArrayToUse[LetterRow + 2] & Bit0) == Bit0) && LetterWidth > 0) { |
glx | 4:5d6f6e0191b8 | 699 | DrawPixel(x + xOffset + 0, y + (LetterRow * 2) + 1); |
glx | 4:5d6f6e0191b8 | 700 | DrawPixel(x + xOffset + 1, y + (LetterRow * 2) + 1); |
glx | 4:5d6f6e0191b8 | 701 | DrawPixel(x + xOffset + 0, y + (LetterRow * 2) + 0); |
glx | 4:5d6f6e0191b8 | 702 | DrawPixel(x + xOffset + 1, y + (LetterRow * 2) + 0); |
glx | 0:f068fae80257 | 703 | } |
glx | 0:f068fae80257 | 704 | if (((ArrayToUse[LetterRow + 2] & Bit1) == Bit1) && LetterWidth > 1) { |
glx | 4:5d6f6e0191b8 | 705 | DrawPixel(x + xOffset + 2, y + (LetterRow * 2) + 1); |
glx | 4:5d6f6e0191b8 | 706 | DrawPixel(x + xOffset + 3, y + (LetterRow * 2) + 1); |
glx | 4:5d6f6e0191b8 | 707 | DrawPixel(x + xOffset + 2, y + (LetterRow * 2) + 0); |
glx | 4:5d6f6e0191b8 | 708 | DrawPixel(x + xOffset + 3, y + (LetterRow * 2) + 0); |
glx | 0:f068fae80257 | 709 | } |
glx | 0:f068fae80257 | 710 | if (((ArrayToUse[LetterRow + 2] & Bit2) == Bit2) && LetterWidth > 2) { |
glx | 4:5d6f6e0191b8 | 711 | DrawPixel(x + xOffset + 4, y + (LetterRow * 2) + 1); |
glx | 4:5d6f6e0191b8 | 712 | DrawPixel(x + xOffset + 5, y + (LetterRow * 2) + 1); |
glx | 4:5d6f6e0191b8 | 713 | DrawPixel(x + xOffset + 4, y + (LetterRow * 2) + 0); |
glx | 4:5d6f6e0191b8 | 714 | DrawPixel(x + xOffset + 5, y + (LetterRow * 2) + 0); |
glx | 0:f068fae80257 | 715 | } |
glx | 0:f068fae80257 | 716 | if (((ArrayToUse[LetterRow + 2] & Bit3) == Bit3) && LetterWidth > 3) { |
glx | 4:5d6f6e0191b8 | 717 | DrawPixel(x + xOffset + 6, y + (LetterRow * 2) + 1); |
glx | 4:5d6f6e0191b8 | 718 | DrawPixel(x + xOffset + 7, y + (LetterRow * 2) + 1); |
glx | 4:5d6f6e0191b8 | 719 | DrawPixel(x + xOffset + 6, y + (LetterRow * 2) + 0); |
glx | 4:5d6f6e0191b8 | 720 | DrawPixel(x + xOffset + 7, y + (LetterRow * 2) + 0); |
glx | 0:f068fae80257 | 721 | } |
glx | 0:f068fae80257 | 722 | if (((ArrayToUse[LetterRow + 2] & Bit4) == Bit4) && LetterWidth > 4) { |
glx | 4:5d6f6e0191b8 | 723 | DrawPixel(x + xOffset + 8, y + (LetterRow * 2) + 1); |
glx | 4:5d6f6e0191b8 | 724 | DrawPixel(x + xOffset + 9, y + (LetterRow * 2) + 1); |
glx | 4:5d6f6e0191b8 | 725 | DrawPixel(x + xOffset + 8, y + (LetterRow * 2) + 0); |
glx | 4:5d6f6e0191b8 | 726 | DrawPixel(x + xOffset + 9, y + (LetterRow * 2) + 0); |
glx | 0:f068fae80257 | 727 | } |
glx | 0:f068fae80257 | 728 | if (((ArrayToUse[LetterRow + 2] & Bit5) == Bit5) && LetterWidth > 5) { |
glx | 4:5d6f6e0191b8 | 729 | DrawPixel(x + xOffset + 10, y + (LetterRow * 2) + 1); |
glx | 4:5d6f6e0191b8 | 730 | DrawPixel(x + xOffset + 11, y + (LetterRow * 2) + 1); |
glx | 4:5d6f6e0191b8 | 731 | DrawPixel(x + xOffset + 10, y + (LetterRow * 2) + 0); |
glx | 4:5d6f6e0191b8 | 732 | DrawPixel(x + xOffset + 11, y + (LetterRow * 2) + 0); |
glx | 0:f068fae80257 | 733 | } |
glx | 0:f068fae80257 | 734 | if (((ArrayToUse[LetterRow + 2] & Bit6) == Bit6) && LetterWidth > 6) { |
glx | 4:5d6f6e0191b8 | 735 | DrawPixel(x + xOffset + 12, y + (LetterRow * 2) + 1); |
glx | 4:5d6f6e0191b8 | 736 | DrawPixel(x + xOffset + 13, y + (LetterRow * 2) + 1); |
glx | 4:5d6f6e0191b8 | 737 | DrawPixel(x + xOffset + 12, y + (LetterRow * 2) + 0); |
glx | 4:5d6f6e0191b8 | 738 | DrawPixel(x + xOffset + 13, y + (LetterRow * 2) + 0); |
glx | 0:f068fae80257 | 739 | } |
glx | 0:f068fae80257 | 740 | if (((ArrayToUse[LetterRow + 2] & Bit7) == Bit7) && LetterWidth > 7) { |
glx | 4:5d6f6e0191b8 | 741 | DrawPixel(x + xOffset + 14, y + (LetterRow * 2) + 1); |
glx | 4:5d6f6e0191b8 | 742 | DrawPixel(x + xOffset + 15, y + (LetterRow * 2) + 1); |
glx | 4:5d6f6e0191b8 | 743 | DrawPixel(x + xOffset + 14, y + (LetterRow * 2) + 0); |
glx | 4:5d6f6e0191b8 | 744 | DrawPixel(x + xOffset + 15, y + (LetterRow * 2) + 0); |
glx | 0:f068fae80257 | 745 | } |
glx | 0:f068fae80257 | 746 | } |
glx | 0:f068fae80257 | 747 | |
glx | 0:f068fae80257 | 748 | xOffset += (LetterWidth * 2) + 1; |
glx | 0:f068fae80257 | 749 | } |
glx | 0:f068fae80257 | 750 | |
glx | 0:f068fae80257 | 751 | else { |
glx | 0:f068fae80257 | 752 | for (int LetterRow = 2; LetterRow < sizeof ArrayToUse; LetterRow++) { |
glx | 0:f068fae80257 | 753 | if (((ArrayToUse[LetterRow] & Bit0) == Bit0) && LetterWidth > 0) |
glx | 4:5d6f6e0191b8 | 754 | DrawPixel(x + xOffset + 0, y + LetterRow - 2); |
glx | 0:f068fae80257 | 755 | if (((ArrayToUse[LetterRow] & Bit1) == Bit1) && LetterWidth > 1) |
glx | 4:5d6f6e0191b8 | 756 | DrawPixel(x + xOffset + 1, y + LetterRow - 2); |
glx | 0:f068fae80257 | 757 | if (((ArrayToUse[LetterRow] & Bit2) == Bit2) && LetterWidth > 2) |
glx | 4:5d6f6e0191b8 | 758 | DrawPixel(x + xOffset + 2, y + LetterRow - 2); |
glx | 0:f068fae80257 | 759 | if (((ArrayToUse[LetterRow] & Bit3) == Bit3) && LetterWidth > 3) |
glx | 4:5d6f6e0191b8 | 760 | DrawPixel(x + xOffset + 3, y + LetterRow - 2); |
glx | 0:f068fae80257 | 761 | if (((ArrayToUse[LetterRow] & Bit4) == Bit4) && LetterWidth > 4) |
glx | 4:5d6f6e0191b8 | 762 | DrawPixel(x + xOffset + 4, y + LetterRow - 2); |
glx | 0:f068fae80257 | 763 | if (((ArrayToUse[LetterRow] & Bit5) == Bit5) && LetterWidth > 5) |
glx | 4:5d6f6e0191b8 | 764 | DrawPixel(x + xOffset + 5, y + LetterRow - 2); |
glx | 0:f068fae80257 | 765 | if (((ArrayToUse[LetterRow] & Bit6) == Bit6) && LetterWidth > 6) |
glx | 4:5d6f6e0191b8 | 766 | DrawPixel(x + xOffset + 6, y + LetterRow - 2); |
glx | 0:f068fae80257 | 767 | if (((ArrayToUse[LetterRow] & Bit7) == Bit7) && LetterWidth > 7) |
glx | 4:5d6f6e0191b8 | 768 | DrawPixel(x + xOffset + 7, y + LetterRow - 2); |
glx | 0:f068fae80257 | 769 | } |
glx | 0:f068fae80257 | 770 | |
glx | 0:f068fae80257 | 771 | xOffset += LetterWidth + 1; |
glx | 0:f068fae80257 | 772 | } |
glx | 0:f068fae80257 | 773 | } |
glx | 0:f068fae80257 | 774 | |
glx | 0:f068fae80257 | 775 | } |
glx | 0:f068fae80257 | 776 | |
glx | 4:5d6f6e0191b8 | 777 | void TinyBitmap::ClearScreen() |
glx | 0:f068fae80257 | 778 | { |
glx | 0:f068fae80257 | 779 | int size = (_IMAGEWIDTH * _IMAGEHEIGHT / 8) + _COMMANDBYTES; |
glx | 0:f068fae80257 | 780 | |
glx | 0:f068fae80257 | 781 | for (int i = _COMMANDBYTES; i < size; i++) { |
glx | 4:5d6f6e0191b8 | 782 | _FRAMEBUFFER[i] = 0x00; |
glx | 0:f068fae80257 | 783 | } |
glx | 0:f068fae80257 | 784 | } |
glx | 0:f068fae80257 | 785 |