diff options
author | Tectu <joel@unormal.org> | 2012-07-18 03:42:05 +0200 |
---|---|---|
committer | Tectu <joel@unormal.org> | 2012-07-18 03:42:05 +0200 |
commit | 096701a6ad8f2ba5512aff4ee430ca0d626fff7a (patch) | |
tree | 647c32fb1ffbcc895b4b1ffa119c8c3ee88f9948 /console.c | |
parent | 24692be747aa4d94e264219d6f18bcc6beec76ff (diff) | |
download | uGFX-096701a6ad8f2ba5512aff4ee430ca0d626fff7a.tar.gz uGFX-096701a6ad8f2ba5512aff4ee430ca0d626fff7a.tar.bz2 uGFX-096701a6ad8f2ba5512aff4ee430ca0d626fff7a.zip |
restructorizing
Diffstat (limited to 'console.c')
-rw-r--r-- | console.c | 151 |
1 files changed, 0 insertions, 151 deletions
diff --git a/console.c b/console.c deleted file mode 100644 index acfae978..00000000 --- a/console.c +++ /dev/null @@ -1,151 +0,0 @@ -/* - * console.c - * - * Created on: 20 Jun 2012 - * Author: Thomas Saunders AKA "Badger" - */ - -#include "ch.h" - -#include "fonts.h" -#include "glcd.h" -#include "console.h" - -/* - * Interface implementation. The interface is write only - */ - -static size_t writes(void *ip, const uint8_t *bp, size_t n) { - return lcdConsoleWrite((GLCDConsole *)ip, bp, n); -} - -static size_t reads(void *ip, uint8_t *bp, size_t n) { - (void)ip; - (void)bp; - (void)n; - - return 0; -} - -static msg_t put(void *ip, uint8_t b) { - return lcdConsolePut((GLCDConsole *)ip, (char)b); -} - -static msg_t get(void *ip) { - (void)ip; - - return RDY_OK; -} - -static msg_t putt(void *ip, uint8_t b, systime_t timeout) { - (void)timeout; - - /* TODO: handle timeout */ - - return lcdConsolePut((GLCDConsole *)ip, (char)b); -} - -static msg_t gett(void *ip, systime_t timeout) { - (void)ip; - (void)timeout; - - return RDY_OK; -} - -static size_t writet(void *ip, const uint8_t *bp, size_t n, systime_t time) { - (void)time; - - return lcdConsoleWrite((GLCDConsole *)ip, bp, n); -} - -static size_t readt(void *ip, uint8_t *bp, size_t n, systime_t time) { - (void)ip; - (void)bp; - (void)n; - (void)time; - - return 0; -} - -static chnflags_t getflags(void *ip) { - _chn_get_and_clear_flags_impl(ip); -} - -static const struct GLCDConsoleVMT vmt = { - writes, reads, put, get, - putt, gett, writet, readt, - getflags -}; - - -msg_t lcdConsoleInit(GLCDConsole *console, uint16_t x0, uint16_t y0, uint16_t width, uint16_t height, font_t font, uint16_t bkcolor, uint16_t color) { - const uint8_t* ptr; - uint16_t chi; - uint16_t x,y; - - console->vmt = &vmt; - /* read font, get height */ - console->fy = font[FONT_TABLE_HEIGHT_IDX]; - - /* calculate the size of the console as an integer multiple of characters */ - console->sx = width; - console->sy = (((int16_t)(height/console->fy))-1)*console->fy; - - console->cx = 0; - console->cy = 0; - console->x0 = x0; - console->y0 = y0; - - console->bkcolor = bkcolor; - console->color = color; - - console->font = font; -} - -msg_t lcdConsolePut(GLCDConsole *console, char c) { - uint8_t width; - - if(c == '\n') { - /* clear the text at the end of the line */ - if(console->cx < console->sx) - lcdDrawRect(console->cx, console->cy, console->sx, console->cy + console->fy, - 1, console->bkcolor); - console->cx = 0; - console->cy += console->fy; - } else if(c == '\r') { - /* TODO: work backwards through the buffer to the start of the current line */ - //console->cx = 0; - } else { - width = lcdMeasureChar(c, console->font); - if((console->cx + width) >= console->sx) { - console->cx = 0; - console->cy += console->fy; - } - - if((console->cy > console->sy)) { - - lcdVerticalScroll(console->x0, console->y0, console->x0 + console->sx, - console->y0 + console->sy + console->fy, console->fy); - /* reset the cursor */ - console->cx = 0; - console->cy = console->sy; - } - - lcdDrawChar(console->x0 + console->cx, console->y0 + console->cy, c, - console->font, console->color, console->bkcolor, solid); - - /* update cursor */ - console->cx += width; - } - -} - -msg_t lcdConsoleWrite(GLCDConsole *console, uint8_t *bp, size_t n) { - size_t i; - for(i = 0; i < n; i++) - lcdConsolePut(console, bp[i]); - - return RDY_OK; -} - - |