diff options
author | Andrew Hannam <andrewh@inmarket.com.au> | 2012-08-16 05:11:55 -0700 |
---|---|---|
committer | Andrew Hannam <andrewh@inmarket.com.au> | 2012-08-16 05:11:55 -0700 |
commit | 1176b9738cbea9e3c6ce48f9be1be89f23f2e34e (patch) | |
tree | 03eaa6c30cdb4c1de3263f0691fcb23eb6a8f2f8 /include/console.h | |
parent | 4ffb258d71fe0720418fb350b6f3d5354240dddf (diff) | |
parent | f0a7643598a221a91f8ec1c79eb3646617d099bd (diff) | |
download | uGFX-1176b9738cbea9e3c6ce48f9be1be89f23f2e34e.tar.gz uGFX-1176b9738cbea9e3c6ce48f9be1be89f23f2e34e.tar.bz2 uGFX-1176b9738cbea9e3c6ce48f9be1be89f23f2e34e.zip |
Merge pull request #3 from Tectu/master
Get latest updates
Diffstat (limited to 'include/console.h')
-rw-r--r-- | include/console.h | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/include/console.h b/include/console.h new file mode 100644 index 00000000..edd8498e --- /dev/null +++ b/include/console.h @@ -0,0 +1,87 @@ +/* + ChibiOS/RT - Copyright (C) 2012 + Joel Bodenmann aka Tectu <joel@unormal.org> + + This file is part of ChibiOS-LCD-Driver. + + ChibiOS-LCD-Driver is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS-LCD-Driver is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef CONSOLE_H +#define CONSOLE_H + +#include "ch.h" +#include "hal.h" + +#include "gdisp.h" + +/** + * @brief Structure representing a GLCD driver. + */ +typedef struct GLCDConsole GLCDConsole; + +/** + * @brief @p GLCDConsole specific methods. + */ +#define _glcd_driver_methods \ + _base_asynchronous_channel_methods + +/** + * @extends BaseAsynchronousChannelVMT + * + * @brief @p GLCDConsole virtual methods table. + */ +struct GLCDConsoleVMT { + _glcd_driver_methods +}; + +/** + * @extends BaseAsynchronousChannel + * + * @brief GLCD Console class. + * @details This class extends @p BaseAsynchronousChannel by adding physical + * I/O queues. + */ +struct GLCDConsole { + /** @brief Virtual Methods Table.*/ + const struct GLCDConsoleVMT *vmt; + _base_asynchronous_channel_data + /* WARNING: Do not add any data to this struct above this comment, only below */ + /* font */ + font_t font; + /* lcd area to use */ + coord_t x0,y0; + /* current cursor position, in pixels */ + coord_t cx,cy; + /* console size in pixels */ + coord_t sx,sy; + /* foreground and background colour */ + pixel_t bkcolor, color; + /* font size in pixels */ + uint8_t fy; +}; + +#ifdef __cplusplus +extern "C" { +#endif + +msg_t lcdConsoleInit(GLCDConsole *console, coord_t x0, coord_t y0, coord_t width, coord_t height, font_t font, pixel_t bkcolor, pixel_t color); +msg_t lcdConsolePut(GLCDConsole *console, char c); +msg_t lcdConsoleWrite(GLCDConsole *console, char *bp, size_t n); + +#ifdef __cplusplus +} +#endif + +#endif /* CONSOLE_H */ |