summaryrefslogtreecommitdiff
path: root/glcddrivers/serdisp.c
diff options
context:
space:
mode:
Diffstat (limited to 'glcddrivers/serdisp.c')
-rw-r--r--glcddrivers/serdisp.c34
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