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