Eric Johnson
/
SSD1306-I2C
Hacked version of AdaFruit graphics library for SSD1306 usage on I2C
Adafruit_GFX.h@0:b0151666c710, 2017-06-15 (annotated)
- Committer:
- eggsylah
- Date:
- Thu Jun 15 15:01:14 2017 +0000
- Revision:
- 0:b0151666c710
First working i2c version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
eggsylah | 0:b0151666c710 | 1 | #ifndef _ADAFRUIT_GFX_H |
eggsylah | 0:b0151666c710 | 2 | #define _ADAFRUIT_GFX_H |
eggsylah | 0:b0151666c710 | 3 | |
eggsylah | 0:b0151666c710 | 4 | #include <stdlib.h> |
eggsylah | 0:b0151666c710 | 5 | |
eggsylah | 0:b0151666c710 | 6 | #include "gfxfont.h" |
eggsylah | 0:b0151666c710 | 7 | |
eggsylah | 0:b0151666c710 | 8 | class Adafruit_GFX { |
eggsylah | 0:b0151666c710 | 9 | |
eggsylah | 0:b0151666c710 | 10 | public: |
eggsylah | 0:b0151666c710 | 11 | |
eggsylah | 0:b0151666c710 | 12 | Adafruit_GFX(int16_t w, int16_t h); // Constructor |
eggsylah | 0:b0151666c710 | 13 | |
eggsylah | 0:b0151666c710 | 14 | // This MUST be defined by the subclass: |
eggsylah | 0:b0151666c710 | 15 | virtual void drawPixel(int16_t x, int16_t y, uint16_t color) = 0; |
eggsylah | 0:b0151666c710 | 16 | |
eggsylah | 0:b0151666c710 | 17 | // These MAY be overridden by the subclass to provide device-specific |
eggsylah | 0:b0151666c710 | 18 | // optimized code. Otherwise 'generic' versions are used. |
eggsylah | 0:b0151666c710 | 19 | virtual void |
eggsylah | 0:b0151666c710 | 20 | drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color), |
eggsylah | 0:b0151666c710 | 21 | drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color), |
eggsylah | 0:b0151666c710 | 22 | drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color), |
eggsylah | 0:b0151666c710 | 23 | drawRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color), |
eggsylah | 0:b0151666c710 | 24 | fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color), |
eggsylah | 0:b0151666c710 | 25 | fillScreen(uint16_t color), |
eggsylah | 0:b0151666c710 | 26 | invertDisplay(bool i); |
eggsylah | 0:b0151666c710 | 27 | |
eggsylah | 0:b0151666c710 | 28 | // These exist only with Adafruit_GFX (no subclass overrides) |
eggsylah | 0:b0151666c710 | 29 | void |
eggsylah | 0:b0151666c710 | 30 | drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color), |
eggsylah | 0:b0151666c710 | 31 | drawCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername, |
eggsylah | 0:b0151666c710 | 32 | uint16_t color), |
eggsylah | 0:b0151666c710 | 33 | fillCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color), |
eggsylah | 0:b0151666c710 | 34 | fillCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername, |
eggsylah | 0:b0151666c710 | 35 | int16_t delta, uint16_t color), |
eggsylah | 0:b0151666c710 | 36 | drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, |
eggsylah | 0:b0151666c710 | 37 | int16_t x2, int16_t y2, uint16_t color), |
eggsylah | 0:b0151666c710 | 38 | fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, |
eggsylah | 0:b0151666c710 | 39 | int16_t x2, int16_t y2, uint16_t color), |
eggsylah | 0:b0151666c710 | 40 | drawRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, |
eggsylah | 0:b0151666c710 | 41 | int16_t radius, uint16_t color), |
eggsylah | 0:b0151666c710 | 42 | fillRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, |
eggsylah | 0:b0151666c710 | 43 | int16_t radius, uint16_t color), |
eggsylah | 0:b0151666c710 | 44 | |
eggsylah | 0:b0151666c710 | 45 | drawBitmap(int16_t x, int16_t y, const uint8_t *bitmap, int16_t w, int16_t h, uint16_t color), |
eggsylah | 0:b0151666c710 | 46 | drawBitmap(int16_t x, int16_t y, const uint8_t *bitmap, int16_t w, int16_t h, uint16_t color, uint16_t bg), |
eggsylah | 0:b0151666c710 | 47 | |
eggsylah | 0:b0151666c710 | 48 | drawXBitmap(int16_t x, int16_t y, const uint8_t *bitmap, |
eggsylah | 0:b0151666c710 | 49 | int16_t w, int16_t h, uint16_t color), |
eggsylah | 0:b0151666c710 | 50 | drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color, |
eggsylah | 0:b0151666c710 | 51 | uint16_t bg, uint8_t size), |
eggsylah | 0:b0151666c710 | 52 | setCursor(int16_t x, int16_t y), |
eggsylah | 0:b0151666c710 | 53 | setTextColor(uint16_t c), |
eggsylah | 0:b0151666c710 | 54 | setTextColor(uint16_t c, uint16_t bg), |
eggsylah | 0:b0151666c710 | 55 | setTextSize(uint8_t s), |
eggsylah | 0:b0151666c710 | 56 | setTextWrap(bool w), |
eggsylah | 0:b0151666c710 | 57 | setRotation(uint8_t r), |
eggsylah | 0:b0151666c710 | 58 | cp437(bool x=true), |
eggsylah | 0:b0151666c710 | 59 | setFont(const GFXfont *f = NULL), |
eggsylah | 0:b0151666c710 | 60 | getTextBounds(char *string, int16_t x, int16_t y, |
eggsylah | 0:b0151666c710 | 61 | int16_t *x1, int16_t *y1, uint16_t *w, uint16_t *h), |
eggsylah | 0:b0151666c710 | 62 | getTextBounds(const char *s, int16_t x, int16_t y, |
eggsylah | 0:b0151666c710 | 63 | int16_t *x1, int16_t *y1, uint16_t *w, uint16_t *h), |
eggsylah | 0:b0151666c710 | 64 | print(const char* str), |
eggsylah | 0:b0151666c710 | 65 | println(const char* str); |
eggsylah | 0:b0151666c710 | 66 | |
eggsylah | 0:b0151666c710 | 67 | virtual size_t write(uint8_t); |
eggsylah | 0:b0151666c710 | 68 | |
eggsylah | 0:b0151666c710 | 69 | int16_t height(void) const; |
eggsylah | 0:b0151666c710 | 70 | int16_t width(void) const; |
eggsylah | 0:b0151666c710 | 71 | |
eggsylah | 0:b0151666c710 | 72 | uint8_t getRotation(void) const; |
eggsylah | 0:b0151666c710 | 73 | |
eggsylah | 0:b0151666c710 | 74 | // get current cursor position (get rotation safe maximum values, using: width() for x, height() for y) |
eggsylah | 0:b0151666c710 | 75 | int16_t getCursorX(void) const; |
eggsylah | 0:b0151666c710 | 76 | int16_t getCursorY(void) const; |
eggsylah | 0:b0151666c710 | 77 | |
eggsylah | 0:b0151666c710 | 78 | protected: |
eggsylah | 0:b0151666c710 | 79 | const int16_t |
eggsylah | 0:b0151666c710 | 80 | WIDTH, HEIGHT; // This is the 'raw' display w/h - never changes |
eggsylah | 0:b0151666c710 | 81 | int16_t |
eggsylah | 0:b0151666c710 | 82 | _width, _height, // Display w/h as modified by current rotation |
eggsylah | 0:b0151666c710 | 83 | cursor_x, cursor_y; |
eggsylah | 0:b0151666c710 | 84 | uint16_t |
eggsylah | 0:b0151666c710 | 85 | textcolor, textbgcolor; |
eggsylah | 0:b0151666c710 | 86 | uint8_t |
eggsylah | 0:b0151666c710 | 87 | textsize, |
eggsylah | 0:b0151666c710 | 88 | rotation; |
eggsylah | 0:b0151666c710 | 89 | bool |
eggsylah | 0:b0151666c710 | 90 | wrap, // If set, 'wrap' text at right edge of display |
eggsylah | 0:b0151666c710 | 91 | _cp437; // If set, use correct CP437 charset (default is off) |
eggsylah | 0:b0151666c710 | 92 | GFXfont |
eggsylah | 0:b0151666c710 | 93 | *gfxFont; |
eggsylah | 0:b0151666c710 | 94 | }; |
eggsylah | 0:b0151666c710 | 95 | |
eggsylah | 0:b0151666c710 | 96 | #endif // _ADAFRUIT_GFX_H |