pouet

Dependencies:   mbed

Committer:
mexinguer
Date:
Mon Feb 06 14:01:12 2017 +0000
Revision:
0:2db056248979
?-?

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mexinguer 0:2db056248979 1 /* mbed TextDisplay Library Base Class
mexinguer 0:2db056248979 2 * Copyright (c) 2007-2009 sford
mexinguer 0:2db056248979 3 * Released under the MIT License: http://mbed.org/license/mit
mexinguer 0:2db056248979 4 *
mexinguer 0:2db056248979 5 * A common base class for Text displays
mexinguer 0:2db056248979 6 * To port a new display, derive from this class and implement
mexinguer 0:2db056248979 7 * the constructor (setup the display), character (put a character
mexinguer 0:2db056248979 8 * at a location), rows and columns (number of rows/cols) functions.
mexinguer 0:2db056248979 9 * Everything else (locate, printf, putc, cls) will come for free
mexinguer 0:2db056248979 10 *
mexinguer 0:2db056248979 11 * The model is the display will wrap at the right and bottom, so you can
mexinguer 0:2db056248979 12 * keep writing and will always get valid characters. The location is
mexinguer 0:2db056248979 13 * maintained internally to the class to make this easy
mexinguer 0:2db056248979 14 */
mexinguer 0:2db056248979 15
mexinguer 0:2db056248979 16 #ifndef MBED_TEXTDISPLAY_H
mexinguer 0:2db056248979 17 #define MBED_TEXTDISPLAY_H
mexinguer 0:2db056248979 18
mexinguer 0:2db056248979 19 #include "mbed.h"
mexinguer 0:2db056248979 20
mexinguer 0:2db056248979 21 class TextDisplay : public Stream {
mexinguer 0:2db056248979 22 public:
mexinguer 0:2db056248979 23
mexinguer 0:2db056248979 24 // functions needing implementation in derived implementation class
mexinguer 0:2db056248979 25 /** Create a TextDisplay interface
mexinguer 0:2db056248979 26 *
mexinguer 0:2db056248979 27 * @param name The name used in the path to access the strean through the filesystem
mexinguer 0:2db056248979 28 */
mexinguer 0:2db056248979 29 TextDisplay(const char *name = NULL);
mexinguer 0:2db056248979 30
mexinguer 0:2db056248979 31 /** output a character at the given position
mexinguer 0:2db056248979 32 *
mexinguer 0:2db056248979 33 * @param column column where charater must be written
mexinguer 0:2db056248979 34 * @param row where character must be written
mexinguer 0:2db056248979 35 * @param c the character to be written to the TextDisplay
mexinguer 0:2db056248979 36 */
mexinguer 0:2db056248979 37 virtual void character(int column, int row, int c) = 0;
mexinguer 0:2db056248979 38
mexinguer 0:2db056248979 39 /** return number if rows on TextDisplay
mexinguer 0:2db056248979 40 * @result number of rows
mexinguer 0:2db056248979 41 */
mexinguer 0:2db056248979 42 virtual int rows() = 0;
mexinguer 0:2db056248979 43
mexinguer 0:2db056248979 44 /** return number if columns on TextDisplay
mexinguer 0:2db056248979 45 * @result number of rows
mexinguer 0:2db056248979 46 */
mexinguer 0:2db056248979 47 virtual int columns() = 0;
mexinguer 0:2db056248979 48
mexinguer 0:2db056248979 49 // functions that come for free, but can be overwritten
mexinguer 0:2db056248979 50
mexinguer 0:2db056248979 51 /** redirect output from a stream (stoud, sterr) to display
mexinguer 0:2db056248979 52 * @param stream stream that shall be redirected to the TextDisplay
mexinguer 0:2db056248979 53 */
mexinguer 0:2db056248979 54 virtual bool claim (FILE *stream);
mexinguer 0:2db056248979 55
mexinguer 0:2db056248979 56 /** clear screen
mexinguer 0:2db056248979 57 */
mexinguer 0:2db056248979 58 virtual void cls();
mexinguer 0:2db056248979 59 virtual void locate(int column, int row);
mexinguer 0:2db056248979 60 virtual void foreground(uint16_t colour);
mexinguer 0:2db056248979 61 virtual void background(uint16_t colour);
mexinguer 0:2db056248979 62 // putc (from Stream)
mexinguer 0:2db056248979 63 // printf (from Stream)
mexinguer 0:2db056248979 64
mexinguer 0:2db056248979 65 protected:
mexinguer 0:2db056248979 66
mexinguer 0:2db056248979 67 virtual int _putc(int value);
mexinguer 0:2db056248979 68 virtual int _getc();
mexinguer 0:2db056248979 69
mexinguer 0:2db056248979 70 // character location
mexinguer 0:2db056248979 71 uint16_t _column;
mexinguer 0:2db056248979 72 uint16_t _row;
mexinguer 0:2db056248979 73
mexinguer 0:2db056248979 74 // colours
mexinguer 0:2db056248979 75 uint16_t _foreground;
mexinguer 0:2db056248979 76 uint16_t _background;
mexinguer 0:2db056248979 77 char *_path;
mexinguer 0:2db056248979 78 };
mexinguer 0:2db056248979 79
mexinguer 0:2db056248979 80 #endif