Final

Dependencies:   IRremote HCSR04 TB6612FNG

Committer:
eunmango
Date:
Sun Jun 16 04:51:51 2019 +0000
Revision:
97:59d348745d96
s

Who changed what in which revision?

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