Modified to work with two displays

Dependents:   touch2 default CANary_9341_test CANary_merge

Fork of SPI_TFT by Peter Drescher

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers TextDisplay.h Source File

TextDisplay.h

00001 /* mbed TextDisplay Library Base Class
00002  * Copyright (c) 2007-2009 sford
00003  * Released under the MIT License: http://mbed.org/license/mit
00004  *
00005  * A common base class for Text displays
00006  * To port a new display, derive from this class and implement
00007  * the constructor (setup the display), character (put a character
00008  * at a location), rows and columns (number of rows/cols) functions.
00009  * Everything else (locate, printf, putc, cls) will come for free
00010  *
00011  * The model is the display will wrap at the right and bottom, so you can
00012  * keep writing and will always get valid characters. The location is 
00013  * maintained internally to the class to make this easy
00014  */
00015 
00016 #ifndef MBED_TEXTDISPLAY_H
00017 #define MBED_TEXTDISPLAY_H
00018 
00019 #include "mbed.h"
00020 
00021 class TextDisplay : public Stream {
00022 public:
00023 
00024   // functions needing implementation in derived implementation class
00025   /** Create a TextDisplay interface
00026      *
00027      * @param name The name used in the path to access the strean through the filesystem
00028      */
00029     TextDisplay(const char *name = NULL);
00030 
00031     /** output a character at the given position
00032      *
00033      * @param column column where charater must be written
00034      * @param  row where character must be written
00035      * @param c the character to be written to the TextDisplay
00036      */
00037     virtual void character(int column, int row, int c) = 0;
00038 
00039     /** return number if rows on TextDisplay
00040      * @result number of rows
00041      */
00042     virtual int rows() = 0;
00043 
00044     /** return number if columns on TextDisplay
00045     * @result number of rows
00046     */
00047     virtual int columns() = 0;
00048     
00049     // functions that come for free, but can be overwritten
00050 
00051     /** redirect output from a stream (stout, sterr) to  display
00052     * @param stream stream that shall be redirected to the TextDisplay
00053     */
00054     virtual bool claim (FILE *stream);
00055 
00056     /** clear screen
00057     */
00058     virtual void cls();
00059     virtual void locate(int column, int row);
00060     virtual void foreground(uint16_t colour);
00061     virtual void background(uint16_t colour);
00062     // putc (from Stream)
00063     // printf (from Stream)
00064 
00065     
00066 protected:
00067 
00068     virtual int _putc(int value);
00069     virtual int _getc();
00070 
00071     uint16_t _foreground;
00072     uint16_t _background;
00073 
00074     // character location
00075     uint16_t _column;
00076     uint16_t _row;
00077 
00078     // colours
00079     char *_path;
00080 };
00081 
00082 #endif