diff options
Diffstat (limited to 'halext/src')
-rw-r--r-- | halext/src/gdisp.c | 262 | ||||
-rw-r--r-- | halext/src/gdisp_emulation.c | 135 | ||||
-rw-r--r-- | halext/src/gdisp_fonts.c | 51 |
3 files changed, 273 insertions, 175 deletions
diff --git a/halext/src/gdisp.c b/halext/src/gdisp.c index 195b01f2..4bbff695 100644 --- a/halext/src/gdisp.c +++ b/halext/src/gdisp.c @@ -32,7 +32,7 @@ #if HAL_USE_GDISP || defined(__DOXYGEN__)
#ifdef GDISP_NEED_TEXT
-#include "gdisp_fonts.h"
+ #include "gdisp_fonts.h"
#endif
#if GDISP_NEED_MULTITHREAD
@@ -92,25 +92,6 @@ #if GDISP_NEED_MULTITHREAD || defined(__DOXYGEN__)
/**
- * @brief Set the power mode for the display.
- * @pre The GDISP unit must have been initialised using @p gdispInit().
- * @note Depending on the hardware implementation this function may not
- * support powerSleep. If not powerSleep is treated the same as powerOn.
- * (sleep allows drawing to the display without the display updating).
- *
- * @param[in] powerMode The power mode to use
- *
- * @api
- */
- void gdispSetPowerMode(gdisp_powermode_t powerMode) {
- MUTEX_ENTER
- gdisp_lld_setpowermode(powerMode);
- MUTEX_EXIT
- }
-#endif
-
-#if GDISP_NEED_MULTITHREAD || defined(__DOXYGEN__)
- /**
* @brief Set the orientation of the display.
* @pre The GDISP unit must be in powerOn or powerSleep mode.
* @note Depending on the hardware implementation this function may clear
@@ -180,25 +161,6 @@ #if GDISP_NEED_MULTITHREAD || defined(__DOXYGEN__)
/**
- * @brief Draw a rectangular box.
- * @pre The GDISP unit must be in powerOn or powerSleep mode.
- *
- * @param[in] x0,y0 The start position
- * @param[in] cx,cy The size of the box (outside dimensions)
- * @param[in] color The color to use
- * @param[in] filled Should the box should be filled
- *
- * @api
- */
- void gdispDrawBox(coord_t x, coord_t y, coord_t cx, coord_t cy, color_t color) {
- MUTEX_ENTER
- gdisp_lld_drawbox(x, y, cx, cy, color);
- MUTEX_EXIT
- }
-#endif
-
-#if GDISP_NEED_MULTITHREAD || defined(__DOXYGEN__)
- /**
* @brief Fill an area with a color.
* @pre The GDISP unit must be in powerOn or powerSleep mode.
*
@@ -327,6 +289,46 @@ }
#endif
+#if (GDISP_NEED_PIXELREAD && GDISP_NEED_MULTITHREAD) || defined(__DOXYGEN__)
+ /**
+ * @brief Get the color of a pixel.
+ * @return The color of the pixel.
+ *
+ * @param[in] x,y The position of the pixel
+ *
+ * @api
+ */
+ color_t gdispGetPixelColor(coord_t x, coord_t y) {
+ color_t c;
+
+ MUTEX_ENTER
+ c = gdisp_lld_getpixelcolor(x, y);
+ MUTEX_EXIT
+
+ return c;
+ }
+#endif
+
+#if (GDISP_NEED_SCROLL && GDISP_NEED_MULTITHREAD) || defined(__DOXYGEN__)
+ /**
+ * @brief Scroll vertically a section of the screen.
+ * @note Optional.
+ * @note If lines is >= cy, it is equivelent to a area fill with bgcolor.
+ *
+ * @param[in] x, y The start of the area to be scrolled
+ * @param[in] cx, cy The size of the area to be scrolled
+ * @param[in] lines The number of lines to scroll (Can be positive or negative)
+ * @param[in] bgcolor The color to fill the newly exposed area.
+ *
+ * @api
+ */
+ void gdispVerticalScroll(coord_t x, coord_t y, coord_t cx, coord_t cy, int lines, color_t bgcolor) {
+ MUTEX_ENTER
+ gdisp_lld_verticalscroll(x, y, cx, cy, lines, bgcolor);
+ MUTEX_EXIT
+ }
+#endif
+
#if (GDISP_NEED_TEXT && GDISP_NEED_MULTITHREAD) || defined(__DOXYGEN__)
/**
* @brief Draw a text character with a filled background.
@@ -346,6 +348,68 @@ }
#endif
+#if (GDISP_NEED_CONTROL && GDISP_NEED_MULTITHREAD) || defined(__DOXYGEN__)
+ /**
+ * @brief Set the power mode for the display.
+ * @pre The GDISP unit must have been initialised using @p gdispInit().
+ * @note Depending on the hardware implementation this function may not
+ * support powerSleep. If not powerSleep is treated the same as powerOn.
+ * (sleep allows drawing to the display without the display updating).
+ *
+ * @param[in] powerMode The power mode to use
+ *
+ * @api
+ */
+ void gdispControl(int what, void *value) {
+ MUTEX_ENTER
+ gdisp_lld_control(what, value);
+ MUTEX_EXIT
+ }
+#endif
+
+/*===========================================================================*/
+/* High Level Driver Routines. */
+/*===========================================================================*/
+
+#if GDISP_NEED_MULTITHREAD || defined(__DOXYGEN__)
+ /**
+ * @brief Draw a rectangular box.
+ * @pre The GDISP unit must be in powerOn or powerSleep mode.
+ *
+ * @param[in] x0,y0 The start position
+ * @param[in] cx,cy The size of the box (outside dimensions)
+ * @param[in] color The color to use
+ * @param[in] filled Should the box should be filled
+ *
+ * @api
+ */
+ void gdispDrawBox(coord_t x, coord_t y, coord_t cx, coord_t cy, color_t color) {
+ /* No mutex required as we only call high level functions which have their own mutex */
+ coord_t x1, y1;
+
+ x1 = x+cx-1;
+ y1 = y+cy-1;
+
+ if (cx > 2) {
+ if (cy >= 1) {
+ gdisp_lld_drawline(x, y, x1, y, color);
+ if (cy >= 2) {
+ gdisp_lld_drawline(x, y1, x1, y1, color);
+ if (cy > 2) {
+ gdisp_lld_drawline(x, y+1, x, y1-1, color);
+ gdisp_lld_drawline(x1, y+1, x1, y1-1, color);
+ }
+ }
+ }
+ } else if (cx == 2) {
+ gdisp_lld_drawline(x, y, x, y1, color);
+ gdisp_lld_drawline(x1, y, x1, y1, color);
+ } else if (cx == 1) {
+ gdisp_lld_drawline(x, y, x, y1, color);
+ }
+ }
+#endif
+
#if GDISP_NEED_TEXT || defined(__DOXYGEN__)
/**
* @brief Draw a text string.
@@ -359,21 +423,22 @@ */
void gdispDrawString(coord_t x, coord_t y, const char *str, font_t font, color_t color) {
/* No mutex required as we only call high level functions which have their own mutex */
- coord_t w;
+ coord_t w, p;
char c;
int first;
first = 1;
+ p = font->charPadding * font->xscale;
while(*str) {
/* Get the next printable character */
c = *str++;
- w = _getCharWidth(font, c);
+ w = _getCharWidth(font, c) * font->xscale;
if (!w) continue;
/* Handle inter-character padding */
- if (font->charPadding) {
+ if (p) {
if (!first)
- x += font->charPadding;
+ x += p;
else
first = 0;
}
@@ -399,22 +464,24 @@ */
void gdispFillString(coord_t x, coord_t y, const char *str, font_t font, color_t color, color_t bgcolor) {
/* No mutex required as we only call high level functions which have their own mutex */
- coord_t w;
+ coord_t w, h, p;
char c;
int first;
first = 1;
+ h = font->height * font->yscale;
+ p = font->charPadding * font->xscale;
while(*str) {
/* Get the next printable character */
c = *str++;
- w = _getCharWidth(font, c);
+ w = _getCharWidth(font, c) * font->xscale;
if (!w) continue;
/* Handle inter-character padding */
- if (font->charPadding) {
+ if (p) {
if (!first) {
- gdispFillArea(x, y, font->charPadding, font->height, bgcolor);
- x += font->charPadding;
+ gdispFillArea(x, y, p, h, bgcolor);
+ x += p;
} else
first = 0;
}
@@ -442,16 +509,19 @@ */
void gdispFillStringBox(coord_t x, coord_t y, coord_t cx, coord_t cy, const char* str, font_t font, color_t color, color_t bgcolor, justify_t justify) {
/* No mutex required as we only call high level functions which have their own mutex */
- coord_t w, ypos, xpos;
+ coord_t w, h, p, ypos, xpos;
char c;
int first;
const char *rstr;
+ h = font->height * font->yscale;
+ p = font->charPadding * font->xscale;
+
/* Oops - font too large for the area */
- if (font->height > cy) return;
+ if (h > cy) return;
/* See if we need to fill above the font */
- ypos = (cy - font->height)/2;
+ ypos = (cy - h + 1)/2;
if (ypos > 0) {
gdispFillArea(x, y, cx, ypos, bgcolor);
y += ypos;
@@ -459,7 +529,7 @@ }
/* See if we need to fill below the font */
- ypos = cy - font->height;
+ ypos = cy - h;
if (ypos > 0) {
gdispFillArea(x, y+cy-ypos, cx, ypos, bgcolor);
cy -= ypos;
@@ -480,13 +550,13 @@ while(*str) {
/* Get the next printable character */
c = *str++;
- w = _getCharWidth(font, c);
+ w = _getCharWidth(font, c) * font->xscale;
if (!w) continue;
/* Handle inter-character padding */
- if (font->charPadding) {
+ if (p) {
if (!first) {
- xpos += font->charPadding;
+ xpos += p;
if (xpos > ypos) break;
} else
first = 0;
@@ -507,14 +577,14 @@ for(str--; str >= rstr; str--) {
/* Get the next printable character */
c = *str;
- w = _getCharWidth(font, c);
+ w = _getCharWidth(font, c) * font->xscale;
if (!w) continue;
/* Handle inter-character padding */
- if (font->charPadding) {
+ if (p) {
if (!first) {
- if (xpos - font->charPadding < x) break;
- xpos -= font->charPadding;
+ if (xpos - p < x) break;
+ xpos -= p;
} else
first = 0;
}
@@ -541,15 +611,15 @@ while(*str) {
/* Get the next printable character */
c = *str++;
- w = _getCharWidth(font, c);
+ w = _getCharWidth(font, c) * font->xscale;
if (!w) continue;
/* Handle inter-character padding */
- if (font->charPadding) {
+ if (p) {
if (!first) {
- if (xpos + font->charPadding > x+cx) break;
- gdispFillArea(xpos, y, font->charPadding, cy, bgcolor);
- xpos += font->charPadding;
+ if (xpos + p > x+cx) break;
+ gdispFillArea(xpos, y, p, cy, bgcolor);
+ xpos += p;
} else
first = 0;
}
@@ -579,12 +649,12 @@ coord_t gdispGetFontMetric(font_t font, fontmetric_t metric) {
/* No mutex required as we only read static data */
switch(metric) {
- case fontHeight: return font->height;
- case fontDescendersHeight: return font->descenderHeight;
- case fontLineSpacing: return font->lineSpacing;
- case fontCharPadding: return font->charPadding;
- case fontMinWidth: return font->minWidth;
- case fontMaxWidth: return font->maxWidth;
+ case fontHeight: return font->height * font->yscale;
+ case fontDescendersHeight: return font->descenderHeight * font->yscale;
+ case fontLineSpacing: return font->lineSpacing * font->yscale;
+ case fontCharPadding: return font->charPadding * font->xscale;
+ case fontMinWidth: return font->minWidth * font->xscale;
+ case fontMaxWidth: return font->maxWidth * font->xscale;
}
return 0;
}
@@ -602,7 +672,7 @@ */
coord_t gdispGetCharWidth(char c, font_t font) {
/* No mutex required as we only read static data */
- return _getCharWidth(font, c);
+ return _getCharWidth(font, c) * font->xscale;
}
#endif
@@ -618,22 +688,24 @@ */
coord_t gdispGetStringWidth(const char* str, font_t font) {
/* No mutex required as we only read static data */
- coord_t w, x;
+ coord_t w, h, p, x;
char c;
int first;
first = 1;
x = 0;
+ h = font->height * font->yscale;
+ p = font->charPadding * font->xscale;
while(*str) {
/* Get the next printable character */
c = *str++;
- w = _getCharWidth(font, c);
+ w = _getCharWidth(font, c) * font->xscale;
if (!w) continue;
/* Handle inter-character padding */
- if (font->charPadding) {
+ if (p) {
if (!first)
- x += font->charPadding;
+ x += p;
else
first = 0;
}
@@ -672,45 +744,5 @@ }
#endif
-#if (GDISP_NEED_PIXELREAD && GDISP_NEED_MULTITHREAD) || defined(__DOXYGEN__)
- /**
- * @brief Get the color of a pixel.
- * @return The color of the pixel.
- *
- * @param[in] x,y The position of the pixel
- *
- * @api
- */
- color_t gdispGetPixelColor(coord_t x, coord_t y) {
- color_t c;
-
- MUTEX_ENTER
- c = gdisp_lld_getpixelcolor(x, y);
- MUTEX_EXIT
-
- return c;
- }
-#endif
-
-#if (GDISP_NEED_SCROLL && GDISP_NEED_MULTITHREAD) || defined(__DOXYGEN__)
- /**
- * @brief Scroll vertically a section of the screen.
- * @note Optional.
- * @note If lines is >= cy, it is equivelent to a area fill with bgcolor.
- *
- * @param[in] x, y The start of the area to be scrolled
- * @param[in] cx, cy The size of the area to be scrolled
- * @param[in] lines The number of lines to scroll (Can be positive or negative)
- * @param[in] bgcolor The color to fill the newly exposed area.
- *
- * @api
- */
- void gdispVerticalScroll(coord_t x, coord_t y, coord_t cx, coord_t cy, int lines, color_t bgcolor) {
- MUTEX_ENTER
- gdisp_lld_verticalscroll(x, y, cx, cy, lines, bgcolor);
- MUTEX_EXIT
- }
-#endif
-
#endif /* HAL_USE_GDISP */
/** @} */
diff --git a/halext/src/gdisp_emulation.c b/halext/src/gdisp_emulation.c index 528986c9..26562e92 100644 --- a/halext/src/gdisp_emulation.c +++ b/halext/src/gdisp_emulation.c @@ -134,33 +134,6 @@ }
#endif
-#if !GDISP_HARDWARE_BOX
- void gdisp_lld_drawbox(coord_t x, coord_t y, coord_t cx, coord_t cy, color_t color) {
- coord_t x1, y1;
-
- x1 = x+cx-1;
- y1 = y+cy-1;
-
- if (cx > 2) {
- if (cy >= 1) {
- gdisp_lld_drawline(x, y, x1, y, color);
- if (cy >= 2) {
- gdisp_lld_drawline(x, y1, x1, y1, color);
- if (cy > 2) {
- gdisp_lld_drawline(x, y+1, x, y1-1, color);
- gdisp_lld_drawline(x1, y+1, x1, y1-1, color);
- }
- }
- }
- } else if (cx == 2) {
- gdisp_lld_drawline(x, y, x, y1, color);
- gdisp_lld_drawline(x1, y, x1, y1, color);
- } else if (cx == 1) {
- gdisp_lld_drawline(x, y, x, y1, color);
- }
- }
-#endif
-
#if !GDISP_HARDWARE_FILLS
void gdisp_lld_fillarea(coord_t x, coord_t y, coord_t cx, coord_t cy, color_t color) {
#if GDISP_HARDWARE_SCROLL
@@ -310,23 +283,32 @@ void gdisp_lld_drawchar(coord_t x, coord_t y, char c, font_t font, color_t color) {
const fontcolumn_t *ptr;
fontcolumn_t column;
- coord_t width, i, j;
+ coord_t width, height, xscale, yscale;
+ coord_t i, j, xs, ys;
/* Check we actually have something to print */
width = _getCharWidth(font, c);
if (!width) return;
+ xscale = font->xscale;
+ yscale = font->yscale;
+ height = font->height * yscale;
+ width *= xscale;
+
ptr = _getCharData(font, c);
/* Loop through the data and display. The font data is LSBit first, down the column */
- for(i = 0; i < width; i++) {
+ for(i=0; i < width; i+=xscale) {
/* Get the font bitmap data for the column */
column = *ptr++;
/* Draw each pixel */
- for(j = 0; j < font->height; j++, column >>= 1) {
- if (column & 0x01)
- gdisp_lld_drawpixel(x+i, y+j, color);
+ for(j=0; j < height; j+=yscale, column >>= 1) {
+ if (column & 0x01) {
+ for(xs=0; xs < xscale; xs++)
+ for(ys=0; ys < yscale; ys++)
+ gdisp_lld_drawpixel(x+i+xs, y+j+ys, color);
+ }
}
}
}
@@ -334,17 +316,23 @@ #if GDISP_NEED_TEXT && !GDISP_HARDWARE_TEXTFILLS
void gdisp_lld_fillchar(coord_t x, coord_t y, char c, font_t font, color_t color, color_t bgcolor) {
- coord_t width;
+ coord_t width, height;
+ coord_t xscale, yscale;
/* Check we actually have something to print */
width = _getCharWidth(font, c);
if (!width) return;
+ xscale = font->xscale;
+ yscale = font->yscale;
+ height = font->height * yscale;
+ width *= xscale;
+
/* Method 1: Use background fill and then draw the text */
#if GDISP_HARDWARE_TEXT || GDISP_SOFTWARE_TEXTFILLDRAW
/* Fill the area */
- gdisp_lld_fillarea(x, y, width, font->height, bgcolor);
+ gdisp_lld_fillarea(x, y, width, height, bgcolor);
/* Draw the text */
gdisp_lld_drawchar(x, y, c, font, color);
@@ -354,24 +342,39 @@ {
const fontcolumn_t *ptr;
fontcolumn_t column;
- coord_t i, j;
-
- /* Working buffer for fast non-transparent text rendering [patch by Badger] */
- static pixel_t buf[sizeof(fontcolumn_t)*8];
+ coord_t i, j, xs, ys;
+
+ /* Working buffer for fast non-transparent text rendering [patch by Badger]
+ This needs to be larger than the largest character we can print.
+ Assume the max is double sized by one column.
+ */
+ static pixel_t buf[sizeof(fontcolumn_t)*8*2];
+
+ #if GDISP_NEED_VALIDATION
+ /* Check our buffer is big enough */
+ if (height > sizeof(buf)/sizeof(buf[0])) return;
+ #endif
ptr = _getCharData(font, c);
/* Loop through the data and display. The font data is LSBit first, down the column */
- for(i = 0; i < width; i++) {
+ for(i = 0; i < width; i+=xscale) {
/* Get the font bitmap data for the column */
column = *ptr++;
/* Draw each pixel */
- for(j = 0; j < font->height; j++, column >>= 1) {
- gdispPackPixels(buf, 1, j, 0, (column & 0x01) ? color : bgcolor);
+ for(j = 0; j < height; j+=yscale, column >>= 1) {
+ if (column & 0x01) {
+ for(ys=0; ys < yscale; ys++)
+ gdispPackPixels(buf, 1, j+ys, 0, color);
+ } else {
+ for(ys=0; ys < yscale; ys++)
+ gdispPackPixels(buf, 1, j+ys, 0, bgcolor);
+ }
}
- gdisp_lld_blitarea(x+i, y, 1, font->height, buf);
+ for(xs=0; xs < xscale; xs++)
+ gdisp_lld_blitarea(x+i+xs, y, 1, height, buf);
}
}
@@ -380,33 +383,42 @@ {
const fontcolumn_t *ptr;
fontcolumn_t column;
- coord_t i, j;
+ coord_t i, j, xs, ys;
/* Working buffer for fast non-transparent text rendering [patch by Badger]
This needs to be larger than the largest character we can print.
+ Assume the max is double sized.
*/
- static pixel_t buf[20*(sizeof(fontcolumn_t)*8)];
+ static pixel_t buf[20*(sizeof(fontcolumn_t)*8)*2];
#if GDISP_NEED_VALIDATION
/* Check our buffer is big enough */
- if (width * font->height > sizeof(buf)/sizeof(buf[0])) return;
+ if (width * height > sizeof(buf)/sizeof(buf[0])) return;
#endif
ptr = _getCharData(font, c);
/* Loop through the data and display. The font data is LSBit first, down the column */
- for(i = 0; i < width; i++) {
+ for(i = 0; i < width; i+=xscale) {
/* Get the font bitmap data for the column */
column = *ptr++;
/* Draw each pixel */
- for(j = 0; j < font->height; j++, column >>= 1) {
- gdispPackPixels(buf, width, i, j, (column & 0x01) ? color : bgcolor);
+ for(j = 0; j < height; j+=yscale, column >>= 1) {
+ if (column & 0x01) {
+ for(xs=0; xs < xscale; xs++)
+ for(ys=0; ys < yscale; ys++)
+ gdispPackPixels(buf, width, i+xs, j+ys, color);
+ } else {
+ for(xs=0; xs < xscale; xs++)
+ for(ys=0; ys < yscale; ys++)
+ gdispPackPixels(buf, width, i+xs, j+ys, bgcolor);
+ }
}
}
/* [Patch by Badger] Write all in one stroke */
- gdisp_lld_blitarea(x, y, width, font->height, buf);
+ gdisp_lld_blitarea(x, y, width, height, buf);
}
/* Method 4: Draw pixel by pixel */
@@ -414,18 +426,26 @@ {
const fontcolumn_t *ptr;
fontcolumn_t column;
- coord_t i, j;
-
+ coord_t i, j, xs, ys;
+
ptr = _getCharData(font, c);
/* Loop through the data and display. The font data is LSBit first, down the column */
- for(i = 0; i < width; i++) {
+ for(i = 0; i < width; i+=xscale) {
/* Get the font bitmap data for the column */
column = *ptr++;
/* Draw each pixel */
- for(j = 0; j < font->height; j++, column >>= 1) {
- gdisp_lld_drawpixel(x+i, y+j, (column & 0x01) ? color : bgcolor);
+ for(j = 0; j < height; j+=yscale, column >>= 1) {
+ if (column & 0x01) {
+ for(xs=0; xs < xscale; xs++)
+ for(ys=0; ys < yscale; ys++)
+ gdisp_lld_drawpixel(x+i, y+j, color);
+ } else {
+ for(xs=0; xs < xscale; xs++)
+ for(ys=0; ys < yscale; ys++)
+ gdisp_lld_drawpixel(x+i, y+j, bgcolor);
+ }
}
}
}
@@ -433,4 +453,11 @@ }
#endif
+
+#if GDISP_NEED_CONTROL && !GDISP_HARDWARE_CONTROL
+ void gdisp_lld_control(int UNUSED(what), void *UNUSED(value)) {
+ /* Ignore everything */
+ }
+#endif
+
#endif /* HAL_USE_GDISP */
diff --git a/halext/src/gdisp_fonts.c b/halext/src/gdisp_fonts.c index 0037bcc8..25a56526 100644 --- a/halext/src/gdisp_fonts.c +++ b/halext/src/gdisp_fonts.c @@ -38,7 +38,15 @@ static const uint16_t fontSmall_Offsets[];
static const fontcolumn_t fontSmall_Data[];
- const struct font fontSmall = { 11, 0, 14, 2, 2, 12, ' ', '~',
+ const struct font fontSmall = { 11, 0, 14, 2, 2, 12, ' ', '~', 1, 1,
+ fontSmall_Widths,
+ fontSmall_Offsets,
+ fontSmall_Data};
+ const struct font fontSmallDouble = { 11, 0, 14, 2, 2, 12, ' ', '~', 2, 2,
+ fontSmall_Widths,
+ fontSmall_Offsets,
+ fontSmall_Data};
+ const struct font fontSmallNarrow = { 11, 0, 14, 2, 2, 12, ' ', '~', 1, 2,
fontSmall_Widths,
fontSmall_Offsets,
fontSmall_Data};
@@ -171,11 +179,18 @@ static const uint16_t fontLarger_Offsets[];
static const fontcolumn_t fontLarger_Data[];
- const struct font fontLarger = { 12, 1, 13, 2, 2, 13, ' ', '~',
+ const struct font fontLarger = { 12, 1, 13, 2, 2, 13, ' ', '~', 1, 1,
+ fontLarger_Widths,
+ fontLarger_Offsets,
+ fontLarger_Data};
+ const struct font fontLargerDouble = { 12, 1, 13, 2, 2, 13, ' ', '~', 2, 2,
+ fontLarger_Widths,
+ fontLarger_Offsets,
+ fontLarger_Data};
+ const struct font fontLargerNarrow = { 12, 1, 13, 2, 2, 13, ' ', '~', 1, 2,
fontLarger_Widths,
fontLarger_Offsets,
fontLarger_Data};
-
static const uint8_t fontLarger_Widths[] = {
2, 3, 5, 8, 7, 13, 8, 2, 4, 4, 7, 8, 3, 4, 3, 5,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 9, 8, 9, 6,
@@ -305,7 +320,15 @@ static const uint16_t fontUI1_Offsets[];
static const fontcolumn_t fontUI1_Data[];
- const struct font fontUI1 = { 13, 0, 15, 2, 3, 13, ' ', '~',
+ const struct font fontUI1 = { 13, 0, 15, 2, 3, 13, ' ', '~', 1, 1,
+ fontUI1_Widths,
+ fontUI1_Offsets,
+ fontUI1_Data};
+ const struct font fontUI1Double = { 13, 0, 15, 2, 3, 13, ' ', '~', 2, 2,
+ fontUI1_Widths,
+ fontUI1_Offsets,
+ fontUI1_Data};
+ const struct font fontUI1Narrow = { 13, 0, 15, 2, 3, 13, ' ', '~', 1, 2,
fontUI1_Widths,
fontUI1_Offsets,
fontUI1_Data};
@@ -439,7 +462,15 @@ static const uint16_t fontUI2_Offsets[];
static const fontcolumn_t fontUI2_Data[];
- const struct font fontUI2 = { 11, 1, 13, 2, 2, 12, ' ', '~',
+ const struct font fontUI2 = { 11, 1, 13, 2, 2, 12, ' ', '~', 1, 1,
+ fontUI2_Widths,
+ fontUI2_Offsets,
+ fontUI2_Data};
+ const struct font fontUI2Double = { 11, 1, 13, 2, 2, 12, ' ', '~', 2, 2,
+ fontUI2_Widths,
+ fontUI2_Offsets,
+ fontUI2_Data};
+ const struct font fontUI2Narrow = { 11, 1, 13, 2, 2, 12, ' ', '~', 1, 2,
fontUI2_Widths,
fontUI2_Offsets,
fontUI2_Data};
@@ -576,7 +607,15 @@ static const uint16_t fontLargeNumbers_Offsets[];
static const fontcolumn_t fontLargeNumbers_Data[];
- const struct font fontLargeNumbers = { 16, 2, 21, 1, 3, 15, '%', ':',
+ const struct font fontLargeNumbers = { 16, 2, 21, 1, 3, 15, '%', ':', 1, 1,
+ fontLargeNumbers_Widths,
+ fontLargeNumbers_Offsets,
+ fontLargeNumbers_Data};
+ const struct font fontLargeNumbersDouble = { 16, 2, 21, 1, 3, 15, '%', ':', 2, 2,
+ fontLargeNumbers_Widths,
+ fontLargeNumbers_Offsets,
+ fontLargeNumbers_Data};
+ const struct font fontLargeNumbersNarrow = { 16, 2, 21, 1, 3, 15, '%', ':', 1, 2,
fontLargeNumbers_Widths,
fontLargeNumbers_Offsets,
fontLargeNumbers_Data};
|