Fork of LCD-Window which works with Enhanced TextLCD from Wim
Fork of LcdWindow by
textlcdadapter.cpp
00001 /* 00002 * mbed LCDWindow library 00003 * Copyright (c) 2010 Hendrik Lipka 00004 * 00005 * Permission is hereby granted, free of charge, to any person obtaining a copy 00006 * of this software and associated documentation files (the "Software"), to deal 00007 * in the Software without restriction, including without limitation the rights 00008 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 00009 * copies of the Software, and to permit persons to whom the Software is 00010 * furnished to do so, subject to the following conditions: 00011 * 00012 * The above copyright notice and this permission notice shall be included in 00013 * all copies or substantial portions of the Software. 00014 * 00015 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 00016 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00017 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 00018 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 00019 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 00020 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 00021 * THE SOFTWARE. 00022 */ 00023 00024 #include "textlcdadapter.h" 00025 #include <stdarg.h> 00026 00027 00028 TextLCDAdapter::TextLCDAdapter(TextLCD_Base *lcd) { 00029 _lcd=lcd; 00030 _columns = _lcd->columns(); 00031 _rows = _lcd->rows(); 00032 } 00033 void TextLCDAdapter::clear() { 00034 _lcd->cls(); 00035 } 00036 00037 void TextLCDAdapter::writeText(const unsigned int column, const unsigned int row, const char text[]){ 00038 if ((column > getColumns ()) || (row > getRows ())){ 00039 return; 00040 } 00041 _lcd->locate(column,row); 00042 int i=0; 00043 while((text[i]!=0) && (column+i < getColumns ())) 00044 { 00045 _lcd->putc(text[i]); 00046 i++; 00047 } 00048 } 00049 00050 void TextLCDAdapter::character(int column, int row, int c) { 00051 if ((column > getColumns ()) || (row > getRows ())){ 00052 return; 00053 } 00054 _lcd->locate(column,row); 00055 _lcd->putc(c); 00056 } 00057 00058 int TextLCDAdapter::putc(int c) { 00059 return _lcd->putc(c); 00060 } 00061 int TextLCDAdapter::printf(const char* format, ...) { 00062 // create and start the va_list 00063 va_list listPointer ; 00064 va_start( listPointer, format ) ; 00065 00066 // vsprintf is an example of 00067 // a function that works with 00068 // an "already started" va_list 00069 static char buf[ 1024 ] ; 00070 vsprintf( buf, format, listPointer ) ; 00071 00072 return _lcd->printf(buf); 00073 }
Generated on Tue Jul 12 2022 20:32:52 by
1.7.2
