Paint for the FRDM-KL25Z

Dependents:   Paint_9341 IUT-BED2021

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 /**
00022  * TextDisplay interface
00023  */
00024 class TextDisplay : public Stream {
00025 public:
00026 
00027     /** Create a TextDisplay interface
00028      *
00029      * @param name The name used in the path to access the strean through the filesystem
00030      */
00031     TextDisplay(const char *name = NULL);
00032 
00033     /** Output a character at the given position
00034      *
00035      * @param column column where charater must be written
00036      * @param  row where character must be written
00037      * @param c the character to be written to the TextDisplay
00038      */
00039     virtual void character(int column, int row, int c) = 0;
00040 
00041     /** Return number if rows on TextDisplay
00042      *
00043      * @result number of rows
00044      */
00045     virtual int rows() = 0;
00046 
00047     /** Return number if columns on TextDisplay
00048      * @result number of rows
00049      */
00050     virtual int columns() = 0;
00051     
00052     // functions that come for free, but can be overwritten
00053 
00054     /** Redirect output from a stream (stoud, sterr) to  display
00055      * @param stream stream that shall be redirected to the TextDisplay
00056      */
00057     virtual bool claim (FILE *stream);
00058 
00059     /** Clear screen
00060      */
00061     virtual void cls();
00062     virtual void locate(int column, int row);
00063     virtual void foreground(uint16_t colour);
00064     virtual void background(uint16_t colour);
00065     // putc (from Stream)
00066     // printf (from Stream)
00067     
00068 protected:
00069 
00070     virtual int _putc(int value);
00071     virtual int _getc();
00072 
00073     // character location
00074     uint16_t _column;
00075     uint16_t _row;
00076 
00077     // colours
00078     uint16_t _foreground;
00079     uint16_t _background;
00080     char *_path;
00081 };
00082 
00083 #endif