From 81e900c03c171beb800bc29e4e91e96258533563 Mon Sep 17 00:00:00 2001 From: e2002 Date: Mon, 13 Mar 2023 17:59:55 +0300 Subject: [PATCH] clockfont_mono_070 --- examples/mytheme.h | 1 + yoRadio/src/core/config.cpp | 1 + yoRadio/src/core/config.h | 1 + yoRadio/src/core/options.h | 8 +- yoRadio/src/displays/displayGC9106.cpp | 10 +- yoRadio/src/displays/displayGC9106.h | 7 +- yoRadio/src/displays/displayGC9A01A.cpp | 10 +- yoRadio/src/displays/displayGC9A01A.h | 7 +- yoRadio/src/displays/displayILI9225.cpp | 8 +- yoRadio/src/displays/displayILI9225.h | 7 +- yoRadio/src/displays/displayILI9341.cpp | 16 +- yoRadio/src/displays/displayILI9341.h | 7 +- yoRadio/src/displays/displayILI9488.cpp | 10 +- yoRadio/src/displays/displayILI9488.h | 7 +- yoRadio/src/displays/displayN5110.h | 7 +- yoRadio/src/displays/displaySSD1322.cpp | 17 +- yoRadio/src/displays/displaySSD1322.h | 7 +- yoRadio/src/displays/displaySSD1327.cpp | 11 +- yoRadio/src/displays/displaySSD1327.h | 7 +- yoRadio/src/displays/displayST7735.cpp | 10 +- yoRadio/src/displays/displayST7735.h | 7 +- yoRadio/src/displays/displayST7789.cpp | 12 +- yoRadio/src/displays/displayST7789.h | 7 +- yoRadio/src/displays/displayST7796.cpp | 10 +- yoRadio/src/displays/displayST7796.h | 8 +- .../src/displays/fonts/DS_DIGI15pt7b_mono.h | 60 +++ .../src/displays/fonts/DS_DIGI28pt7b_mono.h | 109 ++++++ .../src/displays/fonts/DS_DIGI42pt7b_mono.h | 199 ++++++++++ .../src/displays/fonts/DS_DIGI56pt7b_mono.h | 350 ++++++++++++++++++ 29 files changed, 882 insertions(+), 39 deletions(-) create mode 100644 yoRadio/src/displays/fonts/DS_DIGI15pt7b_mono.h create mode 100644 yoRadio/src/displays/fonts/DS_DIGI28pt7b_mono.h create mode 100644 yoRadio/src/displays/fonts/DS_DIGI42pt7b_mono.h create mode 100644 yoRadio/src/displays/fonts/DS_DIGI56pt7b_mono.h diff --git a/examples/mytheme.h b/examples/mytheme.h index 3381227..af7639f 100644 --- a/examples/mytheme.h +++ b/examples/mytheme.h @@ -26,6 +26,7 @@ //#define COLOR_VU_MAX 152, 138, 138 /* max of VU meter */ //#define COLOR_VU_MIN 250, 130, 130 /* min of VU meter */ //#define COLOR_CLOCK 60, 224, 33 /* clock color */ +//#define COLOR_CLOCK_BG 29, 29, 0 /* clock color background */ //#define COLOR_SECONDS 0, 255, 255 /* seconds color (DSP_ST7789, DSP_ILI9341, DSP_ILI9225) */ //#define COLOR_DAY_OF_W 255, 0, 0 /* day of week color (DSP_ST7789, DSP_ILI9341, DSP_ILI9225) */ //#define COLOR_DATE 0, 0, 255 /* date color (DSP_ST7789, DSP_ILI9341, DSP_ILI9225) */ diff --git a/yoRadio/src/core/config.cpp b/yoRadio/src/core/config.cpp index 5bcaf31..c45fc4d 100644 --- a/yoRadio/src/core/config.cpp +++ b/yoRadio/src/core/config.cpp @@ -103,6 +103,7 @@ void Config::loadTheme(){ theme.vumax = color565(COLOR_VU_MAX); theme.vumin = color565(COLOR_VU_MIN); theme.clock = color565(COLOR_CLOCK); + theme.clockbg = color565(COLOR_CLOCK_BG); theme.seconds = color565(COLOR_SECONDS); theme.dow = color565(COLOR_DAY_OF_W); theme.date = color565(COLOR_DATE); diff --git a/yoRadio/src/core/config.h b/yoRadio/src/core/config.h index bf272c9..7888d5c 100644 --- a/yoRadio/src/core/config.h +++ b/yoRadio/src/core/config.h @@ -52,6 +52,7 @@ struct theme_t { uint16_t vumax; uint16_t vumin; uint16_t clock; + uint16_t clockbg; uint16_t seconds; uint16_t dow; uint16_t date; diff --git a/yoRadio/src/core/options.h b/yoRadio/src/core/options.h index 2006612..f9460c7 100644 --- a/yoRadio/src/core/options.h +++ b/yoRadio/src/core/options.h @@ -1,7 +1,7 @@ #ifndef options_h #define options_h -#define YOVERSION "0.9.058" +#define YOVERSION "0.9.070" /******************************************************* DO NOT EDIT THIS FILE. @@ -296,6 +296,9 @@ The connection tables are located here https://github.com/e2002/yoradio#connecti #ifndef RSSI_STEPS #define RSSI_STEPS -50,-60,-70,-80 #endif +#ifndef CLOCKFONT_MONO + #define CLOCKFONT_MONO true // monospace clock font +#endif /* *** ST7735 display submodel *** INITR_BLACKTAB // 1.8' https://aliexpress.ru/item/1005002822797745.html @@ -349,6 +352,9 @@ The connection tables are located here https://github.com/e2002/yoradio#connecti #ifndef COLOR_CLOCK #define COLOR_CLOCK 231, 211, 90 #endif +#ifndef COLOR_CLOCK_BG + #define COLOR_CLOCK_BG 27, 27, 27 +#endif #ifndef COLOR_SECONDS #define COLOR_SECONDS 231, 211, 90 #endif diff --git a/yoRadio/src/displays/displayGC9106.cpp b/yoRadio/src/displays/displayGC9106.cpp index cd08859..04f00db 100644 --- a/yoRadio/src/displays/displayGC9106.cpp +++ b/yoRadio/src/displays/displayGC9106.cpp @@ -89,7 +89,7 @@ void DspCore::_getTimeBounds() { void DspCore::_clockSeconds(){ setTextSize(1); setFont(&DS_DIGI28pt7b); - setTextColor((network.timeinfo.tm_sec % 2 == 0) ? config.theme.clock : config.theme.background, config.theme.background); + setTextColor((network.timeinfo.tm_sec % 2 == 0) ? config.theme.clock : (CLOCKFONT_MONO?config.theme.clockbg:config.theme.background), config.theme.background); setCursor(_timeleft+_dotsLeft, clockTop); print(":"); /* print dots */ setFont(); @@ -98,10 +98,16 @@ void DspCore::_clockSeconds(){ void DspCore::_clockDate(){ } void DspCore::_clockTime(){ - if(_oldtimeleft>0) dsp.fillRect(_oldtimeleft, clockTop-clockTimeHeight+1, _oldtimewidth, clockTimeHeight, config.theme.background); + if(_oldtimeleft>0 && !CLOCKFONT_MONO) dsp.fillRect(_oldtimeleft, clockTop-clockTimeHeight+1, _oldtimewidth, clockTimeHeight, config.theme.background); _timeleft = (width()/2 - _timewidth/2)+clockRightSpace; setTextSize(1); setFont(&DS_DIGI28pt7b); + + if(CLOCKFONT_MONO) { + setCursor(_timeleft, clockTop); + setTextColor(config.theme.clockbg, config.theme.background); + print("88:88"); + } setTextColor(config.theme.clock, config.theme.background); setCursor(_timeleft, clockTop); print(_timeBuf); diff --git a/yoRadio/src/displays/displayGC9106.h b/yoRadio/src/displays/displayGC9106.h index 4cfd6c7..e423331 100644 --- a/yoRadio/src/displays/displayGC9106.h +++ b/yoRadio/src/displays/displayGC9106.h @@ -5,7 +5,12 @@ #include "Arduino.h" #include #include "../Adafruit_GC9106Ex/Adafruit_GC9106Ex.h" // https://github.com/prenticedavid/Adafruit_GC9102_kbv -#include "fonts/DS_DIGI28pt7b.h" // https://tchapi.github.io/Adafruit-GFX-Font-Customiser/ + +#if CLOCKFONT_MONO + #include "fonts/DS_DIGI28pt7b_mono.h" // https://tchapi.github.io/Adafruit-GFX-Font-Customiser/ +#else + #include "fonts/DS_DIGI28pt7b.h" +#endif #include "tools/l10n.h" #define CHARWIDTH 6 diff --git a/yoRadio/src/displays/displayGC9A01A.cpp b/yoRadio/src/displays/displayGC9A01A.cpp index 0092465..b1c1749 100644 --- a/yoRadio/src/displays/displayGC9A01A.cpp +++ b/yoRadio/src/displays/displayGC9A01A.cpp @@ -94,7 +94,7 @@ void DspCore::_clockSeconds(){ print(_bufforseconds); /* print seconds */ setTextSize(1); setFont(&DS_DIGI42pt7b); - setTextColor((network.timeinfo.tm_sec % 2 == 0) ? config.theme.clock : config.theme.background, config.theme.background); + setTextColor((network.timeinfo.tm_sec % 2 == 0) ? config.theme.clock : (CLOCKFONT_MONO?config.theme.clockbg:config.theme.background), config.theme.background); setCursor(_timeleft+_dotsLeft, clockTop); print(":"); /* print dots */ setFont(); @@ -116,11 +116,17 @@ void DspCore::_clockDate(){ } void DspCore::_clockTime(){ - if(_oldtimeleft>0) dsp.fillRect(_oldtimeleft, clockTop-clockTimeHeight+1, _oldtimewidth, clockTimeHeight, config.theme.background); + if(_oldtimeleft>0 && !CLOCKFONT_MONO) dsp.fillRect(_oldtimeleft, clockTop-clockTimeHeight+1, _oldtimewidth, clockTimeHeight, config.theme.background); _timeleft = width()-clockRightSpace-CHARWIDTH*3*2-24-_timewidth; clearClock(); setTextSize(1); setFont(&DS_DIGI42pt7b); + + if(CLOCKFONT_MONO) { + setCursor(_timeleft, clockTop); + setTextColor(config.theme.clockbg, config.theme.background); + print("88:88"); + } setTextColor(config.theme.clock, config.theme.background); setCursor(_timeleft, clockTop); print(_timeBuf); diff --git a/yoRadio/src/displays/displayGC9A01A.h b/yoRadio/src/displays/displayGC9A01A.h index f6c39b2..94c0c85 100644 --- a/yoRadio/src/displays/displayGC9A01A.h +++ b/yoRadio/src/displays/displayGC9A01A.h @@ -5,7 +5,12 @@ #include "Arduino.h" #include #include "../Adafruit_GC9A01A/Adafruit_GC9A01A.h" -#include "fonts/DS_DIGI42pt7b.h" // https://tchapi.github.io/Adafruit-GFX-Font-Customiser/ + +#if CLOCKFONT_MONO + #include "fonts/DS_DIGI42pt7b_mono.h" // https://tchapi.github.io/Adafruit-GFX-Font-Customiser/ +#else + #include "fonts/DS_DIGI42pt7b.h" +#endif #include "tools/l10n.h" #define CHARWIDTH 6 diff --git a/yoRadio/src/displays/displayILI9225.cpp b/yoRadio/src/displays/displayILI9225.cpp index 7f1be4f..1670f70 100644 --- a/yoRadio/src/displays/displayILI9225.cpp +++ b/yoRadio/src/displays/displayILI9225.cpp @@ -188,10 +188,16 @@ void DspCore::_clockDate(){ } void DspCore::_clockTime(){ - if(_oldtimeleft>0) fillRect(_oldtimeleft, clockTop-clockTimeHeight+1, _oldtimewidth, clockTimeHeight, config.theme.background); + if(_oldtimeleft>0 && !CLOCKFONT_MONO) fillRect(_oldtimeleft, clockTop-clockTimeHeight+1, _oldtimewidth, clockTimeHeight, config.theme.background); _timeleft = width()-clockRightSpace-CHARWIDTH*2*2-24-_timewidth; setTextSize(1); setFont(&DS_DIGI28pt7b); + + if(CLOCKFONT_MONO) { + setCursor(_timeleft, clockTop); + setTextColor(config.theme.clockbg, config.theme.background); + print("88:88"); + } setTextColor(config.theme.clock, config.theme.background); setCursor(_timeleft, clockTop); print(_timeBuf); diff --git a/yoRadio/src/displays/displayILI9225.h b/yoRadio/src/displays/displayILI9225.h index aeea31d..5062b4e 100644 --- a/yoRadio/src/displays/displayILI9225.h +++ b/yoRadio/src/displays/displayILI9225.h @@ -4,7 +4,12 @@ //================================================== #include "Arduino.h" #include "../ILI9225Fix/TFT_22_ILI9225Fix.h" -#include "fonts/DS_DIGI28pt7b.h" // https://tchapi.github.io/Adafruit-GFX-Font-Customiser/ + +#if CLOCKFONT_MONO + #include "fonts/DS_DIGI28pt7b_mono.h" // https://tchapi.github.io/Adafruit-GFX-Font-Customiser/ +#else + #include "fonts/DS_DIGI28pt7b.h" +#endif #include "tools/l10n.h" #define CHARWIDTH 6 diff --git a/yoRadio/src/displays/displayILI9341.cpp b/yoRadio/src/displays/displayILI9341.cpp index 740acd4..c9b7a8b 100644 --- a/yoRadio/src/displays/displayILI9341.cpp +++ b/yoRadio/src/displays/displayILI9341.cpp @@ -85,7 +85,13 @@ void DspCore::_clockSeconds(){ setTextColor(config.theme.seconds, config.theme.background); setCursor(width() - 8 - clockRightSpace - CHARWIDTH*3*2, clockTop-clockTimeHeight+1); sprintf(_bufforseconds, "%02d", network.timeinfo.tm_sec); - print(_bufforseconds); /* print seconds */ + print(_bufforseconds); + setTextSize(1); + setFont(&DS_DIGI42pt7b); + setTextColor((network.timeinfo.tm_sec % 2 == 0) ? config.theme.clock : (CLOCKFONT_MONO?config.theme.clockbg:config.theme.background), config.theme.background); + setCursor(_timeleft+_dotsLeft, clockTop); + print(":"); /* print dots */ + setFont(); /* print seconds */ } void DspCore::_clockDate(){ @@ -104,10 +110,16 @@ void DspCore::_clockDate(){ } void DspCore::_clockTime(){ - if(_oldtimeleft>0) dsp.fillRect(_oldtimeleft, clockTop-clockTimeHeight+1, _oldtimewidth, clockTimeHeight, config.theme.background); + if(_oldtimeleft>0 && !CLOCKFONT_MONO) dsp.fillRect(_oldtimeleft, clockTop-clockTimeHeight+1, _oldtimewidth, clockTimeHeight, config.theme.background); _timeleft = width()-clockRightSpace-CHARWIDTH*3*2-24-_timewidth; setTextSize(1); setFont(&DS_DIGI42pt7b); + + if(CLOCKFONT_MONO) { + setCursor(_timeleft, clockTop); + setTextColor(config.theme.clockbg, config.theme.background); + print("88:88"); + } setTextColor(config.theme.clock, config.theme.background); setCursor(_timeleft, clockTop); print(_timeBuf); diff --git a/yoRadio/src/displays/displayILI9341.h b/yoRadio/src/displays/displayILI9341.h index a52287d..88c80d2 100644 --- a/yoRadio/src/displays/displayILI9341.h +++ b/yoRadio/src/displays/displayILI9341.h @@ -5,7 +5,12 @@ #include "Arduino.h" #include #include -#include "fonts/DS_DIGI42pt7b.h" // https://tchapi.github.io/Adafruit-GFX-Font-Customiser/ + +#if CLOCKFONT_MONO + #include "fonts/DS_DIGI42pt7b_mono.h" // https://tchapi.github.io/Adafruit-GFX-Font-Customiser/ +#else + #include "fonts/DS_DIGI42pt7b.h" +#endif #include "tools/l10n.h" #define CHARWIDTH 6 diff --git a/yoRadio/src/displays/displayILI9488.cpp b/yoRadio/src/displays/displayILI9488.cpp index ab0af1a..93e20f5 100644 --- a/yoRadio/src/displays/displayILI9488.cpp +++ b/yoRadio/src/displays/displayILI9488.cpp @@ -95,7 +95,7 @@ void DspCore::_clockSeconds(){ print(_bufforseconds); /* print seconds */ setTextSize(1); setFont(&DS_DIGI56pt7b); - setTextColor((network.timeinfo.tm_sec % 2 == 0) ? config.theme.clock : config.theme.background, config.theme.background); + setTextColor((network.timeinfo.tm_sec % 2 == 0) ? config.theme.clock : (CLOCKFONT_MONO?config.theme.clockbg:config.theme.background), config.theme.background); setCursor(_timeleft+_dotsLeft, clockTop); print(":"); /* print dots */ setFont(); @@ -118,10 +118,16 @@ void DspCore::_clockDate(){ } void DspCore::_clockTime(){ - if(_oldtimeleft>0) dsp.fillRect(_oldtimeleft, clockTop-clockTimeHeight+1, _oldtimewidth, clockTimeHeight, config.theme.background); + if(_oldtimeleft>0 && !CLOCKFONT_MONO) dsp.fillRect(_oldtimeleft, clockTop-clockTimeHeight+1, _oldtimewidth, clockTimeHeight, config.theme.background); _timeleft = width()-clockRightSpace-CHARWIDTH*4*2-24-_timewidth; setTextSize(1); setFont(&DS_DIGI56pt7b); + + if(CLOCKFONT_MONO) { + setCursor(_timeleft, clockTop); + setTextColor(config.theme.clockbg, config.theme.background); + print("88:88"); + } setTextColor(config.theme.clock, config.theme.background); setCursor(_timeleft, clockTop); print(_timeBuf); diff --git a/yoRadio/src/displays/displayILI9488.h b/yoRadio/src/displays/displayILI9488.h index 82b1594..489c2d3 100644 --- a/yoRadio/src/displays/displayILI9488.h +++ b/yoRadio/src/displays/displayILI9488.h @@ -5,7 +5,12 @@ #include "Arduino.h" #include #include "../ILI9488/ILI9486_SPI.h" -#include "fonts/DS_DIGI56pt7b.h" // https://tchapi.github.io/Adafruit-GFX-Font-Customiser/ + +#if CLOCKFONT_MONO + #include "fonts/DS_DIGI56pt7b_mono.h" // https://tchapi.github.io/Adafruit-GFX-Font-Customiser/ +#else + #include "fonts/DS_DIGI56pt7b.h" +#endif #include "tools/l10n.h" #define CHARWIDTH 6 diff --git a/yoRadio/src/displays/displayN5110.h b/yoRadio/src/displays/displayN5110.h index 752d4cf..9e7d65d 100644 --- a/yoRadio/src/displays/displayN5110.h +++ b/yoRadio/src/displays/displayN5110.h @@ -7,7 +7,12 @@ #include #include "fonts/TinyFont5.h" #include "fonts/TinyFont6.h" -#include "fonts/DS_DIGI15pt7b.h" + +#if CLOCKFONT_MONO + #include "fonts/DS_DIGI15pt7b_mono.h" +#else + #include "fonts/DS_DIGI15pt7b.h" +#endif #include "tools/l10n.h" #define CHARWIDTH 6 diff --git a/yoRadio/src/displays/displaySSD1322.cpp b/yoRadio/src/displays/displaySSD1322.cpp index eecdfc3..b253b01 100644 --- a/yoRadio/src/displays/displaySSD1322.cpp +++ b/yoRadio/src/displays/displaySSD1322.cpp @@ -51,6 +51,7 @@ void DspCore::initDisplay() { config.theme.metafill = TFT_BG; #endif config.theme.clock = TFT_FG; + config.theme.clockbg = GRAY_1; config.theme.weather = GRAY_2; config.theme.title1 = GRAY_B; config.theme.title2 = GRAY_3; @@ -136,25 +137,25 @@ void DspCore::_getTimeBounds() { void DspCore::_clockSeconds(){ setTextSize(1); setFont(&DS_DIGI28pt7b); - setTextColor((network.timeinfo.tm_sec % 2 == 0) ? config.theme.clock : config.theme.background, config.theme.background); + setTextColor((network.timeinfo.tm_sec % 2 == 0) ? config.theme.clock : (CLOCKFONT_MONO?config.theme.clockbg:config.theme.background), config.theme.background); setCursor(_timeleft+_dotsLeft, clockTop); print(":"); setFont(); - /* - setTextSize(1); - setCursor(_timeleft+_timewidth+2, clockTop-CHARHEIGHT*2-1); - setTextColor(config.theme.clock, config.theme.background); - sprintf(_bufforseconds, "%02d", network.timeinfo.tm_sec); - print(_bufforseconds); */ } void DspCore::_clockDate(){ } void DspCore::_clockTime(){ - if(_oldtimeleft>0) dsp.fillRect(_oldtimeleft, clockTop-clockTimeHeight+1, _oldtimewidth+CHARWIDTH*2+2, clockTimeHeight, config.theme.background); + if(_oldtimeleft>0 && !CLOCKFONT_MONO) dsp.fillRect(_oldtimeleft, clockTop-clockTimeHeight+1, _oldtimewidth+CHARWIDTH*2+2, clockTimeHeight, config.theme.background); _timeleft = (width()/*/2*/ - _timewidth/*/2*/)-clockRightSpace; setTextSize(1); setFont(&DS_DIGI28pt7b); + + if(CLOCKFONT_MONO) { + setCursor(_timeleft, clockTop); + setTextColor(config.theme.clockbg, config.theme.background); + print("88:88"); + } setTextColor(config.theme.clock, config.theme.background); setCursor(_timeleft, clockTop); print(_timeBuf); diff --git a/yoRadio/src/displays/displaySSD1322.h b/yoRadio/src/displays/displaySSD1322.h index 56fbbf4..81cfc17 100644 --- a/yoRadio/src/displays/displaySSD1322.h +++ b/yoRadio/src/displays/displaySSD1322.h @@ -5,7 +5,12 @@ #include "Arduino.h" #include #include "../SSD1322/SSD1322.h" -#include "fonts/DS_DIGI28pt7b.h" + +#if CLOCKFONT_MONO + #include "fonts/DS_DIGI28pt7b_mono.h" // https://tchapi.github.io/Adafruit-GFX-Font-Customiser/ +#else + #include "fonts/DS_DIGI28pt7b.h" +#endif #include "tools/l10n.h" #define CHARWIDTH 6 diff --git a/yoRadio/src/displays/displaySSD1327.cpp b/yoRadio/src/displays/displaySSD1327.cpp index 46f55a4..d6ae85a 100644 --- a/yoRadio/src/displays/displaySSD1327.cpp +++ b/yoRadio/src/displays/displaySSD1327.cpp @@ -38,6 +38,7 @@ void DspCore::initDisplay() { config.theme.title1 = TFT_LOGO; config.theme.title2 = SILVER; config.theme.clock = TFT_LOGO; + config.theme.clockbg = DARK_GRAY; config.theme.rssi = TFT_FG; config.theme.weather = ORANGE; config.theme.ip = SILVER; @@ -117,7 +118,7 @@ void DspCore::_getTimeBounds() { void DspCore::_clockSeconds(){ setTextSize(1); setFont(&DS_DIGI28pt7b); - setTextColor((network.timeinfo.tm_sec % 2 == 0) ? config.theme.clock : config.theme.background, config.theme.background); + setTextColor((network.timeinfo.tm_sec % 2 == 0) ? config.theme.clock : (CLOCKFONT_MONO?config.theme.clockbg:config.theme.background), config.theme.background); setCursor(_timeleft+_dotsLeft, clockTop); print(":"); /* print dots */ setFont(); @@ -126,10 +127,16 @@ void DspCore::_clockSeconds(){ void DspCore::_clockDate(){ } void DspCore::_clockTime(){ - if(_oldtimeleft>0) dsp.fillRect(_oldtimeleft, clockTop-clockTimeHeight+1, _oldtimewidth, clockTimeHeight, config.theme.background); + if(_oldtimeleft>0 && !CLOCKFONT_MONO) dsp.fillRect(_oldtimeleft, clockTop-clockTimeHeight+1, _oldtimewidth, clockTimeHeight, config.theme.background); _timeleft = (width()/2 - _timewidth/2)+clockRightSpace; setTextSize(1); setFont(&DS_DIGI28pt7b); + + if(CLOCKFONT_MONO) { + setCursor(_timeleft, clockTop); + setTextColor(config.theme.clockbg, config.theme.background); + print("88:88"); + } setTextColor(config.theme.clock, config.theme.background); setCursor(_timeleft, clockTop); print(_timeBuf); diff --git a/yoRadio/src/displays/displaySSD1327.h b/yoRadio/src/displays/displaySSD1327.h index c027902..9c71e8e 100644 --- a/yoRadio/src/displays/displaySSD1327.h +++ b/yoRadio/src/displays/displaySSD1327.h @@ -5,7 +5,12 @@ #include "Arduino.h" #include #include -#include "fonts/DS_DIGI28pt7b.h" // https://tchapi.github.io/Adafruit-GFX-Font-Customiser/ + +#if CLOCKFONT_MONO + #include "fonts/DS_DIGI28pt7b_mono.h" // https://tchapi.github.io/Adafruit-GFX-Font-Customiser/ +#else + #include "fonts/DS_DIGI28pt7b.h" +#endif #include "tools/l10n.h" #define CHARWIDTH 6 diff --git a/yoRadio/src/displays/displayST7735.cpp b/yoRadio/src/displays/displayST7735.cpp index 9b720f2..40d6620 100644 --- a/yoRadio/src/displays/displayST7735.cpp +++ b/yoRadio/src/displays/displayST7735.cpp @@ -95,7 +95,7 @@ void DspCore::_getTimeBounds() { void DspCore::_clockSeconds(){ setTextSize(1); setFont(&DS_DIGI28pt7b); - setTextColor((network.timeinfo.tm_sec % 2 == 0) ? config.theme.clock : config.theme.background, config.theme.background); + setTextColor((network.timeinfo.tm_sec % 2 == 0) ? config.theme.clock : (CLOCKFONT_MONO?config.theme.clockbg:config.theme.background), config.theme.background); setCursor(_timeleft+_dotsLeft, clockTop); print(":"); /* print dots */ setFont(); @@ -104,10 +104,16 @@ void DspCore::_clockSeconds(){ void DspCore::_clockDate(){ } void DspCore::_clockTime(){ - if(_oldtimeleft>0) dsp.fillRect(_oldtimeleft, clockTop-clockTimeHeight+1, _oldtimewidth, clockTimeHeight, config.theme.background); + if(_oldtimeleft>0 && !CLOCKFONT_MONO) dsp.fillRect(_oldtimeleft, clockTop-clockTimeHeight+1, _oldtimewidth, clockTimeHeight, config.theme.background); _timeleft = (width()/2 - _timewidth/2)+clockRightSpace; setTextSize(1); setFont(&DS_DIGI28pt7b); + + if(CLOCKFONT_MONO) { + setCursor(_timeleft, clockTop); + setTextColor(config.theme.clockbg, config.theme.background); + print("88:88"); + } setTextColor(config.theme.clock, config.theme.background); setCursor(_timeleft, clockTop); print(_timeBuf); diff --git a/yoRadio/src/displays/displayST7735.h b/yoRadio/src/displays/displayST7735.h index 9e59e4f..4e387c4 100644 --- a/yoRadio/src/displays/displayST7735.h +++ b/yoRadio/src/displays/displayST7735.h @@ -5,7 +5,12 @@ #include "Arduino.h" #include #include -#include "fonts/DS_DIGI28pt7b.h" // https://tchapi.github.io/Adafruit-GFX-Font-Customiser/ + +#if CLOCKFONT_MONO + #include "fonts/DS_DIGI28pt7b_mono.h" // https://tchapi.github.io/Adafruit-GFX-Font-Customiser/ +#else + #include "fonts/DS_DIGI28pt7b.h" +#endif #include "tools/l10n.h" #define CHARWIDTH 6 diff --git a/yoRadio/src/displays/displayST7789.cpp b/yoRadio/src/displays/displayST7789.cpp index 9901390..16ccd2f 100644 --- a/yoRadio/src/displays/displayST7789.cpp +++ b/yoRadio/src/displays/displayST7789.cpp @@ -95,7 +95,7 @@ void DspCore::_clockSeconds(){ print(_bufforseconds); /* print seconds */ setTextSize(1); setFont(&DS_DIGI42pt7b); - setTextColor((network.timeinfo.tm_sec % 2 == 0) ? config.theme.clock : config.theme.background, config.theme.background); + setTextColor((network.timeinfo.tm_sec % 2 == 0) ? config.theme.clock : (CLOCKFONT_MONO?config.theme.clockbg:config.theme.background), config.theme.background); setCursor(_timeleft+_dotsLeft, clockTop); print(":"); /* print dots */ setFont(); @@ -117,12 +117,18 @@ void DspCore::_clockDate(){ } void DspCore::_clockTime(){ - if(_oldtimeleft>0) dsp.fillRect(_oldtimeleft, clockTop-clockTimeHeight+1, _oldtimewidth, clockTimeHeight, config.theme.background); + if(_oldtimeleft>0 && !CLOCKFONT_MONO) dsp.fillRect(_oldtimeleft, clockTop-clockTimeHeight+1, _oldtimewidth, clockTimeHeight, config.theme.background); _timeleft = width()-clockRightSpace-CHARWIDTH*3*2-24-_timewidth; setTextSize(1); setFont(&DS_DIGI42pt7b); - setTextColor(config.theme.clock, config.theme.background); + + if(CLOCKFONT_MONO) { + setCursor(_timeleft, clockTop); + setTextColor(config.theme.clockbg, config.theme.background); + print("88:88"); + } setCursor(_timeleft, clockTop); + setTextColor(config.theme.clock, config.theme.background); print(_timeBuf); setFont(); strlcpy(_oldTimeBuf, _timeBuf, sizeof(_timeBuf)); diff --git a/yoRadio/src/displays/displayST7789.h b/yoRadio/src/displays/displayST7789.h index 795635b..933048f 100644 --- a/yoRadio/src/displays/displayST7789.h +++ b/yoRadio/src/displays/displayST7789.h @@ -5,7 +5,12 @@ #include "Arduino.h" #include #include -#include "fonts/DS_DIGI42pt7b.h" // https://tchapi.github.io/Adafruit-GFX-Font-Customiser/ + +#if CLOCKFONT_MONO + #include "fonts/DS_DIGI42pt7b_mono.h" // https://tchapi.github.io/Adafruit-GFX-Font-Customiser/ +#else + #include "fonts/DS_DIGI42pt7b.h" +#endif #include "tools/l10n.h" #define CHARWIDTH 6 diff --git a/yoRadio/src/displays/displayST7796.cpp b/yoRadio/src/displays/displayST7796.cpp index 9ecd809..bbdcd0a 100644 --- a/yoRadio/src/displays/displayST7796.cpp +++ b/yoRadio/src/displays/displayST7796.cpp @@ -94,7 +94,7 @@ void DspCore::_clockSeconds(){ print(_bufforseconds); /* print seconds */ setTextSize(1); setFont(&DS_DIGI56pt7b); - setTextColor((network.timeinfo.tm_sec % 2 == 0) ? config.theme.clock : config.theme.background, config.theme.background); + setTextColor((network.timeinfo.tm_sec % 2 == 0) ? config.theme.clock : (CLOCKFONT_MONO?config.theme.clockbg:config.theme.background), config.theme.background); setCursor(_timeleft+_dotsLeft, clockTop); print(":"); /* print dots */ setFont(); @@ -117,10 +117,16 @@ void DspCore::_clockDate(){ } void DspCore::_clockTime(){ - if(_oldtimeleft>0) dsp.fillRect(_oldtimeleft, clockTop-clockTimeHeight+1, _oldtimewidth, clockTimeHeight, config.theme.background); + if(_oldtimeleft>0 && !CLOCKFONT_MONO) dsp.fillRect(_oldtimeleft, clockTop-clockTimeHeight+1, _oldtimewidth, clockTimeHeight, config.theme.background); _timeleft = width()-clockRightSpace-CHARWIDTH*4*2-24-_timewidth; setTextSize(1); setFont(&DS_DIGI56pt7b); + + if(CLOCKFONT_MONO) { + setCursor(_timeleft, clockTop); + setTextColor(config.theme.clockbg, config.theme.background); + print("88:88"); + } setTextColor(config.theme.clock, config.theme.background); setCursor(_timeleft, clockTop); print(_timeBuf); diff --git a/yoRadio/src/displays/displayST7796.h b/yoRadio/src/displays/displayST7796.h index 586f85b..5ee94a8 100644 --- a/yoRadio/src/displays/displayST7796.h +++ b/yoRadio/src/displays/displayST7796.h @@ -4,9 +4,13 @@ #include "Arduino.h" #include -//#include #include "../Adafruit_ST7796S/Adafruit_ST7796S_kbv.h" -#include "fonts/DS_DIGI56pt7b.h" // https://tchapi.github.io/Adafruit-GFX-Font-Customiser/ + +#if CLOCKFONT_MONO + #include "fonts/DS_DIGI56pt7b_mono.h" // https://tchapi.github.io/Adafruit-GFX-Font-Customiser/ +#else + #include "fonts/DS_DIGI56pt7b.h" +#endif #include "tools/l10n.h" #define CHARWIDTH 6 diff --git a/yoRadio/src/displays/fonts/DS_DIGI15pt7b_mono.h b/yoRadio/src/displays/fonts/DS_DIGI15pt7b_mono.h new file mode 100644 index 0000000..8770177 --- /dev/null +++ b/yoRadio/src/displays/fonts/DS_DIGI15pt7b_mono.h @@ -0,0 +1,60 @@ +const uint8_t DS_DIGI15pt7bBitmaps[] PROGMEM = { + 0x7F, 0xFF, 0x47, 0xFF, 0xF4, 0xF0, 0x7F, 0xD7, 0xF7, 0x7D, 0xF0, 0x7E, + 0x0F, 0xC1, 0xF8, 0x3E, 0x03, 0x80, 0x20, 0x02, 0x00, 0xE0, 0x3E, 0x0F, + 0xC1, 0xF8, 0x3F, 0x07, 0xDF, 0x77, 0xF5, 0xFF, 0x00, 0x05, 0xFF, 0xFB, + 0x20, 0xBF, 0xFF, 0x64, 0x00, 0x7F, 0xC7, 0xF4, 0x7D, 0x80, 0x70, 0x0E, + 0x01, 0xC0, 0x38, 0x03, 0x3F, 0xAF, 0xFA, 0xFE, 0x60, 0x0E, 0x01, 0xC0, + 0x38, 0x07, 0x00, 0xDF, 0x17, 0xF1, 0xFF, 0x00, 0x7F, 0xC7, 0xF4, 0x7D, + 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x03, 0x3F, 0xAF, 0xF8, 0xFE, 0x80, + 0x30, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x1F, 0x67, 0xF5, 0xFF, 0x00, 0x00, + 0x10, 0x07, 0x01, 0xF0, 0x7E, 0x0F, 0xC1, 0xF8, 0x3E, 0x03, 0xBF, 0xAF, + 0xF8, 0xFE, 0x80, 0x30, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0x60, 0x04, + 0x00, 0x00, 0x7F, 0xD7, 0xF3, 0x7C, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x06, + 0x00, 0xBF, 0x8F, 0xF8, 0xFE, 0x80, 0x30, 0x0E, 0x01, 0xC0, 0x38, 0x07, + 0x1F, 0x67, 0xF5, 0xFF, 0x00, 0x7F, 0xD7, 0xF3, 0x7C, 0x70, 0x0E, 0x01, + 0xC0, 0x38, 0x06, 0x00, 0xBF, 0x8F, 0xFA, 0xFE, 0xE0, 0x3E, 0x0F, 0xC1, + 0xF8, 0x3F, 0x07, 0xDF, 0x77, 0xF5, 0xFF, 0x00, 0x7F, 0xC7, 0xF4, 0x7D, + 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x03, 0x00, 0x20, 0x00, 0x00, 0x80, + 0x30, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0x60, 0x04, 0x00, 0x00, 0x7F, + 0xD7, 0xF7, 0x7D, 0xF0, 0x7E, 0x0F, 0xC1, 0xF8, 0x3E, 0x03, 0xBF, 0xAF, + 0xFA, 0xFE, 0xE0, 0x3E, 0x0F, 0xC1, 0xF8, 0x3F, 0x07, 0xCE, 0x77, 0xF5, + 0xFF, 0x00, 0x7F, 0xD7, 0xF7, 0x7D, 0xF0, 0x7E, 0x0F, 0xC1, 0xF8, 0x3E, + 0x03, 0xBF, 0xAF, 0xF8, 0xFE, 0x80, 0x30, 0x0E, 0x01, 0xC0, 0x38, 0x07, + 0x1F, 0x67, 0xF5, 0xFF, 0x00, 0xFF, 0x80, 0x00, 0x1F, 0xF0, 0x00, 0x00 +}; + +const GFXglyph DS_DIGI15pt7bGlyphs[] PROGMEM = { + { 0, 0, 0, 6, 0, 1 }, // 0x20 ' ' + { 0, 0, 0, 0, 0, 0 }, // 0x21 '!' + { 0, 0, 0, 0, 0, 0 }, // 0x22 '"' + { 0, 0, 0, 0, 0, 0 }, // 0x23 '#' + { 0, 0, 0, 0, 0, 0 }, // 0x24 '$' + { 0, 0, 0, 0, 0, 0 }, // 0x25 '%' + { 0, 0, 0, 0, 0, 0 }, // 0x26 '&' + { 0, 0, 0, 0, 0, 0 }, // 0x27 ''' + { 0, 0, 0, 0, 0, 0 }, // 0x28 '(' + { 0, 0, 0, 0, 0, 0 }, // 0x29 ')' + { 0, 0, 0, 0, 0, 0 }, // 0x2A '*' + { 0, 0, 0, 0, 0, 0 }, // 0x2B '+' + { 0, 0, 0, 0, 0, 0 }, // 0x2C ',' + { 0, 0, 0, 0, 0, 0 }, // 0x2D '-' + { 0, 0, 0, 0, 0, 0 }, // 0x2E '.' + { 0, 0, 0, 0, 0, 0 }, // 0x2F '/' + { 6, 11, 19, 14, 2, -18 }, // 0x30 '0' + { 33, 3, 19, 14, 10, -18 }, // 0x31 '1' + { 41, 11, 19, 14, 2, -18 }, // 0x32 '2' + { 68, 11, 19, 14, 2, -18 }, // 0x33 '3' + { 95, 11, 19, 14, 2, -18 }, // 0x34 '4' + { 122, 11, 19, 14, 2, -18 }, // 0x35 '5' + { 149, 11, 19, 14, 2, -18 }, // 0x36 '6' + { 176, 11, 19, 14, 2, -18 }, // 0x37 '7' + { 203, 11, 19, 14, 2, -18 }, // 0x38 '8' + { 230, 11, 19, 14, 2, -18 }, // 0x39 '9' + { 257, 3, 15, 6, 2, -14 } // 0x3A ':' +}; + +const GFXfont DS_DIGI15pt7b PROGMEM = { + (uint8_t *)DS_DIGI15pt7bBitmaps, + (GFXglyph *)DS_DIGI15pt7bGlyphs, 0x20, 0x3A, 29 }; + +// Approx. 664 bytes diff --git a/yoRadio/src/displays/fonts/DS_DIGI28pt7b_mono.h b/yoRadio/src/displays/fonts/DS_DIGI28pt7b_mono.h new file mode 100644 index 0000000..5ea768b --- /dev/null +++ b/yoRadio/src/displays/fonts/DS_DIGI28pt7b_mono.h @@ -0,0 +1,109 @@ +const uint8_t DS_DIGI28pt7bBitmaps[] PROGMEM = { + 0x13, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x20, 0x27, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xF7, 0x31, 0x00, 0xFF, 0xFF, 0x7F, 0xFF, 0xF5, 0xFF, + 0xFF, 0x77, 0xFF, 0xF7, 0xDF, 0xFF, 0x7F, 0x00, 0x07, 0xF8, 0x00, 0x3F, + 0xC0, 0x01, 0xFE, 0x00, 0x0F, 0xF0, 0x00, 0x7F, 0x80, 0x03, 0xFC, 0x00, + 0x1F, 0xE0, 0x00, 0xFF, 0x00, 0x07, 0xF8, 0x00, 0x3F, 0xC0, 0x01, 0xFC, + 0x00, 0x07, 0x40, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x05, 0xC0, 0x00, + 0x7F, 0x00, 0x07, 0xF8, 0x00, 0x3F, 0xC0, 0x01, 0xFE, 0x00, 0x0F, 0xF0, + 0x00, 0x7F, 0x80, 0x03, 0xFC, 0x00, 0x1F, 0xE0, 0x00, 0xFF, 0x00, 0x07, + 0xF8, 0x00, 0x3F, 0xC0, 0x01, 0xFD, 0xFF, 0xF7, 0xDF, 0xFF, 0xDD, 0xFF, + 0xFF, 0x5F, 0xFF, 0xFC, 0x00, 0x01, 0x37, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xF7, 0x20, 0x27, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x31, 0x00, 0x7F, + 0xFF, 0xF1, 0xFF, 0xFF, 0x47, 0xFF, 0xF6, 0x1F, 0xFF, 0x70, 0x00, 0x07, + 0x80, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, + 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x3C, + 0x00, 0x01, 0xE0, 0x00, 0x07, 0x0F, 0xFF, 0x90, 0xFF, 0xFE, 0x17, 0xFF, + 0xF1, 0xDF, 0xFF, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, + 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, + 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1D, 0xFF, 0xF0, 0xDF, + 0xFF, 0xC5, 0xFF, 0xFF, 0x1F, 0xFF, 0xFC, 0x00, 0xFF, 0xFF, 0xE7, 0xFF, + 0xFD, 0x3F, 0xFF, 0xB1, 0xFF, 0xF7, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, + 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, + 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x07, + 0x0F, 0xFF, 0x21, 0xFF, 0xF8, 0x1F, 0xFF, 0xA0, 0xFF, 0xF7, 0x00, 0x00, + 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, + 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, + 0x00, 0xF1, 0xFF, 0xF7, 0x3F, 0xFF, 0xB7, 0xFF, 0xFD, 0xFF, 0xFF, 0xE0, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x70, 0x00, 0x07, 0xC0, 0x00, 0x7F, 0x00, + 0x07, 0xF8, 0x00, 0x3F, 0xC0, 0x01, 0xFE, 0x00, 0x0F, 0xF0, 0x00, 0x7F, + 0x80, 0x03, 0xFC, 0x00, 0x1F, 0xE0, 0x00, 0xFF, 0x00, 0x07, 0xF8, 0x00, + 0x3F, 0xC0, 0x01, 0xFC, 0x00, 0x07, 0x4F, 0xFF, 0x90, 0xFF, 0xFE, 0x07, + 0xFF, 0xF4, 0x1F, 0xFF, 0x70, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01, + 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, + 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x07, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x40, 0x7F, 0xFF, 0xF5, 0xFF, 0xFF, 0x37, + 0xFF, 0xF1, 0xDF, 0xFF, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, + 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xE0, + 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1C, 0x00, 0x00, + 0x4F, 0xFF, 0x80, 0xFF, 0xFE, 0x07, 0xFF, 0xF4, 0x1F, 0xFF, 0x70, 0x00, + 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, + 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, + 0x3C, 0x00, 0x01, 0xE1, 0xFF, 0xF7, 0x1F, 0xFF, 0xD9, 0xFF, 0xFF, 0x5F, + 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0xF5, 0xFF, 0xFF, 0x37, 0xFF, 0xF1, 0xDF, + 0xFF, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, + 0xF0, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, + 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1C, 0x00, 0x00, 0x4F, 0xFF, 0x80, + 0xFF, 0xFE, 0x17, 0xFF, 0xF5, 0xDF, 0xFF, 0x7F, 0x00, 0x07, 0xF8, 0x00, + 0x3F, 0xC0, 0x01, 0xFE, 0x00, 0x0F, 0xF0, 0x00, 0x7F, 0x80, 0x03, 0xFC, + 0x00, 0x1F, 0xE0, 0x00, 0xFF, 0x00, 0x07, 0xF8, 0x00, 0x3F, 0xC0, 0x01, + 0xFD, 0xFF, 0xF7, 0xDF, 0xFF, 0xDD, 0xFF, 0xFF, 0x5F, 0xFF, 0xFC, 0x00, + 0xFF, 0xFF, 0xE7, 0xFF, 0xFD, 0x3F, 0xFF, 0xB1, 0xFF, 0xF7, 0x00, 0x00, + 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, + 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, + 0x00, 0xF0, 0x00, 0x07, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x07, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, + 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, + 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x00, 0x00, 0x30, 0x00, + 0x01, 0x7F, 0xFF, 0xF5, 0xFF, 0xFF, 0x77, 0xFF, 0xF7, 0xDF, 0xFF, 0x7F, + 0x00, 0x07, 0xF8, 0x00, 0x3F, 0xC0, 0x01, 0xFE, 0x00, 0x0F, 0xF0, 0x00, + 0x7F, 0x80, 0x03, 0xFC, 0x00, 0x1F, 0xE0, 0x00, 0xFF, 0x00, 0x07, 0xF8, + 0x00, 0x3F, 0xC0, 0x01, 0xFC, 0x00, 0x07, 0x4F, 0xFF, 0x90, 0xFF, 0xFE, + 0x17, 0xFF, 0xF5, 0xDF, 0xFF, 0x7F, 0x00, 0x07, 0xF8, 0x00, 0x3F, 0xC0, + 0x01, 0xFE, 0x00, 0x0F, 0xF0, 0x00, 0x7F, 0x80, 0x03, 0xFC, 0x00, 0x1F, + 0xE0, 0x00, 0xFF, 0x00, 0x07, 0xF8, 0x00, 0x3F, 0xC0, 0x01, 0xFD, 0xFF, + 0xF7, 0xDF, 0xFF, 0xDD, 0xFF, 0xFF, 0x5F, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, + 0xF5, 0xFF, 0xFF, 0x77, 0xFF, 0xF7, 0xDF, 0xFF, 0x7F, 0x00, 0x07, 0xF8, + 0x00, 0x3F, 0xC0, 0x01, 0xFE, 0x00, 0x0F, 0xF0, 0x00, 0x7F, 0x80, 0x03, + 0xFC, 0x00, 0x1F, 0xE0, 0x00, 0xFF, 0x00, 0x07, 0xF8, 0x00, 0x3F, 0xC0, + 0x01, 0xFC, 0x00, 0x07, 0x4F, 0xFF, 0x90, 0xFF, 0xFE, 0x07, 0xFF, 0xF4, + 0x1F, 0xFF, 0x70, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, + 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xF0, + 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xE1, 0xFF, 0xF7, 0x1F, 0xFF, + 0xD9, 0xFF, 0xFF, 0x5F, 0xFF, 0xFC, 0x00, 0x0F, 0xFF, 0xF0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xF0, 0x00, 0x00, 0x00 +}; + +const GFXglyph DS_DIGI28pt7bGlyphs[] PROGMEM = { + { 0, 0, 0, 12, 0, 1 }, // 0x20 ' ' + { 0, 0, 0, 0, 0, 0 }, // 0x21 '!' + { 0, 0, 0, 0, 0, 0 }, // 0x22 '"' + { 0, 0, 0, 0, 0, 0 }, // 0x23 '#' + { 0, 0, 0, 0, 0, 0 }, // 0x24 '$' + { 0, 0, 0, 0, 0, 0 }, // 0x25 '%' + { 0, 0, 0, 0, 0, 0 }, // 0x26 '&' + { 0, 0, 0, 0, 0, 0 }, // 0x27 ''' + { 0, 0, 0, 0, 0, 0 }, // 0x28 '(' + { 0, 0, 0, 0, 0, 0 }, // 0x29 ')' + { 0, 0, 0, 0, 0, 0 }, // 0x2A '*' + { 0, 0, 0, 0, 0, 0 }, // 0x2B '+' + { 0, 0, 0, 0, 0, 0 }, // 0x2C ',' + { 0, 0, 0, 0, 0, 0 }, // 0x2D '-' + { 0, 0, 0, 0, 0, 0 }, // 0x2E '.' + { 0, 0, 0, 0, 0, 0 }, // 0x2F '/' + { 20, 21, 35, 27, 3, -34 }, // 0x30 '0' + { 113, 4, 35, 27, 20, -34 }, // 0x31 '1' + { 131, 21, 35, 27, 3, -34 }, // 0x32 '2' + { 224, 20, 35, 27, 4, -34 }, // 0x33 '3' + { 312, 21, 34, 27, 3, -34 }, // 0x34 '4' + { 402, 21, 35, 27, 3, -34 }, // 0x35 '5' + { 495, 21, 35, 27, 3, -34 }, // 0x36 '6' + { 588, 20, 34, 27, 4, -34 }, // 0x37 '7' + { 673, 21, 35, 27, 3, -34 }, // 0x38 '8' + { 766, 21, 35, 27, 3, -34 }, // 0x39 '9' + { 859, 4, 29, 11, 4, -28 } // 0x3A ':' +}; + +const GFXfont DS_DIGI28pt7b PROGMEM = { + (uint8_t *)DS_DIGI28pt7bBitmaps, + (GFXglyph *)DS_DIGI28pt7bGlyphs, 0x20, 0x3A, 55 }; diff --git a/yoRadio/src/displays/fonts/DS_DIGI42pt7b_mono.h b/yoRadio/src/displays/fonts/DS_DIGI42pt7b_mono.h new file mode 100644 index 0000000..4429ff3 --- /dev/null +++ b/yoRadio/src/displays/fonts/DS_DIGI42pt7b_mono.h @@ -0,0 +1,199 @@ +const uint8_t DS_DIGI42pt7bBitmaps[] PROGMEM = { + 0x04, 0x31, 0xCF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xCE, 0x10, 0x00, 0x04, 0x39, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xCF, + 0x1C, 0x30, 0x40, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, + 0xF9, 0x3F, 0xFF, 0xFF, 0xE7, 0x3F, 0xFF, 0xFF, 0x9F, 0x3F, 0xFF, 0xFE, + 0x7F, 0x3F, 0xFF, 0xF9, 0xFF, 0x3F, 0xFF, 0xE7, 0xFF, 0x00, 0x00, 0x1F, + 0xFE, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x00, 0xFF, + 0xF0, 0x00, 0x01, 0xFF, 0xE0, 0x00, 0x03, 0xFF, 0xC0, 0x00, 0x07, 0xFF, + 0x80, 0x00, 0x0F, 0xFF, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x3F, 0xFC, + 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x01, 0xFF, 0xE0, + 0x00, 0x03, 0xFF, 0xC0, 0x00, 0x07, 0xFF, 0x80, 0x00, 0x0F, 0xFE, 0x00, + 0x00, 0x0F, 0xB8, 0x00, 0x00, 0x0E, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, + 0x01, 0xDF, 0x00, 0x00, 0x07, 0xFF, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, + 0x3F, 0xFC, 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x01, + 0xFF, 0xE0, 0x00, 0x03, 0xFF, 0xC0, 0x00, 0x07, 0xFF, 0x80, 0x00, 0x0F, + 0xFF, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x7F, + 0xF8, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x01, 0xFF, 0xE0, 0x00, 0x03, 0xFF, + 0xC0, 0x00, 0x07, 0xFF, 0x80, 0x00, 0x0F, 0xFE, 0x7F, 0xFF, 0xCF, 0xF9, + 0xFF, 0xFF, 0xCF, 0xE7, 0xFF, 0xFF, 0xCF, 0x9F, 0xFF, 0xFF, 0xCE, 0x7F, + 0xFF, 0xFF, 0xC9, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x10, 0xC7, 0x3D, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, + 0xCE, 0x10, 0x00, 0x04, 0x39, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xCF, 0x1C, 0x30, 0x40, 0x3F, 0xFF, + 0xFF, 0xF8, 0x3F, 0xFF, 0xFF, 0xE4, 0x3F, 0xFF, 0xFF, 0x98, 0x3F, 0xFF, + 0xFE, 0x70, 0x3F, 0xFF, 0xF9, 0xE0, 0x3F, 0xFF, 0xE7, 0xC0, 0x00, 0x00, + 0x1F, 0x80, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, + 0xFC, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x07, + 0xE0, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x3F, + 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x01, 0xF8, + 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x0F, 0xC0, + 0x00, 0x00, 0x0F, 0x81, 0xFF, 0xFF, 0xCE, 0x07, 0xFF, 0xFF, 0xC8, 0x1F, + 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0x81, 0x3F, 0xFF, 0xFE, 0x07, 0x3F, + 0xFF, 0xF8, 0x1F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7E, 0x00, + 0x00, 0x00, 0xFC, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x03, 0xF0, 0x00, + 0x00, 0x07, 0xE0, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x1F, 0x80, 0x00, + 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, + 0x01, 0xF8, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, + 0x0F, 0xC0, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x3E, 0x7F, 0xFF, 0xC0, + 0x79, 0xFF, 0xFF, 0xC0, 0xE7, 0xFF, 0xFF, 0xC1, 0x9F, 0xFF, 0xFF, 0xC2, + 0x7F, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF, 0xFF, 0xF0, + 0xFF, 0xFF, 0xFF, 0x91, 0xFF, 0xFF, 0xFC, 0xC3, 0xFF, 0xFF, 0xE7, 0x07, + 0xFF, 0xFF, 0x3C, 0x0F, 0xFF, 0xF9, 0xF0, 0x00, 0x00, 0x0F, 0xC0, 0x00, + 0x00, 0x3F, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, + 0x0F, 0xC0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x03, + 0xF0, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0xFC, + 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x3F, 0x00, + 0x00, 0x00, 0xFC, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x07, 0xC1, 0xFF, + 0xFF, 0xCE, 0x0F, 0xFF, 0xFF, 0x90, 0x7F, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, + 0xFC, 0x03, 0xFF, 0xFF, 0xE4, 0x07, 0xFF, 0xFF, 0x38, 0x00, 0x00, 0x01, + 0xF0, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0xFC, + 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x3F, 0x00, + 0x00, 0x00, 0xFC, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x0F, 0xC0, 0x00, + 0x00, 0x3F, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, + 0x0F, 0xC0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x03, + 0xF0, 0x3F, 0xFF, 0xE7, 0xC1, 0xFF, 0xFF, 0xCF, 0x0F, 0xFF, 0xFF, 0x9C, + 0x7F, 0xFF, 0xFF, 0x33, 0xFF, 0xFF, 0xFE, 0x5F, 0xFF, 0xFF, 0xFC, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1F, 0x00, + 0x00, 0x00, 0x7F, 0x00, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x07, 0xFF, 0x00, + 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x7F, 0xF8, 0x00, + 0x00, 0xFF, 0xF0, 0x00, 0x01, 0xFF, 0xE0, 0x00, 0x03, 0xFF, 0xC0, 0x00, + 0x07, 0xFF, 0x80, 0x00, 0x0F, 0xFF, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, + 0x3F, 0xFC, 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x01, + 0xFF, 0xE0, 0x00, 0x03, 0xFF, 0xC0, 0x00, 0x07, 0xFF, 0x80, 0x00, 0x0F, + 0xFE, 0x00, 0x00, 0x0F, 0xB9, 0xFF, 0xFF, 0xCE, 0x27, 0xFF, 0xFF, 0xC8, + 0x1F, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xFE, 0x40, + 0x3F, 0xFF, 0xF9, 0xC0, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x1F, 0x80, + 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xFC, 0x00, + 0x00, 0x01, 0xF8, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x07, 0xE0, 0x00, + 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x3F, 0x00, 0x00, + 0x00, 0x7E, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, + 0x03, 0xF0, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, + 0x0F, 0x80, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, + 0x0C, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, + 0xF9, 0x3F, 0xFF, 0xFF, 0xE3, 0x3F, 0xFF, 0xFF, 0x87, 0x3F, 0xFF, 0xFE, + 0x0F, 0x3F, 0xFF, 0xF8, 0x1F, 0x3F, 0xFF, 0xE0, 0x3F, 0x00, 0x00, 0x00, + 0x7E, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x03, + 0xF0, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x1F, + 0x80, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xFC, + 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x07, 0xE0, + 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x3E, 0x00, + 0x00, 0x00, 0x39, 0xFF, 0xFF, 0xC0, 0x27, 0xFF, 0xFF, 0xC0, 0x1F, 0xFF, + 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xFE, 0x40, 0x3F, 0xFF, + 0xF9, 0xC0, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, + 0x3F, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x01, + 0xF8, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x0F, + 0xC0, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7E, + 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x03, 0xF0, + 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x0F, 0xC0, 0x7F, 0xFF, 0xCF, 0x81, + 0xFF, 0xFF, 0xCF, 0x07, 0xFF, 0xFF, 0xCE, 0x1F, 0xFF, 0xFF, 0xCC, 0x7F, + 0xFF, 0xFF, 0xC9, 0xFF, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0xF9, 0x3F, + 0xFF, 0xFF, 0xE3, 0x3F, 0xFF, 0xFF, 0x87, 0x3F, 0xFF, 0xFE, 0x0F, 0x3F, + 0xFF, 0xF8, 0x1F, 0x3F, 0xFF, 0xE0, 0x3F, 0x00, 0x00, 0x00, 0x7E, 0x00, + 0x00, 0x00, 0xFC, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x03, 0xF0, 0x00, + 0x00, 0x07, 0xE0, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x1F, 0x80, 0x00, + 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, + 0x01, 0xF8, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, + 0x0F, 0xC0, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, + 0x39, 0xFF, 0xFF, 0xC0, 0x27, 0xFF, 0xFF, 0xC0, 0x1F, 0xFF, 0xFF, 0xC0, + 0x3F, 0xFF, 0xFF, 0x81, 0x3F, 0xFF, 0xFE, 0x47, 0x3F, 0xFF, 0xF9, 0xDF, + 0x00, 0x00, 0x07, 0xFF, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x3F, 0xFC, + 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x01, 0xFF, 0xE0, + 0x00, 0x03, 0xFF, 0xC0, 0x00, 0x07, 0xFF, 0x80, 0x00, 0x0F, 0xFF, 0x00, + 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x7F, 0xF8, 0x00, + 0x00, 0xFF, 0xF0, 0x00, 0x01, 0xFF, 0xE0, 0x00, 0x03, 0xFF, 0xC0, 0x00, + 0x07, 0xFF, 0x80, 0x00, 0x0F, 0xFE, 0x7F, 0xFF, 0xCF, 0xF9, 0xFF, 0xFF, + 0xCF, 0xE7, 0xFF, 0xFF, 0xCF, 0x9F, 0xFF, 0xFF, 0xCE, 0x7F, 0xFF, 0xFF, + 0xC9, 0xFF, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xFF, + 0x90, 0xFF, 0xFF, 0xFC, 0xC1, 0xFF, 0xFF, 0xE7, 0x03, 0xFF, 0xFF, 0x3C, + 0x07, 0xFF, 0xF9, 0xF0, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x3F, 0x00, + 0x00, 0x00, 0xFC, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x0F, 0xC0, 0x00, + 0x00, 0x3F, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, + 0x0F, 0xC0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x03, + 0xF0, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0xFC, + 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x0E, 0x00, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, + 0x0F, 0xC0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x03, + 0xF0, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0xFC, + 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x3F, 0x00, + 0x00, 0x00, 0xFC, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x0F, 0xC0, 0x00, + 0x00, 0x3F, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, + 0x07, 0xC0, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xF9, + 0x3F, 0xFF, 0xFF, 0xE7, 0x3F, 0xFF, 0xFF, 0x9F, 0x3F, 0xFF, 0xFE, 0x7F, + 0x3F, 0xFF, 0xF9, 0xFF, 0x3F, 0xFF, 0xE7, 0xFF, 0x00, 0x00, 0x1F, 0xFE, + 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x00, 0xFF, 0xF0, + 0x00, 0x01, 0xFF, 0xE0, 0x00, 0x03, 0xFF, 0xC0, 0x00, 0x07, 0xFF, 0x80, + 0x00, 0x0F, 0xFF, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x3F, 0xFC, 0x00, + 0x00, 0x7F, 0xF8, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x01, 0xFF, 0xE0, 0x00, + 0x03, 0xFF, 0xC0, 0x00, 0x07, 0xFF, 0x80, 0x00, 0x0F, 0xFE, 0x00, 0x00, + 0x0F, 0xB9, 0xFF, 0xFF, 0xCE, 0x27, 0xFF, 0xFF, 0xC8, 0x1F, 0xFF, 0xFF, + 0xC0, 0x3F, 0xFF, 0xFF, 0x83, 0x3F, 0xFF, 0xFE, 0x4F, 0x3F, 0xFF, 0xF9, + 0xDF, 0x00, 0x00, 0x07, 0xFF, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x3F, + 0xFC, 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x01, 0xFF, + 0xE0, 0x00, 0x03, 0xFF, 0xC0, 0x00, 0x07, 0xFF, 0x80, 0x00, 0x0F, 0xFF, + 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x7F, 0xF8, + 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x01, 0xFF, 0xE0, 0x00, 0x03, 0xFF, 0xC0, + 0x00, 0x07, 0xFF, 0x80, 0x00, 0x0F, 0xFE, 0x7F, 0xFF, 0xCF, 0xF9, 0xFF, + 0xFF, 0xCF, 0xE7, 0xFF, 0xFF, 0xCF, 0x9F, 0xFF, 0xFF, 0xCE, 0x7F, 0xFF, + 0xFF, 0xC9, 0xFF, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0xF9, 0x3F, 0xFF, + 0xFF, 0xE7, 0x3F, 0xFF, 0xFF, 0x9F, 0x3F, 0xFF, 0xFE, 0x7F, 0x3F, 0xFF, + 0xF9, 0xFF, 0x3F, 0xFF, 0xE7, 0xFF, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, + 0x3F, 0xFC, 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x01, + 0xFF, 0xE0, 0x00, 0x03, 0xFF, 0xC0, 0x00, 0x07, 0xFF, 0x80, 0x00, 0x0F, + 0xFF, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x7F, + 0xF8, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x01, 0xFF, 0xE0, 0x00, 0x03, 0xFF, + 0xC0, 0x00, 0x07, 0xFF, 0x80, 0x00, 0x0F, 0xFE, 0x00, 0x00, 0x0F, 0xB9, + 0xFF, 0xFF, 0xCE, 0x27, 0xFF, 0xFF, 0xC8, 0x1F, 0xFF, 0xFF, 0xC0, 0x3F, + 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xFE, 0x40, 0x3F, 0xFF, 0xF9, 0xC0, 0x00, + 0x00, 0x07, 0xC0, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x3F, 0x00, 0x00, + 0x00, 0x7E, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, + 0x03, 0xF0, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, + 0x1F, 0x80, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, + 0xFC, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x07, + 0xE0, 0x00, 0x00, 0x0F, 0xC0, 0x7F, 0xFF, 0xCF, 0x81, 0xFF, 0xFF, 0xCF, + 0x07, 0xFF, 0xFF, 0xCE, 0x1F, 0xFF, 0xFF, 0xCC, 0x7F, 0xFF, 0xFF, 0xC9, + 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00 +}; + +const GFXglyph DS_DIGI42pt7bGlyphs[] PROGMEM = { + { 0, 0, 0, 15, 0, 1 }, // 0x20 ' ' + { 0, 0, 0, 0, 0, 0 }, // 0x21 '!' + { 0, 0, 0, 0, 0, 0 }, // 0x22 '"' + { 0, 0, 0, 0, 0, 0 }, // 0x23 '#' + { 0, 0, 0, 0, 0, 0 }, // 0x24 '$' + { 0, 0, 0, 0, 0, 0 }, // 0x25 '%' + { 0, 0, 0, 0, 0, 0 }, // 0x26 '&' + { 0, 0, 0, 0, 0, 0 }, // 0x27 ''' + { 0, 0, 0, 0, 0, 0 }, // 0x28 '(' + { 0, 0, 0, 0, 0, 0 }, // 0x29 ')' + { 0, 0, 0, 0, 0, 0 }, // 0x2A '*' + { 0, 0, 0, 0, 0, 0 }, // 0x2B '+' + { 0, 0, 0, 0, 0, 0 }, // 0x2C ',' + { 0, 0, 0, 0, 0, 0 }, // 0x2D '-' + { 0, 0, 0, 0, 0, 0 }, // 0x2E '.' + { 0, 0, 0, 0, 0, 0 }, // 0x2F '/' + { 45, 31, 52, 40, 4, -51 }, // 0x30 '0' + { 247, 6, 52, 40, 29, -51 }, // 0x31 '1' + { 286, 31, 52, 40, 4, -51 }, // 0x32 '2' + { 488, 30, 52, 40, 5, -51 }, // 0x33 '3' + { 683, 31, 52, 40, 4, -51 }, // 0x34 '4' + { 885, 31, 52, 40, 4, -51 }, // 0x35 '5' + { 1087, 31, 52, 40, 4, -51 }, // 0x36 '6' + { 1289, 30, 52, 40, 5, -51 }, // 0x37 '7' + { 1484, 31, 52, 40, 4, -51 }, // 0x38 '8' + { 1686, 31, 52, 40, 4, -51 }, // 0x39 '9' + { 1888, 6, 43, 15, 4, -42 } // 0x3A ':' +}; + +const GFXfont DS_DIGI42pt7b PROGMEM = { + (uint8_t *)DS_DIGI42pt7bBitmaps, + (GFXglyph *)DS_DIGI42pt7bGlyphs, 0x20, 0x3A, 82 }; + +// Approx. 3774 bytes diff --git a/yoRadio/src/displays/fonts/DS_DIGI56pt7b_mono.h b/yoRadio/src/displays/fonts/DS_DIGI56pt7b_mono.h new file mode 100644 index 0000000..3bcdb65 --- /dev/null +++ b/yoRadio/src/displays/fonts/DS_DIGI56pt7b_mono.h @@ -0,0 +1,350 @@ +const uint8_t DS_DIGI56pt7bBitmaps[] PROGMEM = { + 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0x88, 0xFF, + 0xFF, 0xFF, 0xFF, 0xC7, 0x1F, 0xFF, 0xFF, 0xFF, 0xE3, 0xE3, 0xFF, 0xFF, + 0xFF, 0xF1, 0xFC, 0x7F, 0xFF, 0xFF, 0xF8, 0xFF, 0x8F, 0xFF, 0xFF, 0xFC, + 0x7F, 0xF0, 0x00, 0x00, 0x00, 0x3F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, + 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, + 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, + 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, + 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, + 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, + 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, + 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, + 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, + 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x00, 0x00, 0x00, + 0x03, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x7D, 0xC0, 0x00, 0x00, 0x00, 0x0E, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x01, 0x1C, 0x00, 0x00, 0x00, 0x00, 0xEF, 0x80, 0x00, 0x00, 0x00, + 0x7F, 0xF0, 0x00, 0x00, 0x00, 0x3F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, + 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, + 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, + 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, + 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, + 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, + 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, + 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, + 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, + 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, + 0x07, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0xFF, 0xE3, 0xFF, 0xFF, 0xFF, 0x1F, + 0xF1, 0xFF, 0xFF, 0xFF, 0xE3, 0xF8, 0xFF, 0xFF, 0xFF, 0xFC, 0x7C, 0x7F, + 0xFF, 0xFF, 0xFF, 0x8E, 0x3F, 0xFF, 0xFF, 0xFF, 0xF1, 0x1F, 0xFF, 0xFF, + 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0xFF, + 0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, + 0x1F, 0xFF, 0xFF, 0xFF, 0xE3, 0xE3, 0xFF, 0xFF, 0xFF, 0xF1, 0xFC, 0x7F, + 0xFF, 0xFF, 0xF8, 0xFF, 0x8F, 0xFF, 0xFF, 0xFC, 0x7F, 0xF0, 0x00, 0x00, + 0x00, 0x3F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, + 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, + 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, + 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, + 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, + 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, + 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, + 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, + 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, + 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x80, 0x00, + 0x00, 0x00, 0x7D, 0xC0, 0x00, 0x00, 0x00, 0x0E, 0x20, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x1C, 0x00, + 0x00, 0x00, 0x00, 0xEF, 0x80, 0x00, 0x00, 0x00, 0x7F, 0xF0, 0x00, 0x00, + 0x00, 0x3F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, + 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, + 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, + 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, + 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, + 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, + 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, + 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, + 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, + 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xC0, 0x00, + 0x00, 0x00, 0xFF, 0xE3, 0xFF, 0xFF, 0xFF, 0x1F, 0xF1, 0xFF, 0xFF, 0xFF, + 0xE3, 0xF8, 0xFF, 0xFF, 0xFF, 0xFC, 0x7C, 0x7F, 0xFF, 0xFF, 0xFF, 0x8E, + 0x3F, 0xFF, 0xFF, 0xFF, 0xF1, 0x1F, 0xFF, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, + 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x04, 0x18, 0x71, 0xE7, 0xDF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xCF, 0x8E, 0x08, 0x00, 0x00, 0x00, + 0x83, 0x8F, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xCF, 0x8F, + 0x0E, 0x0C, 0x08, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, + 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xC4, 0x1F, 0xFF, 0xFF, 0xFF, + 0xE3, 0x03, 0xFF, 0xFF, 0xFF, 0xF1, 0xC0, 0x7F, 0xFF, 0xFF, 0xF8, 0xF0, + 0x0F, 0xFF, 0xFF, 0xFC, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, + 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, + 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x1F, + 0xC0, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x01, 0xFC, 0x00, + 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, + 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, + 0x7F, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x00, 0x07, 0xF0, + 0x00, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, + 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, + 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x1F, + 0xC0, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x07, + 0xFF, 0xFF, 0xFF, 0x1F, 0x03, 0xFF, 0xFF, 0xFF, 0xE3, 0x81, 0xFF, 0xFF, + 0xFF, 0xFC, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x1F, 0xFF, 0xFF, 0xFF, + 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xE0, 0x08, 0x7F, 0xFF, 0xFF, 0xF0, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, + 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, + 0x00, 0x03, 0xF8, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, + 0x3F, 0x80, 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x03, 0xF8, + 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, + 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x00, + 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x0F, + 0xE0, 0x00, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, + 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, + 0x00, 0x03, 0xF8, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, + 0x3F, 0x80, 0x00, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x00, 0x03, 0xE3, + 0xFF, 0xFF, 0xFF, 0x00, 0xF1, 0xFF, 0xFF, 0xFF, 0xE0, 0x38, 0xFF, 0xFF, + 0xFF, 0xFC, 0x0C, 0x7F, 0xFF, 0xFF, 0xFF, 0x82, 0x3F, 0xFF, 0xFF, 0xFF, + 0xF0, 0x1F, 0xFF, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x7F, 0xFF, 0xFF, 0xFF, 0xF8, 0x3F, 0xFF, + 0xFF, 0xFF, 0xF1, 0x1F, 0xFF, 0xFF, 0xFF, 0xE3, 0x0F, 0xFF, 0xFF, 0xFF, + 0xC7, 0x07, 0xFF, 0xFF, 0xFF, 0x8F, 0x03, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, + 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, + 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, + 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, + 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, + 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, + 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, + 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, + 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x07, + 0xFF, 0xFF, 0xFF, 0x1F, 0x0F, 0xFF, 0xFF, 0xFF, 0x8E, 0x1F, 0xFF, 0xFF, + 0xFF, 0xC4, 0x3F, 0xFF, 0xFF, 0xFF, 0xE0, 0x1F, 0xFF, 0xFF, 0xFF, 0xC0, + 0x0F, 0xFF, 0xFF, 0xFF, 0x80, 0x07, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, + 0x3F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, + 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, + 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, + 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, + 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, + 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, + 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, + 0x00, 0x00, 0x3F, 0x03, 0xFF, 0xFF, 0xFF, 0x1F, 0x07, 0xFF, 0xFF, 0xFF, + 0x8F, 0x0F, 0xFF, 0xFF, 0xFF, 0xC7, 0x1F, 0xFF, 0xFF, 0xFF, 0xE3, 0x3F, + 0xFF, 0xFF, 0xFF, 0xF1, 0x7F, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x1C, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x07, 0xF0, + 0x00, 0x00, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xC0, 0x00, + 0x00, 0x00, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, + 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, + 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, + 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, + 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, + 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, + 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, + 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, + 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, + 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x00, + 0x00, 0x00, 0x03, 0xFF, 0x9F, 0xFF, 0xFF, 0xFE, 0x7D, 0xCF, 0xFF, 0xFF, + 0xFF, 0xCE, 0x27, 0xFF, 0xFF, 0xFF, 0xF9, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x80, 0x0F, 0xFF, 0xFF, 0xFF, 0xC0, 0x01, + 0xFF, 0xFF, 0xFF, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, + 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, + 0x1F, 0xC0, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x01, 0xFC, + 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, + 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x00, 0x07, + 0xF0, 0x00, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, + 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, + 0x00, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, + 0x1F, 0xC0, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x01, 0xFC, + 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, + 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, + 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, + 0xFF, 0xFF, 0xC3, 0x1F, 0xFF, 0xFF, 0xFF, 0xE0, 0xE3, 0xFF, 0xFF, 0xFF, + 0xF0, 0x3C, 0x7F, 0xFF, 0xFF, 0xF8, 0x0F, 0x8F, 0xFF, 0xFF, 0xFC, 0x03, + 0xF0, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, + 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, + 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, + 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x00, 0x00, 0xFE, + 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x00, + 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x03, + 0xF8, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, + 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, + 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, + 0x0F, 0xC0, 0x00, 0x00, 0x00, 0x03, 0xE7, 0xFF, 0xFF, 0xFF, 0x80, 0x73, + 0xFF, 0xFF, 0xFF, 0xF0, 0x09, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, + 0xFF, 0xFF, 0xC0, 0x1F, 0xFF, 0xFF, 0xFF, 0xE0, 0x03, 0xFF, 0xFF, 0xFF, + 0xF0, 0x00, 0x7F, 0xFF, 0xFF, 0xF8, 0x40, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xC0, 0x00, + 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x00, 0x07, + 0xF0, 0x00, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, + 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, + 0x00, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, + 0x1F, 0xC0, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x01, 0xFC, + 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, + 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x00, 0x07, + 0xF0, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x03, 0xFF, 0xFF, 0xFF, 0x1F, 0x01, + 0xFF, 0xFF, 0xFF, 0xE3, 0xC0, 0xFF, 0xFF, 0xFF, 0xFC, 0x70, 0x7F, 0xFF, + 0xFF, 0xFF, 0x8C, 0x3F, 0xFF, 0xFF, 0xFF, 0xF1, 0x1F, 0xFF, 0xFF, 0xFF, + 0xFE, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, + 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0x1F, + 0xFF, 0xFF, 0xFF, 0xE0, 0xE3, 0xFF, 0xFF, 0xFF, 0xF0, 0x3C, 0x7F, 0xFF, + 0xFF, 0xF8, 0x0F, 0x8F, 0xFF, 0xFF, 0xFC, 0x03, 0xF0, 0x00, 0x00, 0x00, + 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x0F, + 0xE0, 0x00, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, + 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, + 0x00, 0x03, 0xF8, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, + 0x3F, 0x80, 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x03, 0xF8, + 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, + 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x00, + 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x0F, + 0xE0, 0x00, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, + 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, + 0x00, 0x03, 0xE7, 0xFF, 0xFF, 0xFF, 0x80, 0x73, 0xFF, 0xFF, 0xFF, 0xF0, + 0x09, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x1F, + 0xFF, 0xFF, 0xFF, 0xE0, 0x03, 0xFF, 0xFF, 0xFF, 0xF0, 0x08, 0x7F, 0xFF, + 0xFF, 0xF8, 0x47, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xE0, 0x00, 0x00, 0x00, + 0x1F, 0xFC, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, + 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, + 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, + 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, + 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, + 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, + 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, + 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, + 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, + 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xC0, 0x00, 0x00, + 0x00, 0xFF, 0xE3, 0xFF, 0xFF, 0xFF, 0x1F, 0xF1, 0xFF, 0xFF, 0xFF, 0xE3, + 0xF8, 0xFF, 0xFF, 0xFF, 0xFC, 0x7C, 0x7F, 0xFF, 0xFF, 0xFF, 0x8E, 0x3F, + 0xFF, 0xFF, 0xFF, 0xF1, 0x1F, 0xFF, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, + 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x7F, 0xFF, 0xFF, 0xFF, + 0xF8, 0x3F, 0xFF, 0xFF, 0xFF, 0xF1, 0x1F, 0xFF, 0xFF, 0xFF, 0xE3, 0x0F, + 0xFF, 0xFF, 0xFF, 0xC7, 0x07, 0xFF, 0xFF, 0xFF, 0x8F, 0x03, 0xFF, 0xFF, + 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x7F, + 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, + 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, + 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, + 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, + 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, + 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, + 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, + 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, + 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x0E, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, + 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, + 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, + 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, + 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, + 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, + 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, + 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, + 0x7F, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, + 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0x88, 0xFF, + 0xFF, 0xFF, 0xFF, 0xC7, 0x1F, 0xFF, 0xFF, 0xFF, 0xE3, 0xE3, 0xFF, 0xFF, + 0xFF, 0xF1, 0xFC, 0x7F, 0xFF, 0xFF, 0xF8, 0xFF, 0x8F, 0xFF, 0xFF, 0xFC, + 0x7F, 0xF0, 0x00, 0x00, 0x00, 0x3F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, + 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, + 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, + 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, + 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, + 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, + 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, + 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, + 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, + 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, + 0x07, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0x9F, + 0x73, 0xFF, 0xFF, 0xFF, 0xF3, 0x89, 0xFF, 0xFF, 0xFF, 0xFE, 0x40, 0xFF, + 0xFF, 0xFF, 0xFF, 0xC0, 0x1F, 0xFF, 0xFF, 0xFF, 0xE0, 0x03, 0xFF, 0xFF, + 0xFF, 0xF0, 0x08, 0x7F, 0xFF, 0xFF, 0xF8, 0x47, 0x00, 0x00, 0x00, 0x00, + 0x3B, 0xE0, 0x00, 0x00, 0x00, 0x1F, 0xFC, 0x00, 0x00, 0x00, 0x0F, 0xFF, + 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, + 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, + 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, + 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, + 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, + 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, + 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, + 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, + 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, + 0x07, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0xFF, 0xE3, 0xFF, 0xFF, 0xFF, 0x1F, + 0xF1, 0xFF, 0xFF, 0xFF, 0xE3, 0xF8, 0xFF, 0xFF, 0xFF, 0xFC, 0x7C, 0x7F, + 0xFF, 0xFF, 0xFF, 0x8E, 0x3F, 0xFF, 0xFF, 0xFF, 0xF1, 0x1F, 0xFF, 0xFF, + 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0xFF, + 0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, + 0x1F, 0xFF, 0xFF, 0xFF, 0xE3, 0xE3, 0xFF, 0xFF, 0xFF, 0xF1, 0xFC, 0x7F, + 0xFF, 0xFF, 0xF8, 0xFF, 0x8F, 0xFF, 0xFF, 0xFC, 0x7F, 0xF0, 0x00, 0x00, + 0x00, 0x3F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, + 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, + 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, + 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, + 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, + 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, + 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, + 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, + 0xFF, 0xE0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFE, + 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xC0, 0x00, + 0x00, 0x00, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0x9F, 0x73, 0xFF, 0xFF, 0xFF, + 0xF3, 0x89, 0xFF, 0xFF, 0xFF, 0xFE, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, + 0x1F, 0xFF, 0xFF, 0xFF, 0xE0, 0x03, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x7F, + 0xFF, 0xFF, 0xF8, 0x40, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x00, 0x07, + 0xF0, 0x00, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, + 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, + 0x00, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, + 0x1F, 0xC0, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x01, 0xFC, + 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, + 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x00, 0x07, + 0xF0, 0x00, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, + 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, + 0x00, 0x00, 0xFC, 0x03, 0xFF, 0xFF, 0xFF, 0x1F, 0x01, 0xFF, 0xFF, 0xFF, + 0xE3, 0xC0, 0xFF, 0xFF, 0xFF, 0xFC, 0x70, 0x7F, 0xFF, 0xFF, 0xFF, 0x8C, + 0x3F, 0xFF, 0xFF, 0xFF, 0xF1, 0x1F, 0xFF, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, + 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +const GFXglyph DS_DIGI56pt7bGlyphs[] PROGMEM = { + { 0, 0, 0, 24, 0, 1 }, // 0x20 ' ' + { 0, 0, 0, 0, 0, 0 }, // 0x21 '!' + { 0, 0, 0, 0, 0, 0 }, // 0x22 '"' + { 0, 0, 0, 0, 0, 0 }, // 0x23 '#' + { 0, 0, 0, 0, 0, 0 }, // 0x24 '$' + { 0, 0, 0, 0, 0, 0 }, // 0x25 '%' + { 0, 0, 0, 0, 0, 0 }, // 0x26 '&' + { 0, 0, 0, 0, 0, 0 }, // 0x27 ''' + { 0, 0, 0, 0, 0, 0 }, // 0x28 '(' + { 0, 0, 0, 0, 0, 0 }, // 0x29 ')' + { 0, 0, 0, 0, 0, 0 }, // 0x2A '*' + { 0, 0, 0, 0, 0, 0 }, // 0x2B '+' + { 0, 0, 0, 0, 0, 0 }, // 0x2C ',' + { 0, 0, 0, 0, 0, 0 }, // 0x2D '-' + { 0, 0, 0, 0, 0, 0 }, // 0x2E '.' + { 0, 0, 0, 0, 0, 0 }, // 0x2F '/' + { 368, 42, 70, 54, 6, -69 }, // 0x30 '0' + { 736, 7, 68, 54, 41, -68 }, // 0x31 '1' + { 796, 42, 70, 54, 6, -69 }, // 0x32 '2' + { 1164, 40, 70, 54, 8, -69 }, // 0x33 '3' + { 1514, 42, 68, 54, 6, -68 }, // 0x34 '4' + { 1871, 42, 70, 54, 6, -69 }, // 0x35 '5' + { 2239, 42, 70, 54, 6, -69 }, // 0x36 '6' + { 2607, 40, 69, 54, 8, -69 }, // 0x37 '7' + { 2952, 42, 70, 54, 6, -69 }, // 0x38 '8' + { 3320, 42, 70, 54, 6, -69 }, // 0x39 '9' + { 3688, 7, 59, 24, 8, -58 } // 0x3A ':' +}; + +const GFXfont DS_DIGI56pt7b PROGMEM = { + (uint8_t *)DS_DIGI56pt7bBitmaps, + (GFXglyph *)DS_DIGI56pt7bGlyphs, 0x20, 0x3A, 110 }; + +// Approx. 6564 bytes