This driver is meant for the monochrome LCD display (model no: LS013B4DN04) from Sharp; but it should be easily adaptable to other Sharp displays.

Dependents:   sharpLCD-demo

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?

UserRevisionLine numberNew 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__ */