Joshua Newth / Mbed 2 deprecated POV01

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers FontPack.cpp Source File

FontPack.cpp

00001 #include "FontPack.h"
00002 #include "mbed.h"
00003 
00004 using namespace FontPack;
00005 using namespace std;
00006 
00007 static const char FONTPACK_CHAR_WIDTH=5;
00008 
00009 //numbers
00010 static const char FONTPACK_0[FONTPACK_CHAR_WIDTH] = {0x7E, 0xE1, 0x99, 0x87, 0x7E};
00011 static const char FONTPACK_1[FONTPACK_CHAR_WIDTH] = {0x21, 0x41, 0xFF, 0x01, 0x01};
00012 static const char FONTPACK_2[FONTPACK_CHAR_WIDTH] = {0x63, 0x85, 0x89, 0x91, 0x61};
00013 static const char FONTPACK_3[FONTPACK_CHAR_WIDTH] = {0x42, 0x81, 0x91, 0x91, 0x6E};
00014 static const char FONTPACK_4[FONTPACK_CHAR_WIDTH] = {0x18, 0x28, 0x48, 0xFF, 0x08};
00015 static const char FONTPACK_5[FONTPACK_CHAR_WIDTH] = {0xF2, 0x91, 0x91, 0x91, 0x8E};
00016 static const char FONTPACK_6[FONTPACK_CHAR_WIDTH] = {0x7E, 0x91, 0x91, 0x91, 0x4E};
00017 static const char FONTPACK_7[FONTPACK_CHAR_WIDTH] = {0x80, 0x8F, 0x90, 0xA0, 0xC0};
00018 static const char FONTPACK_8[FONTPACK_CHAR_WIDTH] = {0x6E, 0x91, 0x91, 0x91, 0x6E};
00019 static const char FONTPACK_9[FONTPACK_CHAR_WIDTH] = {0x70, 0x88, 0x88, 0x90, 0x7F};
00020 //letters
00021 static const char FONTPACK_A[FONTPACK_CHAR_WIDTH] = {0x3F, 0x48, 0x88, 0x48, 0x3F};
00022 static const char FONTPACK_B[FONTPACK_CHAR_WIDTH] = {0xFF, 0x91, 0x91, 0x91, 0x6E};
00023 static const char FONTPACK_C[FONTPACK_CHAR_WIDTH] = {0x7E, 0x81, 0x81, 0x81, 0x42};
00024 static const char FONTPACK_D[FONTPACK_CHAR_WIDTH] = {0xFF, 0x81, 0x81, 0x81, 0x7E};
00025 static const char FONTPACK_E[FONTPACK_CHAR_WIDTH] = {0xFF, 0x91, 0x91, 0x91, 0x91};
00026 static const char FONTPACK_F[FONTPACK_CHAR_WIDTH] = {0xFF, 0x90, 0x90, 0x90, 0x80};
00027 static const char FONTPACK_G[FONTPACK_CHAR_WIDTH] = {0x7E, 0x89, 0x89, 0x6E, 0x08}; //{0x7E, 0x89, 0x89, 0x89, 0x4E}; //
00028 static const char FONTPACK_H[FONTPACK_CHAR_WIDTH] = {0xFF, 0x10, 0x10, 0x10, 0xFF};
00029 static const char FONTPACK_I[FONTPACK_CHAR_WIDTH] = {0x81, 0x81, 0xFF, 0x81, 0x81};
00030 static const char FONTPACK_J[FONTPACK_CHAR_WIDTH] = {0x86, 0x81, 0x81, 0xFE, 0x80};
00031 static const char FONTPACK_K[FONTPACK_CHAR_WIDTH] = {0xFF, 0x18, 0x28, 0x44, 0x83};
00032 static const char FONTPACK_L[FONTPACK_CHAR_WIDTH] = {0xFF, 0x01, 0x01, 0x01, 0x01};
00033 static const char FONTPACK_M[FONTPACK_CHAR_WIDTH] = {0x7F, 0x80, 0x7C, 0x80, 0x7F};
00034 static const char FONTPACK_N[FONTPACK_CHAR_WIDTH] = {0xFF, 0x60, 0x18, 0x06, 0xFF};
00035 static const char FONTPACK_O[FONTPACK_CHAR_WIDTH] = {0x7E, 0x81, 0x81, 0x81, 0x7E};
00036 static const char FONTPACK_P[FONTPACK_CHAR_WIDTH] = {0xFF, 0x88, 0x88, 0x88, 0x70};
00037 static const char FONTPACK_Q[FONTPACK_CHAR_WIDTH] = {0x7E, 0x89, 0x85, 0x7E, 0x01};
00038 static const char FONTPACK_R[FONTPACK_CHAR_WIDTH] = {0xFF, 0x88, 0x88, 0x98, 0x6F};
00039 static const char FONTPACK_S[FONTPACK_CHAR_WIDTH] = {0x62, 0x91, 0x91, 0x91, 0x4E};
00040 static const char FONTPACK_T[FONTPACK_CHAR_WIDTH] = {0x80, 0x80, 0xFF, 0x80, 0x80};
00041 static const char FONTPACK_U[FONTPACK_CHAR_WIDTH] = {0xFE, 0x01, 0x01, 0x01, 0xFE};
00042 static const char FONTPACK_V[FONTPACK_CHAR_WIDTH] = {0xFC, 0x02, 0x01, 0x02, 0xFC};
00043 static const char FONTPACK_W[FONTPACK_CHAR_WIDTH] = {0xFE, 0x01, 0x0E, 0x01, 0xFE};
00044 static const char FONTPACK_X[FONTPACK_CHAR_WIDTH] = {0xC7, 0x28, 0x10, 0x28, 0xC7};
00045 static const char FONTPACK_Y[FONTPACK_CHAR_WIDTH] = {0xE0, 0x10, 0x0F, 0x10, 0xE0};
00046 static const char FONTPACK_Z[FONTPACK_CHAR_WIDTH] = {0x83, 0x85, 0x99, 0xA1, 0xC1};
00047 
00048 //special characters
00049 static const char FONTPACK_COLON[FONTPACK_CHAR_WIDTH] = {0x00, 0x00, 0x24, 0x00, 0x00};
00050 static const char FONTPACK_SPACE[FONTPACK_CHAR_WIDTH] = {0,0,0,0,0};
00051 static const char FONTPACK_PERIOD[FONTPACK_CHAR_WIDTH] = {0x00, 0x00, 0x03, 0x03, 0x00};
00052 static const char FONTPACK_EXCLAMATION[FONTPACK_CHAR_WIDTH] ={0x00, 0x00, 0xFB, 0xFB, 0x00};
00053 
00054 
00055 int FontPack::writeChar(char c, char map[], int index, int col) {
00056     int out=index;
00057     FontPackChar myChar = getChar(c);
00058     if (col >= myChar.nCols) return index; //do nothing
00059     for (int i=0; i < myChar.nCols; i++) {
00060         out++;
00061         map[index+i] = myChar.getCol(i);
00062     }
00063     return out+1; //gives a bit of space between letters
00064 }
00065 
00066 int FontPack::blank(int index) {
00067     return index+1;
00068 }
00069 
00070 FontPackChar FontPack::getChar(char a) {
00071     FontPackChar myChar;
00072     myChar.nCols = FONTPACK_CHAR_WIDTH;
00073 
00074     switch (a) {
00075         case '0':
00076             myChar.col = FONTPACK_0;
00077             break;
00078         case '1':
00079             myChar.col = FONTPACK_1;
00080             break;
00081         case '2':
00082             myChar.col = FONTPACK_2;
00083             break;
00084         case '3':
00085             myChar.col = FONTPACK_3;
00086             break;
00087         case '4':
00088             myChar.col = FONTPACK_4;
00089             break;
00090         case '5':
00091             myChar.col = FONTPACK_5;
00092             break;
00093         case '6':
00094             myChar.col = FONTPACK_6;
00095             break;
00096         case '7':
00097             myChar.col = FONTPACK_7;
00098             break;
00099         case '8':
00100             myChar.col = FONTPACK_8;
00101             break;
00102         case '9':
00103             myChar.col = FONTPACK_9;
00104             break;
00105         case 'A':
00106         case 'a':
00107             myChar.col = FONTPACK_A;
00108             break;
00109         case 'B':
00110         case 'b':
00111             myChar.col = FONTPACK_B;
00112             break;
00113         case 'C':
00114         case 'c':
00115             myChar.col = FONTPACK_C;
00116             break;
00117         case 'D':
00118         case 'd':
00119             myChar.col = FONTPACK_D;
00120             break;
00121         case 'E':
00122         case 'e':
00123             myChar.col = FONTPACK_E;
00124             break;
00125         case 'F':
00126         case 'f':
00127             myChar.col = FONTPACK_F;
00128             break;
00129         case 'G':
00130         case 'g':
00131             myChar.col = FONTPACK_G;
00132             break;
00133         case 'H':
00134         case 'h':
00135             myChar.col = FONTPACK_H;
00136             break;
00137         case 'I':
00138         case 'i':
00139             myChar.col = FONTPACK_I;
00140             break;
00141         case 'J':
00142         case 'j':
00143             myChar.col = FONTPACK_J;
00144             break;
00145         case 'K':
00146         case 'k':
00147             myChar.col = FONTPACK_K;
00148             break;
00149         case 'L':
00150         case 'l':
00151             myChar.col = FONTPACK_L;
00152             break;
00153         case 'M':
00154         case 'm':
00155             myChar.col = FONTPACK_M;
00156             break;
00157         case 'N':
00158         case 'n':
00159             myChar.col = FONTPACK_N;
00160             break;
00161         case 'O':
00162         case 'o':
00163             myChar.col = FONTPACK_O;
00164             break;
00165         case 'P':
00166         case 'p':
00167             myChar.col = FONTPACK_P;
00168             break;
00169         case 'Q':
00170         case 'q':
00171             myChar.col = FONTPACK_Q;
00172             break;
00173         case 'R':
00174         case 'r':
00175             myChar.col = FONTPACK_R;
00176             break;
00177         case 'S':
00178         case 's':
00179             myChar.col = FONTPACK_S;
00180             break;
00181         case 'T':
00182         case 't':
00183             myChar.col = FONTPACK_T;
00184             break;
00185         case 'U':
00186         case 'u':
00187             myChar.col = FONTPACK_U;
00188             break;
00189         case 'V':
00190         case 'v':
00191             myChar.col = FONTPACK_V;
00192             break;
00193         case 'W':
00194         case 'w':
00195             myChar.col = FONTPACK_W;
00196             break;
00197         case 'X':
00198         case 'x':
00199             myChar.col = FONTPACK_X;
00200             break;
00201         case 'Y':
00202         case 'y':
00203             myChar.col = FONTPACK_Y;
00204             break;
00205         case 'Z':
00206         case 'z':
00207             myChar.col = FONTPACK_Z;
00208             break;
00209         case ':':
00210             myChar.col = FONTPACK_COLON;
00211             break;
00212         case '.':
00213             myChar.col = FONTPACK_PERIOD;
00214             break;
00215         case ' ':
00216             myChar.col = FONTPACK_SPACE;
00217             break;
00218         case '!':
00219             myChar.col = FONTPACK_EXCLAMATION;
00220             break;
00221         default:
00222             myChar.col = FONTPACK_SPACE;
00223             break;
00224 
00225     }
00226     return myChar;
00227 }