Modified version of the DmTftLibrary, optimized for the LPC4088 Experiment Base Board

Dependents:   lpc4088_ebb_dm_calc lpc4088_ebb_dm_bubbles

Fork of DmTftLibrary by Display Module

Committer:
embeddedartists
Date:
Thu Sep 11 14:28:32 2014 +0000
Revision:
12:eb97ccfe7c3f
Parent:
2:59be7fca4581
Tweaked to get better/stable touch events

Who changed what in which revision?

UserRevisionLine numberNew contents of line
displaymodule 0:d6ff5fa503e8 1 /**********************************************************************************************
displaymodule 0:d6ff5fa503e8 2 Copyright (c) 2014 DisplayModule. All rights reserved.
displaymodule 0:d6ff5fa503e8 3
displaymodule 0:d6ff5fa503e8 4 Redistribution and use of this source code, part of this source code or any compiled binary
displaymodule 0:d6ff5fa503e8 5 based on this source code is permitted as long as the above copyright notice and following
displaymodule 0:d6ff5fa503e8 6 disclaimer is retained.
displaymodule 0:d6ff5fa503e8 7
displaymodule 0:d6ff5fa503e8 8 DISCLAIMER:
displaymodule 0:d6ff5fa503e8 9 THIS SOFTWARE IS SUPPLIED "AS IS" WITHOUT ANY WARRANTIES AND SUPPORT. DISPLAYMODULE ASSUMES
displaymodule 0:d6ff5fa503e8 10 NO RESPONSIBILITY OR LIABILITY FOR THE USE OF THE SOFTWARE.
displaymodule 0:d6ff5fa503e8 11 ********************************************************************************************/
displaymodule 0:d6ff5fa503e8 12 #ifndef DMTFTBASE_h
displaymodule 0:d6ff5fa503e8 13 #define DMTFTBASE_h
displaymodule 0:d6ff5fa503e8 14
displaymodule 0:d6ff5fa503e8 15 #include "dm_platform.h"
displaymodule 0:d6ff5fa503e8 16
displaymodule 0:d6ff5fa503e8 17
displaymodule 0:d6ff5fa503e8 18 //Basic Colors
displaymodule 0:d6ff5fa503e8 19 #define RED 0xf800
displaymodule 0:d6ff5fa503e8 20 #define GREEN 0x07e0
displaymodule 0:d6ff5fa503e8 21 #define BLUE 0x001f
displaymodule 0:d6ff5fa503e8 22 #define BLACK 0x0000
displaymodule 0:d6ff5fa503e8 23 #define YELLOW 0xffe0
displaymodule 0:d6ff5fa503e8 24 #define WHITE 0xffff
displaymodule 0:d6ff5fa503e8 25
displaymodule 0:d6ff5fa503e8 26 //Other Colors
displaymodule 0:d6ff5fa503e8 27 #define CYAN 0x07ff
displaymodule 0:d6ff5fa503e8 28 #define BRIGHT_RED 0xf810
displaymodule 0:d6ff5fa503e8 29 #define GRAY1 0x8410
displaymodule 0:d6ff5fa503e8 30 #define GRAY2 0x4208
displaymodule 0:d6ff5fa503e8 31
displaymodule 0:d6ff5fa503e8 32
displaymodule 0:d6ff5fa503e8 33 class DmTftBase {
displaymodule 0:d6ff5fa503e8 34 public:
displaymodule 0:d6ff5fa503e8 35 DmTftBase(const uint16_t width, const uint16_t height) : _width(width), _height(height){};
displaymodule 0:d6ff5fa503e8 36 virtual ~DmTftBase() { };
displaymodule 0:d6ff5fa503e8 37
embeddedartists 2:59be7fca4581 38 virtual void init(void) = 0;
embeddedartists 2:59be7fca4581 39
displaymodule 0:d6ff5fa503e8 40 uint16_t width() { return _width; }
displaymodule 0:d6ff5fa503e8 41 uint16_t height() { return _height; }
displaymodule 0:d6ff5fa503e8 42
displaymodule 0:d6ff5fa503e8 43 void setTextColor(uint16_t background, uint16_t foreground) { _bgColor = background; _fgColor = foreground; }
displaymodule 0:d6ff5fa503e8 44
displaymodule 0:d6ff5fa503e8 45 virtual void setPixel(uint16_t x, uint16_t y, uint16_t color);
displaymodule 0:d6ff5fa503e8 46 virtual void setAddress(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1) = 0;
displaymodule 0:d6ff5fa503e8 47 virtual void sendData(uint16_t data) = 0;
displaymodule 0:d6ff5fa503e8 48
displaymodule 0:d6ff5fa503e8 49 void clearScreen(uint16_t color = BLACK);
displaymodule 0:d6ff5fa503e8 50
displaymodule 0:d6ff5fa503e8 51 void drawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color);
displaymodule 0:d6ff5fa503e8 52 void drawVerticalLine(uint16_t x, uint16_t y, uint16_t length, uint16_t color);
displaymodule 0:d6ff5fa503e8 53 void drawHorizontalLine(uint16_t x, uint16_t y, uint16_t length, uint16_t color);
displaymodule 0:d6ff5fa503e8 54
displaymodule 0:d6ff5fa503e8 55 void drawRectangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color);
displaymodule 0:d6ff5fa503e8 56 void fillRectangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color);
displaymodule 0:d6ff5fa503e8 57
displaymodule 0:d6ff5fa503e8 58 void drawCircle(uint16_t x0, uint16_t y0, uint16_t r, uint16_t color);
displaymodule 0:d6ff5fa503e8 59 void fillCircle(uint16_t x0, uint16_t y0, uint16_t r, uint16_t color);
displaymodule 0:d6ff5fa503e8 60
displaymodule 0:d6ff5fa503e8 61 void drawTriangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color);
displaymodule 0:d6ff5fa503e8 62
displaymodule 0:d6ff5fa503e8 63 void drawPoint(uint16_t x, uint16_t y, uint16_t radius=0);
displaymodule 0:d6ff5fa503e8 64
displaymodule 0:d6ff5fa503e8 65 void drawChar(uint16_t x, uint16_t y, char ch, bool transparent);
displaymodule 0:d6ff5fa503e8 66 void drawNumber(uint16_t x, uint16_t y, int num, int digitsToShow, bool leadingZeros=false);
displaymodule 0:d6ff5fa503e8 67 void drawString(uint16_t x, uint16_t y, const char *p);
displaymodule 0:d6ff5fa503e8 68 void drawStringCentered(uint16_t x, uint16_t y, uint16_t width, uint16_t height, const char *p);
displaymodule 0:d6ff5fa503e8 69
displaymodule 0:d6ff5fa503e8 70 void drawImage(uint16_t x, uint16_t y, uint16_t width, uint16_t height, const uint16_t* data);
displaymodule 0:d6ff5fa503e8 71
displaymodule 0:d6ff5fa503e8 72 void select();
displaymodule 0:d6ff5fa503e8 73 void unSelect();
displaymodule 0:d6ff5fa503e8 74 protected:
displaymodule 0:d6ff5fa503e8 75 virtual void sendCommand(uint8_t index) = 0;
displaymodule 0:d6ff5fa503e8 76
displaymodule 0:d6ff5fa503e8 77 #if defined (DM_TOOLCHAIN_ARDUINO)
displaymodule 0:d6ff5fa503e8 78 regtype *_pinCS;
displaymodule 0:d6ff5fa503e8 79 regsize _bitmaskCS;
displaymodule 0:d6ff5fa503e8 80 #elif defined (DM_TOOLCHAIN_MBED)
displaymodule 0:d6ff5fa503e8 81 DigitalOut* _pinCS;
displaymodule 0:d6ff5fa503e8 82 uint8_t _bitmaskCS;
displaymodule 0:d6ff5fa503e8 83 #endif
displaymodule 0:d6ff5fa503e8 84
displaymodule 0:d6ff5fa503e8 85 private:
displaymodule 0:d6ff5fa503e8 86 const uint16_t _width;
displaymodule 0:d6ff5fa503e8 87 const uint16_t _height;
displaymodule 0:d6ff5fa503e8 88
displaymodule 0:d6ff5fa503e8 89 uint16_t _bgColor;
displaymodule 0:d6ff5fa503e8 90 uint16_t _fgColor;
displaymodule 0:d6ff5fa503e8 91 };
displaymodule 0:d6ff5fa503e8 92 #endif
displaymodule 0:d6ff5fa503e8 93
displaymodule 0:d6ff5fa503e8 94
displaymodule 0:d6ff5fa503e8 95
displaymodule 0:d6ff5fa503e8 96
displaymodule 0:d6ff5fa503e8 97