diff options
Diffstat (limited to 'glcddrivers/serdisp.c')
-rw-r--r-- | glcddrivers/serdisp.c | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/glcddrivers/serdisp.c b/glcddrivers/serdisp.c index 2b46a8a..9c667dc 100644 --- a/glcddrivers/serdisp.c +++ b/glcddrivers/serdisp.c @@ -32,9 +32,6 @@ #define FEATURE_BACKLIGHT 0x03 #define FEATURE_ROTATE 0x04 -#define SD_COL_BLACK 0xFF000000 -#define SD_COL_WHITE 0xFFFFFFFF - // taken from serdisp_gpevents.h #define SDGPT_SIMPLETOUCH 0x10 /* simple touch screen event, type: SDGP_evpkt_simpletouch_t */ @@ -89,8 +86,8 @@ int cDriverSerDisp::Init(void) /* pre-init some flags, function pointers, ... */ supports_options = 0; - fg_colour = 1; - bg_colour = -1; + fg_colour = GLCD::cColor::Black; /* set foreground colour to black */ + bg_colour = GLCD::cColor::ERRCOL; // get serdisp version fp_serdisp_getversioncode = (long int (*)()) dlsym(sdhnd, "serdisp_getversioncode"); @@ -123,7 +120,6 @@ int cDriverSerDisp::Init(void) config->name.c_str(), "serdisp_setcolour", errmsg); return -1; } - fg_colour = SD_COL_BLACK; /* set foreground colour to black */ if (serdisp_version >= SERDISP_VERSION(1,96) ) { supports_options = 1; @@ -236,12 +232,12 @@ int cDriverSerDisp::Init(void) } else if (config->options[i].name == "Wiring") { wiringstring = config->options[i].value; } else if (config->options[i].name == "FGColour") { - fg_colour = strtoul(config->options[i].value.c_str(), (char **)NULL, 0); - fg_colour |= 0xFF000000L; /* force alpha to 0xFF */ + fg_colour = (uint32_t)strtoul(config->options[i].value.c_str(), (char **)NULL, 0); + fg_colour |= 0xFF000000; /* force alpha to 0xFF */ fg_forced = 1; } else if (config->options[i].name == "BGColour") { - bg_colour = strtoul(config->options[i].value.c_str(), (char **)NULL, 0); - bg_colour |= 0xFF000000L; /* force alpha to 0xFF */ + bg_colour = (uint32_t)strtoul(config->options[i].value.c_str(), (char **)NULL, 0); + bg_colour |= 0xFF000000; /* force alpha to 0xFF */ bg_forced = 1; } } @@ -301,9 +297,9 @@ int cDriverSerDisp::Init(void) // self-emitting displays (like OLEDs): default background colour => black if ( supports_options && fp_serdisp_isoption(dd, "SELFEMITTING") && (fp_serdisp_getoption(dd, "SELFEMITTING", 0)) ) { if (!bg_forced) - bg_colour = SD_COL_BLACK; /* set background colour to black */ + bg_colour = GLCD::cColor::Black; /* set background colour to black */ if (!fg_forced) - fg_colour = SD_COL_WHITE; /* set foreground colour to white */ + fg_colour = GLCD::cColor::White; /* set foreground colour to white */ } width = config->width; @@ -432,16 +428,17 @@ int cDriverSerDisp::CheckSetup() void cDriverSerDisp::Clear(void) { - if (bg_colour == -1) + if (bg_colour == GLCD::cColor::ERRCOL) // bg_colour not set fp_serdisp_clearbuffer(dd); else { /* if bg_colour is set, draw background 'by hand' */ int x,y; for (y = 0; y < fp_serdisp_getheight(dd); y++) for (x = 0; x < fp_serdisp_getwidth(dd); x++) - fp_serdisp_setcolour(dd, x, y, bg_colour); + fp_serdisp_setcolour(dd, x, y, (long)bg_colour); } } +#if 0 void cDriverSerDisp::Set8Pixels(int x, int y, unsigned char data) { int i, start, pixel; @@ -452,16 +449,17 @@ void cDriverSerDisp::Set8Pixels(int x, int y, unsigned char data) { for (i = 0; i < 8; i++) { pixel = data & (1 << i); if (pixel) { - SetPixel(start + i, y, fg_colour); - } else if (!pixel && bg_colour != -1) { /* if bg_colour is set: use it if pixel is not set */ - SetPixel(start + i, y, bg_colour); + SetPixel(start + i, y, (long)fg_colour); + } else if (!pixel && bg_colour != GLCD::cColor::ERRCOL) { /* if bg_colour is set: use it if pixel is not set */ + SetPixel(start + i, y, (long)bg_colour); } } } +#endif void cDriverSerDisp::SetPixel(int x, int y, uint32_t data) { - fp_serdisp_setcolour(dd, x, y, data); + fp_serdisp_setcolour(dd, x, y, (long)data); } #if 0 |