Caiou
Dependents: LCD_Proj LCD_imagetest LCD_Proj_rtc
Fork of DmTftLibrary by
Diff: DmTftBase.h
- Revision:
- 0:d6ff5fa503e8
- Child:
- 2:59be7fca4581
diff -r 000000000000 -r d6ff5fa503e8 DmTftBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DmTftBase.h Tue May 13 09:31:24 2014 +0000 @@ -0,0 +1,95 @@ +/********************************************************************************************** + Copyright (c) 2014 DisplayModule. All rights reserved. + + Redistribution and use of this source code, part of this source code or any compiled binary + based on this source code is permitted as long as the above copyright notice and following + disclaimer is retained. + + DISCLAIMER: + THIS SOFTWARE IS SUPPLIED "AS IS" WITHOUT ANY WARRANTIES AND SUPPORT. DISPLAYMODULE ASSUMES + NO RESPONSIBILITY OR LIABILITY FOR THE USE OF THE SOFTWARE. + ********************************************************************************************/ +#ifndef DMTFTBASE_h +#define DMTFTBASE_h + +#include "dm_platform.h" + + +//Basic Colors +#define RED 0xf800 +#define GREEN 0x07e0 +#define BLUE 0x001f +#define BLACK 0x0000 +#define YELLOW 0xffe0 +#define WHITE 0xffff + +//Other Colors +#define CYAN 0x07ff +#define BRIGHT_RED 0xf810 +#define GRAY1 0x8410 +#define GRAY2 0x4208 + + +class DmTftBase { +public: + DmTftBase(const uint16_t width, const uint16_t height) : _width(width), _height(height){}; + virtual ~DmTftBase() { }; + + uint16_t width() { return _width; } + uint16_t height() { return _height; } + + void setTextColor(uint16_t background, uint16_t foreground) { _bgColor = background; _fgColor = foreground; } + + virtual void setPixel(uint16_t x, uint16_t y, uint16_t color); + virtual void setAddress(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1) = 0; + virtual void sendData(uint16_t data) = 0; + + void clearScreen(uint16_t color = BLACK); + + void drawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color); + void drawVerticalLine(uint16_t x, uint16_t y, uint16_t length, uint16_t color); + void drawHorizontalLine(uint16_t x, uint16_t y, uint16_t length, uint16_t color); + + void drawRectangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color); + void fillRectangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color); + + void drawCircle(uint16_t x0, uint16_t y0, uint16_t r, uint16_t color); + void fillCircle(uint16_t x0, uint16_t y0, uint16_t r, uint16_t color); + + void drawTriangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color); + + void drawPoint(uint16_t x, uint16_t y, uint16_t radius=0); + + void drawChar(uint16_t x, uint16_t y, char ch, bool transparent); + void drawNumber(uint16_t x, uint16_t y, int num, int digitsToShow, bool leadingZeros=false); + void drawString(uint16_t x, uint16_t y, const char *p); + void drawStringCentered(uint16_t x, uint16_t y, uint16_t width, uint16_t height, const char *p); + + void drawImage(uint16_t x, uint16_t y, uint16_t width, uint16_t height, const uint16_t* data); + + void select(); + void unSelect(); +protected: + virtual void sendCommand(uint8_t index) = 0; + +#if defined (DM_TOOLCHAIN_ARDUINO) + regtype *_pinCS; + regsize _bitmaskCS; +#elif defined (DM_TOOLCHAIN_MBED) + DigitalOut* _pinCS; + uint8_t _bitmaskCS; +#endif + +private: + const uint16_t _width; + const uint16_t _height; + + uint16_t _bgColor; + uint16_t _fgColor; +}; +#endif + + + + +