This driver is meant for the monochrome LCD display (model no: LS013B4DN04) from Sharp; but it should be easily adaptable to other Sharp displays.
font.c@0:62d7cfac67ca, 2014-07-23 (annotated)
- Committer:
- rgrover1
- Date:
- Wed Jul 23 10:40:35 2014 +0000
- Revision:
- 0:62d7cfac67ca
initial working checkin
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rgrover1 | 0:62d7cfac67ca | 1 | /* mbed Microcontroller Library |
rgrover1 | 0:62d7cfac67ca | 2 | * Copyright (c) 2006-2013 ARM Limited |
rgrover1 | 0:62d7cfac67ca | 3 | * |
rgrover1 | 0:62d7cfac67ca | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
rgrover1 | 0:62d7cfac67ca | 5 | * you may not use this file except in compliance with the License. |
rgrover1 | 0:62d7cfac67ca | 6 | * You may obtain a copy of the License at |
rgrover1 | 0:62d7cfac67ca | 7 | * |
rgrover1 | 0:62d7cfac67ca | 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
rgrover1 | 0:62d7cfac67ca | 9 | * |
rgrover1 | 0:62d7cfac67ca | 10 | * Unless required by applicable law or agreed to in writing, software |
rgrover1 | 0:62d7cfac67ca | 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
rgrover1 | 0:62d7cfac67ca | 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
rgrover1 | 0:62d7cfac67ca | 13 | * See the License for the specific language governing permissions and |
rgrover1 | 0:62d7cfac67ca | 14 | * limitations under the License. |
rgrover1 | 0:62d7cfac67ca | 15 | */ |
rgrover1 | 0:62d7cfac67ca | 16 | |
rgrover1 | 0:62d7cfac67ca | 17 | #include <string.h> |
rgrover1 | 0:62d7cfac67ca | 18 | #include <stddef.h> |
rgrover1 | 0:62d7cfac67ca | 19 | |
rgrover1 | 0:62d7cfac67ca | 20 | #include "font.h" |
rgrover1 | 0:62d7cfac67ca | 21 | |
rgrover1 | 0:62d7cfac67ca | 22 | /* Externs private to the font subsystem. */ |
rgrover1 | 0:62d7cfac67ca | 23 | /* extern const glyph_t glyphs_DejaVu_Serif_10[]; */ |
rgrover1 | 0:62d7cfac67ca | 24 | /* extern const uint8_t bitmaps_DejaVu_Serif_10[]; */ |
rgrover1 | 0:62d7cfac67ca | 25 | extern const glyph_t glyphs_DejaVu_Serif_9[]; |
rgrover1 | 0:62d7cfac67ca | 26 | extern const uint8_t bitmaps_DejaVu_Serif_9[]; |
rgrover1 | 0:62d7cfac67ca | 27 | extern const glyph_t glyphs_DejaVu_Serif_8[]; |
rgrover1 | 0:62d7cfac67ca | 28 | extern const uint8_t bitmaps_DejaVu_Serif_8[]; |
rgrover1 | 0:62d7cfac67ca | 29 | |
rgrover1 | 0:62d7cfac67ca | 30 | /* Accumulation of all avaialble fonts */ |
rgrover1 | 0:62d7cfac67ca | 31 | const font_face_t fonts[] = { |
rgrover1 | 0:62d7cfac67ca | 32 | /* { */ |
rgrover1 | 0:62d7cfac67ca | 33 | /* "DejaVu Serif", */ |
rgrover1 | 0:62d7cfac67ca | 34 | /* 10, /\* pointSize *\/ */ |
rgrover1 | 0:62d7cfac67ca | 35 | /* glyphs_DejaVu_Serif_10, */ |
rgrover1 | 0:62d7cfac67ca | 36 | /* bitmaps_DejaVu_Serif_10 */ |
rgrover1 | 0:62d7cfac67ca | 37 | /* }, */ |
rgrover1 | 0:62d7cfac67ca | 38 | { |
rgrover1 | 0:62d7cfac67ca | 39 | "DejaVu Serif", |
rgrover1 | 0:62d7cfac67ca | 40 | 9, /* pointSize */ |
rgrover1 | 0:62d7cfac67ca | 41 | glyphs_DejaVu_Serif_9, |
rgrover1 | 0:62d7cfac67ca | 42 | bitmaps_DejaVu_Serif_9 |
rgrover1 | 0:62d7cfac67ca | 43 | }, |
rgrover1 | 0:62d7cfac67ca | 44 | { |
rgrover1 | 0:62d7cfac67ca | 45 | "DejaVu Serif", |
rgrover1 | 0:62d7cfac67ca | 46 | 8, /* pointSize */ |
rgrover1 | 0:62d7cfac67ca | 47 | glyphs_DejaVu_Serif_8, |
rgrover1 | 0:62d7cfac67ca | 48 | bitmaps_DejaVu_Serif_8 |
rgrover1 | 0:62d7cfac67ca | 49 | }, |
rgrover1 | 0:62d7cfac67ca | 50 | |
rgrover1 | 0:62d7cfac67ca | 51 | /* sentinel value */ |
rgrover1 | 0:62d7cfac67ca | 52 | { |
rgrover1 | 0:62d7cfac67ca | 53 | NULL, |
rgrover1 | 0:62d7cfac67ca | 54 | 0, |
rgrover1 | 0:62d7cfac67ca | 55 | NULL, |
rgrover1 | 0:62d7cfac67ca | 56 | NULL |
rgrover1 | 0:62d7cfac67ca | 57 | } |
rgrover1 | 0:62d7cfac67ca | 58 | }; |
rgrover1 | 0:62d7cfac67ca | 59 | |
rgrover1 | 0:62d7cfac67ca | 60 | |
rgrover1 | 0:62d7cfac67ca | 61 | const font_face_t * |
rgrover1 | 0:62d7cfac67ca | 62 | lookupFontFace(const char *familyName, |
rgrover1 | 0:62d7cfac67ca | 63 | unsigned int pointSize) |
rgrover1 | 0:62d7cfac67ca | 64 | { |
rgrover1 | 0:62d7cfac67ca | 65 | unsigned fontIndex; |
rgrover1 | 0:62d7cfac67ca | 66 | |
rgrover1 | 0:62d7cfac67ca | 67 | for (fontIndex = 0; fonts[fontIndex].familyName != NULL; fontIndex++) { |
rgrover1 | 0:62d7cfac67ca | 68 | if ((strcmp(fonts[fontIndex].familyName, familyName) == 0) && |
rgrover1 | 0:62d7cfac67ca | 69 | (fonts[fontIndex].pointSize == pointSize)) { |
rgrover1 | 0:62d7cfac67ca | 70 | /* found it! */ |
rgrover1 | 0:62d7cfac67ca | 71 | return (&fonts[fontIndex]); |
rgrover1 | 0:62d7cfac67ca | 72 | } |
rgrover1 | 0:62d7cfac67ca | 73 | } |
rgrover1 | 0:62d7cfac67ca | 74 | |
rgrover1 | 0:62d7cfac67ca | 75 | return (NULL); |
rgrover1 | 0:62d7cfac67ca | 76 | } |