mehmet gok / demoUI

Dependencies:   MemoryLCD

Dependents:   Host_Software_MAX32664GWEC_SpO2_HR

Committer:
gmehmet
Date:
Mon Dec 24 13:26:28 2018 +0000
Revision:
0:0d4feb02e324
screen as source.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gmehmet 0:0d4feb02e324 1 /* mbed TextDisplay Display Library Base Class
gmehmet 0:0d4feb02e324 2 * Copyright (c) 2007-2009 sford
gmehmet 0:0d4feb02e324 3 * Released under the MIT License: http://mbed.org/license/mit
gmehmet 0:0d4feb02e324 4 */
gmehmet 0:0d4feb02e324 5
gmehmet 0:0d4feb02e324 6 #include "../screen/TextDisplay.h"
gmehmet 0:0d4feb02e324 7
gmehmet 0:0d4feb02e324 8 #include <cstdarg>
gmehmet 0:0d4feb02e324 9
gmehmet 0:0d4feb02e324 10 TextDisplay::TextDisplay(const char *name){
gmehmet 0:0d4feb02e324 11 _row = 0;
gmehmet 0:0d4feb02e324 12 _column = 0;
gmehmet 0:0d4feb02e324 13
gmehmet 0:0d4feb02e324 14 if (name == NULL) {
gmehmet 0:0d4feb02e324 15 _path = NULL;
gmehmet 0:0d4feb02e324 16 } else {
gmehmet 0:0d4feb02e324 17 _path = new char[strlen(name) + 2];
gmehmet 0:0d4feb02e324 18 sprintf(_path, "/%s", name);
gmehmet 0:0d4feb02e324 19 }
gmehmet 0:0d4feb02e324 20 }
gmehmet 0:0d4feb02e324 21
gmehmet 0:0d4feb02e324 22 int TextDisplay::_putc(int value) {
gmehmet 0:0d4feb02e324 23 if(value == '\n') {
gmehmet 0:0d4feb02e324 24 _column = 0;
gmehmet 0:0d4feb02e324 25 _row++;
gmehmet 0:0d4feb02e324 26 if(_row >= rows()) {
gmehmet 0:0d4feb02e324 27 _row = 0;
gmehmet 0:0d4feb02e324 28 }
gmehmet 0:0d4feb02e324 29 } else {
gmehmet 0:0d4feb02e324 30 character(_column, _row, value);
gmehmet 0:0d4feb02e324 31 _column++;
gmehmet 0:0d4feb02e324 32 if(_column >= columns()) {
gmehmet 0:0d4feb02e324 33 _column = 0;
gmehmet 0:0d4feb02e324 34 _row++;
gmehmet 0:0d4feb02e324 35 if(_row >= rows()) {
gmehmet 0:0d4feb02e324 36 _row = 0;
gmehmet 0:0d4feb02e324 37 }
gmehmet 0:0d4feb02e324 38 }
gmehmet 0:0d4feb02e324 39 }
gmehmet 0:0d4feb02e324 40 return value;
gmehmet 0:0d4feb02e324 41 }
gmehmet 0:0d4feb02e324 42
gmehmet 0:0d4feb02e324 43 // crude cls implementation, should generally be overwritten in derived class
gmehmet 0:0d4feb02e324 44 void TextDisplay::cls() {
gmehmet 0:0d4feb02e324 45 locate(0, 0);
gmehmet 0:0d4feb02e324 46 for(int i=0; i<columns()*rows(); i++) {
gmehmet 0:0d4feb02e324 47 _putc(' ');
gmehmet 0:0d4feb02e324 48 }
gmehmet 0:0d4feb02e324 49 }
gmehmet 0:0d4feb02e324 50
gmehmet 0:0d4feb02e324 51 void TextDisplay::set_font(const unsigned char * f) {
gmehmet 0:0d4feb02e324 52 font = f;
gmehmet 0:0d4feb02e324 53 if(font==NULL) {
gmehmet 0:0d4feb02e324 54 externalfont = 0; // set display.font
gmehmet 0:0d4feb02e324 55 locate(0, 0);
gmehmet 0:0d4feb02e324 56 }
gmehmet 0:0d4feb02e324 57 else{
gmehmet 0:0d4feb02e324 58 externalfont = 1;
gmehmet 0:0d4feb02e324 59 locate(0, 0);
gmehmet 0:0d4feb02e324 60 }
gmehmet 0:0d4feb02e324 61 }
gmehmet 0:0d4feb02e324 62
gmehmet 0:0d4feb02e324 63 void TextDisplay::locate(int column, int row) {
gmehmet 0:0d4feb02e324 64 _column = column;
gmehmet 0:0d4feb02e324 65 _row = row;
gmehmet 0:0d4feb02e324 66 char_x = column;
gmehmet 0:0d4feb02e324 67 char_y = row;
gmehmet 0:0d4feb02e324 68 }
gmehmet 0:0d4feb02e324 69
gmehmet 0:0d4feb02e324 70 int TextDisplay::_getc() {
gmehmet 0:0d4feb02e324 71 return -1;
gmehmet 0:0d4feb02e324 72 }
gmehmet 0:0d4feb02e324 73
gmehmet 0:0d4feb02e324 74 void TextDisplay::foreground(uint16_t colour) {
gmehmet 0:0d4feb02e324 75 _foreground = colour;
gmehmet 0:0d4feb02e324 76 }
gmehmet 0:0d4feb02e324 77
gmehmet 0:0d4feb02e324 78 void TextDisplay::background(uint16_t colour) {
gmehmet 0:0d4feb02e324 79 _background = colour;
gmehmet 0:0d4feb02e324 80 }
gmehmet 0:0d4feb02e324 81
gmehmet 0:0d4feb02e324 82 void TextDisplay::printf(const char* format, ...) {
gmehmet 0:0d4feb02e324 83 char buffer[MAX_PRINTF_CHARS + 1] = { 0 };
gmehmet 0:0d4feb02e324 84 uint32_t iterator = 0;
gmehmet 0:0d4feb02e324 85 va_list args;
gmehmet 0:0d4feb02e324 86 va_start(args, format);
gmehmet 0:0d4feb02e324 87 vsprintf(buffer, format, args);
gmehmet 0:0d4feb02e324 88 va_end(args);
gmehmet 0:0d4feb02e324 89
gmehmet 0:0d4feb02e324 90 while((buffer[iterator] != 0) && (iterator < MAX_PRINTF_CHARS)) {
gmehmet 0:0d4feb02e324 91 _putc(buffer[iterator++]);
gmehmet 0:0d4feb02e324 92 }
gmehmet 0:0d4feb02e324 93 }