From 5e31e93afa580ad2a6e9f39ce1197cd481c95a46 Mon Sep 17 00:00:00 2001 From: Ian Geiser Date: Tue, 15 Sep 2020 13:46:18 -0400 Subject: [PATCH] make colors compat again --- components/st7735/st7735.h | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/components/st7735/st7735.h b/components/st7735/st7735.h index fe02b9a..d680d51 100644 --- a/components/st7735/st7735.h +++ b/components/st7735/st7735.h @@ -80,16 +80,30 @@ #define ST7735_NVMSET 0xFC // NVM setting #define ST7735_PROMACT 0xFE // Program action +namespace esphome { +namespace st7735 { + +template +struct Color565 { + operator Color () const + { + return Color((((N)&0xF800) >> 8), (((N)&0x07E0) >> 3), (((N)&0x001F) << 3)); + } +}; + +} // namespace st7735 +} // namespace esphome + // Some ready-made 16-bit ('565') color settings: -#define ST77XX_BLACK 0x0000 -#define ST77XX_WHITE 0xFFFF -#define ST77XX_RED 0xF800 -#define ST77XX_GREEN 0x07E0 -#define ST77XX_BLUE 0x001F -#define ST77XX_CYAN 0x07FF -#define ST77XX_MAGENTA 0xF81F -#define ST77XX_YELLOW 0xFFE0 -#define ST77XX_ORANGE 0xFC00 +#define ST77XX_BLACK esphome::st7735::Color565<0x0000>{} /* 0, 0, 0 */ +#define ST77XX_WHITE esphome::st7735::Color565<0xFFFF>{} /* 255, 255, 255 */ +#define ST77XX_RED esphome::st7735::Color565<0xF800>{} /* 255, 0, 0 */ +#define ST77XX_GREEN esphome::st7735::Color565<0x07E0>{} /* 0, 255, 0 */ +#define ST77XX_BLUE esphome::st7735::Color565<0x001F>{} /* 0, 0, 255 */ +#define ST77XX_CYAN esphome::st7735::Color565<0x07FF>{} /* 0, 255, 255 */ +#define ST77XX_MAGENTA esphome::st7735::Color565<0xF81F>{} /* 255, 0, 255 */ +#define ST77XX_YELLOW esphome::st7735::Color565<0xFFE0>{} /* 255, 255, 0 */ +#define ST77XX_ORANGE esphome::st7735::Color565<0xFDA0>{} /* 255, 180, 0 */ // Some ready-made 16-bit ('565') color settings: #define ST7735_BLACK ST77XX_BLACK