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 Display 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
simon 0:e8a5ca303ebd 6 #include "TextDisplay.h"
simon 0:e8a5ca303ebd 7
simon 0:e8a5ca303ebd 8 TextDisplay::TextDisplay() {
simon 0:e8a5ca303ebd 9 _row = 0;
simon 0:e8a5ca303ebd 10 _column = 0;
simon 0:e8a5ca303ebd 11 }
simon 0:e8a5ca303ebd 12
simon 0:e8a5ca303ebd 13 int TextDisplay::_putc(int value) {
simon 0:e8a5ca303ebd 14 if(value == '\n') {
simon 0:e8a5ca303ebd 15 _column = 0;
simon 0:e8a5ca303ebd 16 _row++;
simon 0:e8a5ca303ebd 17 if(_row >= rows()) {
simon 0:e8a5ca303ebd 18 _row = 0;
simon 0:e8a5ca303ebd 19 }
simon 0:e8a5ca303ebd 20 } else {
simon 0:e8a5ca303ebd 21 character(_column, _row, value);
simon 0:e8a5ca303ebd 22 _column++;
simon 0:e8a5ca303ebd 23 if(_column >= columns()) {
simon 0:e8a5ca303ebd 24 _column = 0;
simon 0:e8a5ca303ebd 25 _row++;
simon 0:e8a5ca303ebd 26 if(_row >= rows()) {
simon 0:e8a5ca303ebd 27 _row = 0;
simon 0:e8a5ca303ebd 28 }
simon 0:e8a5ca303ebd 29 }
simon 0:e8a5ca303ebd 30 }
simon 0:e8a5ca303ebd 31 return value;
simon 0:e8a5ca303ebd 32 }
simon 0:e8a5ca303ebd 33
simon 0:e8a5ca303ebd 34 // crude cls implementation, should generally be overwritten in derived class
simon 0:e8a5ca303ebd 35 void TextDisplay::cls() {
simon 0:e8a5ca303ebd 36 locate(0, 0);
simon 0:e8a5ca303ebd 37 for(int i=0; i<columns()*rows(); i++) {
simon 0:e8a5ca303ebd 38 putc(' ');
simon 0:e8a5ca303ebd 39 }
simon 0:e8a5ca303ebd 40 }
simon 0:e8a5ca303ebd 41
simon 0:e8a5ca303ebd 42 void TextDisplay::locate(int column, int row) {
simon 0:e8a5ca303ebd 43 _column = column;
simon 0:e8a5ca303ebd 44 _row = row;
simon 0:e8a5ca303ebd 45 }
simon 0:e8a5ca303ebd 46
simon 0:e8a5ca303ebd 47 int TextDisplay::_getc() {
simon 0:e8a5ca303ebd 48 return -1;
simon 0:e8a5ca303ebd 49 }
simon 0:e8a5ca303ebd 50
simon 0:e8a5ca303ebd 51 void TextDisplay::foreground(int colour) {
simon 0:e8a5ca303ebd 52 _foreground = colour;
simon 0:e8a5ca303ebd 53 }
simon 0:e8a5ca303ebd 54
simon 0:e8a5ca303ebd 55 void TextDisplay::background(int colour) {
simon 0:e8a5ca303ebd 56 _background = colour;
simon 0:e8a5ca303ebd 57 }