M tamaki
/
adafruiLEDMat
Adafruit LED Matrix Display program
Adafruit_GFX.h@0:86b6f02fab12, 2015-07-11 (annotated)
- Committer:
- tamaki
- Date:
- Sat Jul 11 01:16:40 2015 +0000
- Revision:
- 0:86b6f02fab12
adafruit LED matrix Display program(Test)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tamaki | 0:86b6f02fab12 | 1 | |
tamaki | 0:86b6f02fab12 | 2 | #ifndef _ADAFRUIT_GFX_H |
tamaki | 0:86b6f02fab12 | 3 | #define _ADAFRUIT_GFX_H |
tamaki | 0:86b6f02fab12 | 4 | |
tamaki | 0:86b6f02fab12 | 5 | #include "mbed.h" |
tamaki | 0:86b6f02fab12 | 6 | //#include "Arduino.h" |
tamaki | 0:86b6f02fab12 | 7 | //#include "Print.h" |
tamaki | 0:86b6f02fab12 | 8 | |
tamaki | 0:86b6f02fab12 | 9 | #define swap(a, b) { int16_t t = a; a = b; b = t; } |
tamaki | 0:86b6f02fab12 | 10 | |
tamaki | 0:86b6f02fab12 | 11 | class Adafruit_GFX : public Print { // THIS LINE RIGHT HERE |
tamaki | 0:86b6f02fab12 | 12 | |
tamaki | 0:86b6f02fab12 | 13 | public: |
tamaki | 0:86b6f02fab12 | 14 | |
tamaki | 0:86b6f02fab12 | 15 | Adafruit_GFX(int16_t w, int16_t h); // Constructor |
tamaki | 0:86b6f02fab12 | 16 | |
tamaki | 0:86b6f02fab12 | 17 | // This MUST be defined by the subclass: |
tamaki | 0:86b6f02fab12 | 18 | virtual void drawPixel(int16_t x, int16_t y, uint16_t color) = 0; |
tamaki | 0:86b6f02fab12 | 19 | |
tamaki | 0:86b6f02fab12 | 20 | // These MAY be overridden by the subclass to provide device-specific |
tamaki | 0:86b6f02fab12 | 21 | // optimized code. Otherwise 'generic' versions are used. |
tamaki | 0:86b6f02fab12 | 22 | virtual void |
tamaki | 0:86b6f02fab12 | 23 | drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color), |
tamaki | 0:86b6f02fab12 | 24 | drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color), |
tamaki | 0:86b6f02fab12 | 25 | drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color), |
tamaki | 0:86b6f02fab12 | 26 | drawRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color), |
tamaki | 0:86b6f02fab12 | 27 | fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color), |
tamaki | 0:86b6f02fab12 | 28 | fillScreen(uint16_t color), |
tamaki | 0:86b6f02fab12 | 29 | invertDisplay(bool i); |
tamaki | 0:86b6f02fab12 | 30 | |
tamaki | 0:86b6f02fab12 | 31 | // These exist only with Adafruit_GFX (no subclass overrides) |
tamaki | 0:86b6f02fab12 | 32 | void |
tamaki | 0:86b6f02fab12 | 33 | drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color), |
tamaki | 0:86b6f02fab12 | 34 | drawCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername, |
tamaki | 0:86b6f02fab12 | 35 | uint16_t color), |
tamaki | 0:86b6f02fab12 | 36 | fillCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color), |
tamaki | 0:86b6f02fab12 | 37 | fillCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername, |
tamaki | 0:86b6f02fab12 | 38 | int16_t delta, uint16_t color), |
tamaki | 0:86b6f02fab12 | 39 | drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, |
tamaki | 0:86b6f02fab12 | 40 | int16_t x2, int16_t y2, uint16_t color), |
tamaki | 0:86b6f02fab12 | 41 | fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, |
tamaki | 0:86b6f02fab12 | 42 | int16_t x2, int16_t y2, uint16_t color), |
tamaki | 0:86b6f02fab12 | 43 | drawRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, |
tamaki | 0:86b6f02fab12 | 44 | int16_t radius, uint16_t color), |
tamaki | 0:86b6f02fab12 | 45 | fillRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, |
tamaki | 0:86b6f02fab12 | 46 | int16_t radius, uint16_t color), |
tamaki | 0:86b6f02fab12 | 47 | drawBitmap(int16_t x, int16_t y, const uint8_t *bitmap, |
tamaki | 0:86b6f02fab12 | 48 | int16_t w, int16_t h, uint16_t color), |
tamaki | 0:86b6f02fab12 | 49 | drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color, |
tamaki | 0:86b6f02fab12 | 50 | uint16_t bg, uint8_t size), |
tamaki | 0:86b6f02fab12 | 51 | setCursor(int16_t x, int16_t y), |
tamaki | 0:86b6f02fab12 | 52 | setTextColor(uint16_t c), |
tamaki | 0:86b6f02fab12 | 53 | setTextColor(uint16_t c, uint16_t bg), |
tamaki | 0:86b6f02fab12 | 54 | setTextSize(uint8_t s), |
tamaki | 0:86b6f02fab12 | 55 | setTextWrap(bool w), |
tamaki | 0:86b6f02fab12 | 56 | setRotation(uint8_t r); |
tamaki | 0:86b6f02fab12 | 57 | |
tamaki | 0:86b6f02fab12 | 58 | #if ARDUINO >= 100 |
tamaki | 0:86b6f02fab12 | 59 | virtual size_t write(uint8_t); |
tamaki | 0:86b6f02fab12 | 60 | #else |
tamaki | 0:86b6f02fab12 | 61 | virtual void write(uint8_t); |
tamaki | 0:86b6f02fab12 | 62 | #endif |
tamaki | 0:86b6f02fab12 | 63 | |
tamaki | 0:86b6f02fab12 | 64 | int16_t |
tamaki | 0:86b6f02fab12 | 65 | height(void), |
tamaki | 0:86b6f02fab12 | 66 | width(void); |
tamaki | 0:86b6f02fab12 | 67 | |
tamaki | 0:86b6f02fab12 | 68 | uint8_t getRotation(void); |
tamaki | 0:86b6f02fab12 | 69 | |
tamaki | 0:86b6f02fab12 | 70 | protected: |
tamaki | 0:86b6f02fab12 | 71 | const int16_t |
tamaki | 0:86b6f02fab12 | 72 | WIDTH, HEIGHT; // This is the 'raw' display w/h - never changes |
tamaki | 0:86b6f02fab12 | 73 | int16_t |
tamaki | 0:86b6f02fab12 | 74 | _width, _height, // Display w/h as modified by current rotation |
tamaki | 0:86b6f02fab12 | 75 | cursor_x, cursor_y; |
tamaki | 0:86b6f02fab12 | 76 | uint16_t |
tamaki | 0:86b6f02fab12 | 77 | textcolor, textbgcolor; |
tamaki | 0:86b6f02fab12 | 78 | uint8_t |
tamaki | 0:86b6f02fab12 | 79 | textsize, |
tamaki | 0:86b6f02fab12 | 80 | rotation; |
tamaki | 0:86b6f02fab12 | 81 | bool |
tamaki | 0:86b6f02fab12 | 82 | wrap; // If set, 'wrap' text at right edge of display |
tamaki | 0:86b6f02fab12 | 83 | }; |
tamaki | 0:86b6f02fab12 | 84 |