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.h@3:761d0f489b61, 2014-08-07 (annotated)
- Committer:
- rgrover1
- Date:
- Thu Aug 07 14:27:12 2014 +0000
- Revision:
- 3:761d0f489b61
- Parent:
- 0:62d7cfac67ca
minor improvement to the constructor for SharpLCD
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 <stdint.h> |
rgrover1 | 0:62d7cfac67ca | 18 | |
rgrover1 | 0:62d7cfac67ca | 19 | #ifndef __GUI_FONT_H__ |
rgrover1 | 0:62d7cfac67ca | 20 | #define __GUI_FONT_H__ |
rgrover1 | 0:62d7cfac67ca | 21 | |
rgrover1 | 0:62d7cfac67ca | 22 | #ifdef __cplusplus |
rgrover1 | 0:62d7cfac67ca | 23 | extern "C" { |
rgrover1 | 0:62d7cfac67ca | 24 | #endif |
rgrover1 | 0:62d7cfac67ca | 25 | |
rgrover1 | 0:62d7cfac67ca | 26 | /*---------------------------------------------------------------------- |
rgrover1 | 0:62d7cfac67ca | 27 | * Type declarations |
rgrover1 | 0:62d7cfac67ca | 28 | *----------------------------------------------------------------------*/ |
rgrover1 | 0:62d7cfac67ca | 29 | |
rgrover1 | 0:62d7cfac67ca | 30 | typedef struct glyph_t { |
rgrover1 | 0:62d7cfac67ca | 31 | int8_t bearingX; /* The horizontal distance from the |
rgrover1 | 0:62d7cfac67ca | 32 | * current pen position to the glyph's |
rgrover1 | 0:62d7cfac67ca | 33 | * left bbox edge. */ |
rgrover1 | 0:62d7cfac67ca | 34 | int8_t bearingY; /* The vertical distance from the |
rgrover1 | 0:62d7cfac67ca | 35 | * baseline to the top of the glyph's |
rgrover1 | 0:62d7cfac67ca | 36 | * bbox. */ |
rgrover1 | 0:62d7cfac67ca | 37 | unsigned int width : 6; /* The glyph's horizontal extent. */ |
rgrover1 | 0:62d7cfac67ca | 38 | unsigned int height : 6; /* The glyph's vertical extent. */ |
rgrover1 | 0:62d7cfac67ca | 39 | unsigned int advance : 6; /* The horizontal distance the |
rgrover1 | 0:62d7cfac67ca | 40 | * pen position must be |
rgrover1 | 0:62d7cfac67ca | 41 | * incremented (for |
rgrover1 | 0:62d7cfac67ca | 42 | * left-to-right writing) or |
rgrover1 | 0:62d7cfac67ca | 43 | * decremented (for |
rgrover1 | 0:62d7cfac67ca | 44 | * right-to-left writing) by |
rgrover1 | 0:62d7cfac67ca | 45 | * after each glyph is rendered |
rgrover1 | 0:62d7cfac67ca | 46 | * when processing text. */ |
rgrover1 | 0:62d7cfac67ca | 47 | unsigned int bitmapIndex : 14; /* byte-index of the start of |
rgrover1 | 0:62d7cfac67ca | 48 | * the glyph's bitmap as |
rgrover1 | 0:62d7cfac67ca | 49 | * contained in the font-face |
rgrover1 | 0:62d7cfac67ca | 50 | * bitmaps array */ |
rgrover1 | 0:62d7cfac67ca | 51 | } __attribute__((__packed__)) glyph_t; |
rgrover1 | 0:62d7cfac67ca | 52 | |
rgrover1 | 0:62d7cfac67ca | 53 | typedef struct font_face_t { |
rgrover1 | 0:62d7cfac67ca | 54 | const char *familyName; |
rgrover1 | 0:62d7cfac67ca | 55 | unsigned int pointSize; |
rgrover1 | 0:62d7cfac67ca | 56 | const glyph_t *glyphs; |
rgrover1 | 0:62d7cfac67ca | 57 | const uint8_t *bitmaps; |
rgrover1 | 0:62d7cfac67ca | 58 | } font_face_t; |
rgrover1 | 0:62d7cfac67ca | 59 | |
rgrover1 | 0:62d7cfac67ca | 60 | |
rgrover1 | 0:62d7cfac67ca | 61 | #define FONT_LOWEST_SUPPORTED_CHAR_ENCODING ' ' |
rgrover1 | 0:62d7cfac67ca | 62 | #define FONT_HIGHEST_SUPPORTED_CHAR_ENCODING '~' |
rgrover1 | 0:62d7cfac67ca | 63 | |
rgrover1 | 0:62d7cfac67ca | 64 | |
rgrover1 | 0:62d7cfac67ca | 65 | typedef enum font_color_t { |
rgrover1 | 0:62d7cfac67ca | 66 | BLACK = 0, |
rgrover1 | 0:62d7cfac67ca | 67 | WHITE = 1 |
rgrover1 | 0:62d7cfac67ca | 68 | } font_color_t; |
rgrover1 | 0:62d7cfac67ca | 69 | |
rgrover1 | 0:62d7cfac67ca | 70 | |
rgrover1 | 0:62d7cfac67ca | 71 | /*---------------------------------------------------------------------- |
rgrover1 | 0:62d7cfac67ca | 72 | * External globals |
rgrover1 | 0:62d7cfac67ca | 73 | *----------------------------------------------------------------------*/ |
rgrover1 | 0:62d7cfac67ca | 74 | |
rgrover1 | 0:62d7cfac67ca | 75 | extern const font_face_t fonts[]; |
rgrover1 | 0:62d7cfac67ca | 76 | |
rgrover1 | 0:62d7cfac67ca | 77 | |
rgrover1 | 0:62d7cfac67ca | 78 | /*---------------------------------------------------------------------- |
rgrover1 | 0:62d7cfac67ca | 79 | * Exported functions. |
rgrover1 | 0:62d7cfac67ca | 80 | *----------------------------------------------------------------------*/ |
rgrover1 | 0:62d7cfac67ca | 81 | |
rgrover1 | 0:62d7cfac67ca | 82 | extern const font_face_t *lookupFontFace(const char *familyName, |
rgrover1 | 0:62d7cfac67ca | 83 | unsigned int pointSize); |
rgrover1 | 0:62d7cfac67ca | 84 | |
rgrover1 | 0:62d7cfac67ca | 85 | #ifdef __cplusplus |
rgrover1 | 0:62d7cfac67ca | 86 | } |
rgrover1 | 0:62d7cfac67ca | 87 | #endif |
rgrover1 | 0:62d7cfac67ca | 88 | |
rgrover1 | 0:62d7cfac67ca | 89 | #endif /* __GUI_FONT_H__ */ |