The start of a generic Text Display library to drive multiple types of text display in the same way

Dependencies:   mbed

Committer:
simon
Date:
Wed Nov 25 00:01:31 2009 +0000
Revision:
0:e8a5ca303ebd

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
simon 0:e8a5ca303ebd 1 /* mbed TextDisplay Library Base Class
simon 0:e8a5ca303ebd 2 * Copyright (c) 2007-2009 sford
simon 0:e8a5ca303ebd 3 * Released under the MIT License: http://mbed.org/license/mit
simon 0:e8a5ca303ebd 4 *
simon 0:e8a5ca303ebd 5 * A common base class for Text displays
simon 0:e8a5ca303ebd 6 * To port a new display, derive from this class and implement
simon 0:e8a5ca303ebd 7 * the constructor (setup the display), character (put a character
simon 0:e8a5ca303ebd 8 * at a location), rows and columns (number of rows/cols) functions.
simon 0:e8a5ca303ebd 9 * Everything else (locate, printf, putc, cls) will come for free
simon 0:e8a5ca303ebd 10 *
simon 0:e8a5ca303ebd 11 * The model is the display will wrap at the right and bottom, so you can
simon 0:e8a5ca303ebd 12 * keep writing and will always get valid characters. The location is
simon 0:e8a5ca303ebd 13 * maintained internally to the class to make this easy
simon 0:e8a5ca303ebd 14 */
simon 0:e8a5ca303ebd 15
simon 0:e8a5ca303ebd 16 #ifndef MBED_TEXTDISPLAY_H
simon 0:e8a5ca303ebd 17 #define MBED_TEXTDISPLAY_H
simon 0:e8a5ca303ebd 18
simon 0:e8a5ca303ebd 19 #include "mbed.h"
simon 0:e8a5ca303ebd 20
simon 0:e8a5ca303ebd 21 class TextDisplay : public Stream {
simon 0:e8a5ca303ebd 22 public:
simon 0:e8a5ca303ebd 23
simon 0:e8a5ca303ebd 24 // functions needing implementation in derived implementation class
simon 0:e8a5ca303ebd 25 TextDisplay();
simon 0:e8a5ca303ebd 26 virtual void character(int column, int row, int c) = 0;
simon 0:e8a5ca303ebd 27 virtual int rows() = 0;
simon 0:e8a5ca303ebd 28 virtual int columns() = 0;
simon 0:e8a5ca303ebd 29
simon 0:e8a5ca303ebd 30 // functions that come for free, but can be overwritten
simon 0:e8a5ca303ebd 31 virtual void cls();
simon 0:e8a5ca303ebd 32 virtual void locate(int column, int row);
simon 0:e8a5ca303ebd 33 virtual void foreground(int colour);
simon 0:e8a5ca303ebd 34 virtual void background(int colour);
simon 0:e8a5ca303ebd 35 // putc (from Stream)
simon 0:e8a5ca303ebd 36 // printf (from Stream)
simon 0:e8a5ca303ebd 37
simon 0:e8a5ca303ebd 38 protected:
simon 0:e8a5ca303ebd 39
simon 0:e8a5ca303ebd 40 virtual int _putc(int value);
simon 0:e8a5ca303ebd 41 virtual int _getc();
simon 0:e8a5ca303ebd 42
simon 0:e8a5ca303ebd 43 // character location
simon 0:e8a5ca303ebd 44 short _column;
simon 0:e8a5ca303ebd 45 short _row;
simon 0:e8a5ca303ebd 46
simon 0:e8a5ca303ebd 47 // colours
simon 0:e8a5ca303ebd 48 int _foreground;
simon 0:e8a5ca303ebd 49 int _background;
simon 0:e8a5ca303ebd 50 };
simon 0:e8a5ca303ebd 51
simon 0:e8a5ca303ebd 52 #endif