Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: max32630fthr Adafruit_FeatherOLED USBDevice
TextDisplay.cpp
00001 /* mbed TextDisplay Display Library Base Class 00002 * Copyright (c) 2007-2009 sford 00003 * Released under the MIT License: http://mbed.org/license/mit 00004 */ 00005 00006 #include "TextDisplay.h" 00007 #include <cstdarg> 00008 00009 TextDisplay::TextDisplay(const char *name){ 00010 _row = 0; 00011 _column = 0; 00012 00013 if (name == NULL) { 00014 _path = NULL; 00015 } else { 00016 _path = new char[strlen(name) + 2]; 00017 sprintf(_path, "/%s", name); 00018 } 00019 } 00020 00021 int TextDisplay::_putc(int value) { 00022 if(value == '\n') { 00023 _column = 0; 00024 _row++; 00025 if(_row >= rows()) { 00026 _row = 0; 00027 } 00028 } else { 00029 character(_column, _row, value); 00030 _column++; 00031 if(_column >= columns()) { 00032 _column = 0; 00033 _row++; 00034 if(_row >= rows()) { 00035 _row = 0; 00036 } 00037 } 00038 } 00039 return value; 00040 } 00041 00042 // crude cls implementation, should generally be overwritten in derived class 00043 void TextDisplay::cls() { 00044 locate(0, 0); 00045 for(int i=0; i<columns()*rows(); i++) { 00046 _putc(' '); 00047 } 00048 } 00049 00050 void TextDisplay::set_font(const unsigned char * f) { 00051 font = f; 00052 if(font==NULL) { 00053 externalfont = 0; // set display.font 00054 locate(0, 0); 00055 } 00056 else{ 00057 externalfont = 1; 00058 locate(0, 0); 00059 } 00060 } 00061 00062 void TextDisplay::locate(int column, int row) { 00063 _column = column; 00064 _row = row; 00065 char_x = column; 00066 char_y = row; 00067 } 00068 00069 int TextDisplay::_getc() { 00070 return -1; 00071 } 00072 00073 void TextDisplay::foreground(uint16_t colour) { 00074 _foreground = colour; 00075 } 00076 00077 void TextDisplay::background(uint16_t colour) { 00078 _background = colour; 00079 } 00080 00081 void TextDisplay::printf(const char* format, ...) { 00082 char buffer[MAX_PRINTF_CHARS + 1] = { 0 }; 00083 uint32_t iterator = 0; 00084 va_list args; 00085 va_start(args, format); 00086 vsprintf(buffer, format, args); 00087 va_end(args); 00088 00089 while((buffer[iterator] != 0) && (iterator < MAX_PRINTF_CHARS)) { 00090 _putc(buffer[iterator++]); 00091 } 00092 }
Generated on Tue Jul 12 2022 20:09:29 by
