mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-11-01 02:11:57 +00:00
feat(ui-lvgl): quick panel from the status bar; L2 fixes from rc1
The quick panel, as a phone's: pulled down from the status bar (or a tap on it). Bluetooth, WiFi, GPS, sound, trail and live share switch at a tap; Advert opens the advert popup (moved here from the Nodes header); Lock locks the screen; a brightness slider. Holding a tile opens its settings. Lock and sun glyphs added to the fonts. Fixes from rc1 testing on the L2: - GPS status icon: none when GPS is off (the module kept its last fix valid, so it stayed green); grey on, green with a fix. ensureGps() turns GPS on before trusting that stale fix. - Screen wake: the panel wakes dark, a frame is drawn, then the backlight fades in -- no white flash. Off fades out first. - Power off / flat battery: the chip wakes every 30 s to look for USB power and starts when plugged in (it slept with no wake source before, until the reset button). Plugged in when switched off: stays off until re-plugged. - Message ages in a conversation refresh every 2 s, as on ui-new; the message popup keeps its age, repeaters heard and delivery up to date. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -54,6 +54,12 @@ Settings and Messages are always shown.
|
||||
> **Wio Tracker L2:** pages you swipe between: favourite chats, the clock
|
||||
> (where it starts), a minimap, then the apps, six to a page. Hold an app to
|
||||
> arrange or hide them.
|
||||
>
|
||||
> Pull down from the status bar (or tap it) for the quick panel: Bluetooth,
|
||||
> WiFi, GPS, sound, trail and live share switch at a tap, Advert sends an
|
||||
> advert or sets the automatic one, Lock locks the screen, and the slider
|
||||
> sets the brightness. Hold a tile for its settings. Swipe it up, or tap
|
||||
> below it, to put it away.
|
||||
|
||||
## Connecting the phone app
|
||||
|
||||
|
||||
@@ -24,6 +24,37 @@ static uint8_t s_login_key[PUB_KEY_SIZE];
|
||||
static bool s_login_wait = false; // open the room once this login answers
|
||||
static lv_obj_t* s_fav_btn = nullptr;
|
||||
static int s_msg = -1; // s_msg_meta index the message popup is about
|
||||
// The message popup kept up to date (messagePopupTick): its overlay while
|
||||
// open, the message (by time), its "when" line and what else it shows.
|
||||
static lv_obj_t* s_msg_overlay = nullptr;
|
||||
static lv_obj_t* s_msg_when = nullptr;
|
||||
static uint32_t s_msg_ts = 0;
|
||||
static uint32_t s_msg_state = 0;
|
||||
|
||||
// "14:05 - 12s ago - 2 hops": when it came and, incoming, how far.
|
||||
static void whenText(char* when, size_t n, uint32_t ts, uint8_t packed, bool own, const NodePrefs* prefs) {
|
||||
char age[16];
|
||||
uint32_t now = rtc_clock.getCurrentTime();
|
||||
geo::fmtAgeShort(age, sizeof(age), now, ts ? ts : now);
|
||||
struct tm ti;
|
||||
if (localTime(prefs, ti, ts)) {
|
||||
char clk[12];
|
||||
fmtClock(clk, sizeof(clk), ti, prefs, true);
|
||||
if (clockBehind(now, ts)) { // the clock isn't set yet: the date instead of an age
|
||||
char date[32];
|
||||
fmtDate(date, sizeof(date), ti);
|
||||
snprintf(when, n, "%s %s", date, clk);
|
||||
} else snprintf(when, n, "%s - %s ago", clk, age);
|
||||
} else {
|
||||
snprintf(when, n, "%s ago", age);
|
||||
}
|
||||
if (!own) { // incoming: how far it came, on the same line
|
||||
uint8_t hops = contactctl::hopCount(packed);
|
||||
size_t o = strlen(when);
|
||||
if (hops > 0) snprintf(when + o, n - o, " - %u hop%s", hops, hops == 1 ? "" : "s");
|
||||
else snprintf(when + o, n - o, " - direct");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} // namespace convview
|
||||
@@ -296,28 +327,13 @@ void UITask::messageMenu(int idx) {
|
||||
lv_obj_set_style_border_width(q, 2, 0);
|
||||
lv_obj_set_style_border_color(q, lv_color_hex(m.own ? theme::ACCENT : theme::SURFACE_2), 0);
|
||||
lv_obj_set_style_pad_left(q, 8, 0);
|
||||
char when[64], age[16];
|
||||
uint32_t now = rtc_clock.getCurrentTime();
|
||||
geo::fmtAgeShort(age, sizeof(age), now, ts ? ts : now);
|
||||
struct tm ti;
|
||||
if (localTime(_prefs, ti, ts)) {
|
||||
char clk[12];
|
||||
fmtClock(clk, sizeof(clk), ti, _prefs, true);
|
||||
if (clockBehind(now, ts)) { // the clock isn't set yet: the date instead of an age
|
||||
char date[32];
|
||||
fmtDate(date, sizeof(date), ti);
|
||||
snprintf(when, sizeof(when), "%s %s", date, clk);
|
||||
} else snprintf(when, sizeof(when), "%s - %s ago", clk, age);
|
||||
} else {
|
||||
snprintf(when, sizeof(when), "%s ago", age);
|
||||
}
|
||||
char when[64];
|
||||
whenText(when, sizeof(when), ts, packed, m.own, _prefs);
|
||||
uint8_t hops = contactctl::hopCount(packed);
|
||||
if (!m.own) { // incoming: how far it came, on the same line
|
||||
size_t o = strlen(when);
|
||||
if (hops > 0) snprintf(when + o, sizeof(when) - o, " - %u hop%s", hops, hops == 1 ? "" : "s");
|
||||
else snprintf(when + o, sizeof(when) - o, " - direct");
|
||||
}
|
||||
label(panel, when, THEME_FONT_SMALL, theme::TEXT_MUTED);
|
||||
s_msg_when = label(panel, when, THEME_FONT_SMALL, theme::TEXT_MUTED);
|
||||
s_msg_overlay = _nav_overlay;
|
||||
s_msg_ts = ts;
|
||||
s_msg_state = packed | (uint32_t)dm_st << 8;
|
||||
|
||||
if (m.own && !m.channel) { // a DM we sent: its end-to-end delivery, in words
|
||||
const char* st = "Sent"; uint32_t col = theme::TEXT_MUTED;
|
||||
@@ -361,6 +377,35 @@ void UITask::messageMenu(int idx) {
|
||||
if (m.loc >= 0) barButton(acts, UI_SYMBOL_COMPASS " Set target", onMsgAction, M_TARGET, false);
|
||||
}
|
||||
|
||||
// The open message popup, every half second on a conversation: the age in
|
||||
// its "when" line, and opened anew when the repeaters heard passing it on or
|
||||
// its delivery change. Found again by its time (the page may have moved).
|
||||
void UITask::messagePopupTick() {
|
||||
using namespace convview;
|
||||
if (!_nav_overlay || _nav_overlay != s_msg_overlay) return;
|
||||
const MessageHistory& h = _core->history;
|
||||
for (int i = 0; i < s_msg_meta_n; i++) {
|
||||
const MsgMeta& m = s_msg_meta[i];
|
||||
if (m.pos < 0) continue;
|
||||
uint32_t ts, state;
|
||||
uint8_t packed;
|
||||
if (m.channel) {
|
||||
const ChHistEntry& e = s_th_ch[m.pos];
|
||||
ts = e.timestamp; packed = e.path_len; state = packed | (uint32_t)ACK_NONE << 8;
|
||||
} else {
|
||||
const DmHistEntry& e = s_th_dm[m.pos];
|
||||
ts = e.timestamp; packed = e.path_len;
|
||||
state = packed | (uint32_t)(e.outgoing ? h.dmEffectiveStatus(e) : ACK_NONE) << 8;
|
||||
}
|
||||
if (ts != s_msg_ts) continue;
|
||||
if (state != s_msg_state) { messageMenu(i); return; }
|
||||
char when[64];
|
||||
whenText(when, sizeof(when), ts, packed, m.own, _prefs);
|
||||
setText(s_msg_when, when);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void UITask::messageAction(uint8_t act) {
|
||||
using namespace convview;
|
||||
if (s_msg < 0 || s_msg >= s_msg_meta_n) { navClosePopup(); return; }
|
||||
|
||||
@@ -277,6 +277,9 @@ static void setBacklightPct(uint8_t pct) {
|
||||
if (pct > 100) pct = 100;
|
||||
s_gfx->setBrightness((uint8_t)(8 + (uint16_t)pct * 247 / 100)); // never fully dark
|
||||
}
|
||||
// After the screen comes on (display.turnOn(), the light still off) and a
|
||||
// frame is drawn: the backlight fades up to its level.
|
||||
static void backlightFadeIn() { display.fadeIn(); }
|
||||
|
||||
// microSD over SDMMC, 1-bit (CLK 2, CMD 3, D0 1); its power rail (expander
|
||||
// P14) is switched on in WioTrackerL2Board::begin(). Retried until it works --
|
||||
@@ -836,6 +839,7 @@ static void powerSave(bool, bool) {} // the browser's page loop runs the sim
|
||||
static void cpuSlow(bool) {}
|
||||
static void idle(uint32_t) {}
|
||||
static void setBacklightPct(uint8_t pct) { (void)pct; } // the browser canvas has no backlight
|
||||
static void backlightFadeIn() {}
|
||||
|
||||
// The host page preloads map tiles into the in-memory FS under /sdcard/maps.
|
||||
static bool mountStorage() { return true; }
|
||||
|
||||
@@ -0,0 +1,287 @@
|
||||
#pragma once
|
||||
// The quick panel, as a phone's: pulled down from the status bar (or a tap
|
||||
// on it), over any screen. Tiles that switch at a tap -- Bluetooth, WiFi,
|
||||
// GPS, sound, the trail, live share -- the advert, the lock, and the
|
||||
// brightness under them. Holding a tile opens its settings. Swiped up, a tap
|
||||
// under it, the side button or another screen puts it away. ui-new has the
|
||||
// same things as Home pages (Radio, Bluetooth, Advert, GPS).
|
||||
//
|
||||
// Single-TU fragment: included by ui-lvgl/UITask.cpp after QuickScreen.h.
|
||||
|
||||
namespace qpanel {
|
||||
|
||||
enum : uint8_t { T_BT, T_WIFI, T_GPS, T_SOUND, T_ADVERT, T_TRAIL, T_SHARE, T_LOCK, T_COUNT };
|
||||
static const int COLS = 4;
|
||||
|
||||
static lv_obj_t* s_dim = nullptr; // the screen under it, darkened; a tap there closes
|
||||
static lv_obj_t* s_panel = nullptr;
|
||||
static lv_obj_t* s_tile[T_COUNT];
|
||||
static lv_obj_t* s_icon[T_COUNT];
|
||||
static lv_obj_t* s_cap[T_COUNT];
|
||||
static lv_obj_t* s_slider = nullptr;
|
||||
static int32_t s_h = 1; // how far it moves: its height and the status bar's
|
||||
static bool s_open = false; // down, or on its way down
|
||||
static bool s_drag = false; // following a finger from the status bar
|
||||
static int32_t s_y0 = 0;
|
||||
|
||||
// Its place: 0 down, -s_h away under the status bar; the dim with it.
|
||||
static void place(int32_t ty) {
|
||||
if (ty > 0) ty = 0;
|
||||
if (ty < -s_h) ty = -s_h;
|
||||
lv_obj_set_style_translate_y(s_panel, ty, 0);
|
||||
lv_obj_set_style_bg_opa(s_dim, (lv_opa_t)(LV_OPA_50 * (s_h + ty) / s_h), 0);
|
||||
}
|
||||
static void placeCb(void* o, int32_t v) { (void)o; place(v); }
|
||||
static void hidden(lv_anim_t* a) {
|
||||
(void)a;
|
||||
lv_obj_add_flag(s_panel, LV_OBJ_FLAG_HIDDEN);
|
||||
lv_obj_add_flag(s_dim, LV_OBJ_FLAG_HIDDEN);
|
||||
}
|
||||
static void slide(int32_t to, bool away) {
|
||||
lv_anim_delete(s_panel, NULL);
|
||||
anim::run(s_panel, placeCb, lv_obj_get_style_translate_y(s_panel, LV_PART_MAIN), to,
|
||||
away ? anim::OUT_MS : anim::POP_MS, away ? hidden : nullptr);
|
||||
}
|
||||
|
||||
static void onTile(lv_event_t* e) {
|
||||
if (!s_open) return; // a swipe up that began on it: the panel is going
|
||||
s_ui->quickPanelTile((int)(uintptr_t)lv_event_get_user_data(e), lv_event_get_code(e) == LV_EVENT_LONG_PRESSED);
|
||||
}
|
||||
static void onDim(lv_event_t* e) { (void)e; s_ui->quickPanelClose(true); }
|
||||
static void onPanelGesture(lv_event_t* e) {
|
||||
(void)e;
|
||||
if (lv_indev_get_gesture_dir(lv_indev_active()) == LV_DIR_TOP) s_ui->quickPanelClose(true);
|
||||
}
|
||||
static void onBrightness(lv_event_t* e) {
|
||||
lv_obj_t* sl = (lv_obj_t*)lv_event_get_target(e);
|
||||
s_ui->setBrightnessPct((uint8_t)lv_slider_get_value(sl), lv_event_get_code(e) == LV_EVENT_RELEASED);
|
||||
}
|
||||
|
||||
static lv_obj_t* tile(lv_obj_t* parent, int t, int w) {
|
||||
lv_obj_t* b = lv_button_create(parent);
|
||||
lv_obj_set_size(b, w, 52);
|
||||
lv_obj_set_style_pad_all(b, 2, 0);
|
||||
lv_obj_set_style_radius(b, theme::RADIUS, 0);
|
||||
lv_obj_set_style_shadow_width(b, 0, 0);
|
||||
lv_obj_add_event_cb(b, onTile, LV_EVENT_SHORT_CLICKED, (void*)(uintptr_t)t);
|
||||
lv_obj_add_event_cb(b, onTile, LV_EVENT_LONG_PRESSED, (void*)(uintptr_t)t);
|
||||
s_icon[t] = label(b, "", THEME_FONT_LARGE, theme::TEXT);
|
||||
lv_obj_align(s_icon[t], LV_ALIGN_TOP_MID, 0, 5);
|
||||
s_cap[t] = label(b, "", THEME_FONT_SMALL, theme::TEXT);
|
||||
lv_label_set_long_mode(s_cap[t], LV_LABEL_LONG_DOT);
|
||||
lv_obj_set_style_text_align(s_cap[t], LV_TEXT_ALIGN_CENTER, 0);
|
||||
lv_obj_set_width(s_cap[t], w - 4);
|
||||
lv_obj_align(s_cap[t], LV_ALIGN_BOTTOM_MID, 0, -4);
|
||||
return b;
|
||||
}
|
||||
|
||||
// A tile's look: on in the accent with dark text, off on the surface;
|
||||
// `dim`: nothing to switch on this device.
|
||||
static void tileSet(int t, const char* icon, const char* cap, bool on, bool dim = false) {
|
||||
const uint32_t fg = on ? theme::BG : dim ? theme::TEXT_MUTED : theme::TEXT;
|
||||
const uint32_t bg = on ? theme::ACCENT : theme::SURFACE;
|
||||
lv_obj_set_style_bg_color(s_tile[t], lv_color_hex(bg), 0);
|
||||
lv_obj_set_style_bg_color(s_tile[t], lv_color_hex(on ? theme::mix(theme::ACCENT, theme::BG, 75) : theme::SURFACE_2), LV_STATE_PRESSED);
|
||||
setText(s_icon[t], icon);
|
||||
setText(s_cap[t], cap);
|
||||
setTextColor(s_icon[t], fg);
|
||||
setTextColor(s_cap[t], fg);
|
||||
}
|
||||
|
||||
} // namespace qpanel
|
||||
|
||||
// Status bar touches: a drag down pulls the panel after the finger, let go
|
||||
// past a third it opens, else it goes back; a tap opens or closes it.
|
||||
static void onStatusBarTouch(lv_event_t* e) {
|
||||
using namespace qpanel;
|
||||
const lv_event_code_t c = lv_event_get_code(e);
|
||||
lv_point_t p;
|
||||
lv_indev_get_point(lv_indev_active(), &p);
|
||||
if (c == LV_EVENT_PRESSED) { s_y0 = p.y; s_drag = false; return; }
|
||||
const int32_t dy = p.y - s_y0;
|
||||
if (c == LV_EVENT_PRESSING) {
|
||||
if (!s_drag && dy > 6 && !s_open && s_ui->quickPanelBegin()) s_drag = true;
|
||||
if (s_drag) place(dy - s_h);
|
||||
return;
|
||||
}
|
||||
if (c != LV_EVENT_RELEASED && c != LV_EVENT_PRESS_LOST) return;
|
||||
if (s_drag) {
|
||||
s_drag = false;
|
||||
if (dy > s_h / 3) { s_open = true; slide(0, false); }
|
||||
else s_ui->quickPanelClose(true);
|
||||
} else if (c == LV_EVENT_RELEASED && dy < 6) {
|
||||
if (s_open) s_ui->quickPanelClose(true);
|
||||
else if (s_ui->quickPanelBegin()) { s_open = true; slide(0, false); }
|
||||
}
|
||||
}
|
||||
|
||||
// Built the first time it's pulled, on the top layer between the screen and
|
||||
// the toast and status bar (which stay over it).
|
||||
void UITask::quickPanelBuild() {
|
||||
using namespace qpanel;
|
||||
s_dim = lv_obj_create(lv_layer_top());
|
||||
lv_obj_remove_style_all(s_dim);
|
||||
lv_obj_set_size(s_dim, LV_PCT(100), LV_PCT(100));
|
||||
lv_obj_set_style_bg_color(s_dim, lv_color_hex(0x000000), 0);
|
||||
lv_obj_add_flag(s_dim, LV_OBJ_FLAG_CLICKABLE);
|
||||
lv_obj_add_event_cb(s_dim, onDim, LV_EVENT_CLICKED, NULL);
|
||||
|
||||
const int32_t w = lv_display_get_horizontal_resolution(NULL);
|
||||
s_panel = lv_obj_create(lv_layer_top());
|
||||
styleOpaque(s_panel, theme::BG);
|
||||
lv_obj_remove_flag(s_panel, LV_OBJ_FLAG_SCROLLABLE);
|
||||
lv_obj_set_size(s_panel, w, LV_SIZE_CONTENT);
|
||||
lv_obj_set_pos(s_panel, 0, theme::STATUS_H);
|
||||
lv_obj_set_style_radius(s_panel, theme::RADIUS, 0); // the top corners are under the status bar
|
||||
lv_obj_set_style_border_side(s_panel, LV_BORDER_SIDE_BOTTOM, 0);
|
||||
lv_obj_set_style_border_width(s_panel, 1, 0);
|
||||
lv_obj_set_style_border_color(s_panel, lv_color_hex(theme::SURFACE_2), 0);
|
||||
lv_obj_set_style_pad_hor(s_panel, theme::PAD, 0);
|
||||
lv_obj_set_style_pad_top(s_panel, theme::GAP, 0);
|
||||
lv_obj_set_style_pad_bottom(s_panel, 4, 0);
|
||||
lv_obj_set_style_pad_row(s_panel, theme::GAP, 0);
|
||||
lv_obj_set_flex_flow(s_panel, LV_FLEX_FLOW_COLUMN);
|
||||
lv_obj_set_flex_align(s_panel, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
|
||||
lv_obj_remove_flag(s_panel, LV_OBJ_FLAG_GESTURE_BUBBLE); // a swipe on it (or a tile) is its own
|
||||
lv_obj_add_event_cb(s_panel, onPanelGesture, LV_EVENT_GESTURE, NULL);
|
||||
|
||||
lv_obj_t* grid = flexBox(s_panel, LV_FLEX_FLOW_ROW_WRAP);
|
||||
lv_obj_set_width(grid, LV_PCT(100));
|
||||
lv_obj_set_style_pad_column(grid, theme::GAP, 0);
|
||||
lv_obj_set_style_pad_row(grid, theme::GAP, 0);
|
||||
const int tw = (w - 2 * theme::PAD - (COLS - 1) * theme::GAP) / COLS;
|
||||
for (int t = 0; t < T_COUNT; t++) s_tile[t] = tile(grid, t, tw);
|
||||
|
||||
lv_obj_t* row = flexBox(s_panel, LV_FLEX_FLOW_ROW);
|
||||
lv_obj_set_size(row, LV_PCT(100), 30);
|
||||
lv_obj_set_style_pad_hor(row, 6, 0);
|
||||
lv_obj_set_style_pad_column(row, 12, 0);
|
||||
lv_obj_set_flex_align(row, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
|
||||
label(row, UI_SYMBOL_SUN, THEME_FONT_TITLE, theme::TEXT_MUTED);
|
||||
s_slider = lv_slider_create(row);
|
||||
lv_slider_set_range(s_slider, 5, 100);
|
||||
lv_obj_set_height(s_slider, 8);
|
||||
lv_obj_set_flex_grow(s_slider, 1);
|
||||
lv_obj_set_style_margin_right(s_slider, 8, 0);
|
||||
lv_obj_set_ext_click_area(s_slider, 14);
|
||||
lv_obj_remove_flag(s_slider, LV_OBJ_FLAG_GESTURE_BUBBLE); // a drag along it isn't a swipe up
|
||||
lv_obj_set_style_bg_color(s_slider, lv_color_hex(theme::mix(theme::ACCENT, theme::SURFACE, 20)), LV_PART_MAIN);
|
||||
lv_obj_set_style_bg_opa(s_slider, LV_OPA_COVER, LV_PART_MAIN);
|
||||
lv_obj_add_event_cb(s_slider, onBrightness, LV_EVENT_VALUE_CHANGED, NULL);
|
||||
lv_obj_add_event_cb(s_slider, onBrightness, LV_EVENT_RELEASED, NULL);
|
||||
|
||||
lv_obj_t* grip = lv_obj_create(s_panel); // the handle: it goes back up
|
||||
lv_obj_remove_style_all(grip);
|
||||
lv_obj_set_size(grip, 36, 4);
|
||||
lv_obj_set_style_radius(grip, LV_RADIUS_CIRCLE, 0);
|
||||
lv_obj_set_style_bg_color(grip, lv_color_hex(theme::SURFACE_2), 0);
|
||||
lv_obj_set_style_bg_opa(grip, LV_OPA_COVER, 0);
|
||||
|
||||
lv_obj_add_flag(s_dim, LV_OBJ_FLAG_HIDDEN);
|
||||
lv_obj_add_flag(s_panel, LV_OBJ_FLAG_HIDDEN);
|
||||
lv_obj_move_foreground(_toast);
|
||||
lv_obj_move_foreground(s_status_bar);
|
||||
}
|
||||
|
||||
// Ready to come down, up under the status bar: false when it can't (locked).
|
||||
bool UITask::quickPanelBegin() {
|
||||
using namespace qpanel;
|
||||
if (_asleep || locked()) return false;
|
||||
if (!s_panel) quickPanelBuild();
|
||||
if (_nav_overlay) navClosePopup();
|
||||
pickerClose();
|
||||
quickPanelRefresh();
|
||||
lv_anim_delete(s_panel, NULL);
|
||||
lv_obj_remove_flag(s_dim, LV_OBJ_FLAG_HIDDEN);
|
||||
lv_obj_remove_flag(s_panel, LV_OBJ_FLAG_HIDDEN);
|
||||
layoutNow(s_panel);
|
||||
s_h = lv_obj_get_height(s_panel) + theme::STATUS_H;
|
||||
place(-s_h);
|
||||
return true;
|
||||
}
|
||||
|
||||
void UITask::quickPanelClose(bool animate) {
|
||||
using namespace qpanel;
|
||||
if (!s_panel || (!s_open && lv_obj_has_flag(s_panel, LV_OBJ_FLAG_HIDDEN))) return;
|
||||
s_open = s_drag = false;
|
||||
if (animate) { slide(-s_h, true); return; }
|
||||
lv_anim_delete(s_panel, NULL);
|
||||
hidden(nullptr);
|
||||
}
|
||||
|
||||
bool UITask::quickPanelOpen() const { return qpanel::s_open; }
|
||||
|
||||
// The tiles as things are now: on its way down, after a tap, and every second.
|
||||
void UITask::quickPanelRefresh() {
|
||||
using namespace qpanel;
|
||||
if (!s_panel) return;
|
||||
tileSet(T_BT, LV_SYMBOL_BLUETOOTH, hasConnection() ? "Connected" : "Bluetooth", isSerialEnabled());
|
||||
tileSet(T_WIFI, LV_SYMBOL_WIFI, lvport::netRadio() == lvport::NET_UP ? "Online" : "WiFi", lvport::wifiAllowed());
|
||||
int32_t lat, lon;
|
||||
const bool gps = _core->gpsEnabled();
|
||||
tileSet(T_GPS, LV_SYMBOL_GPS, !_core->gpsAvailable() ? "No GPS" : gps && _core->course.currentLocation(lat, lon) ? "GPS fix" : "GPS",
|
||||
gps, !_core->gpsAvailable());
|
||||
#ifdef PIN_BUZZER
|
||||
const bool auto_mode = _prefs && soundctl::mode(_prefs) == soundctl::MODE_AUTO;
|
||||
tileSet(T_SOUND, _buzzer.isQuiet() ? UI_SYMBOL_MUTE : LV_SYMBOL_VOLUME_MAX,
|
||||
_buzzer.isQuiet() ? (auto_mode ? "Auto, silent" : "Muted") : (auto_mode ? "Auto" : "Sound"), !_buzzer.isQuiet());
|
||||
#else
|
||||
tileSet(T_SOUND, UI_SYMBOL_MUTE, "No sound", false, true);
|
||||
#endif
|
||||
tileSet(T_ADVERT, UI_SYMBOL_RADIO, "Advert", _prefs && _prefs->advert_auto_interval_sec > 0);
|
||||
tileSet(T_TRAIL, UI_SYMBOL_ROUTE, "Trail", _core->trail.isActive());
|
||||
tileSet(T_SHARE, UI_SYMBOL_PIN, "Live share", _prefs && _prefs->loc_share_enabled);
|
||||
tileSet(T_LOCK, UI_SYMBOL_LOCK, "Lock", false);
|
||||
if (_prefs) {
|
||||
const int pct = _prefs->display_brightness_pct ? _prefs->display_brightness_pct
|
||||
: (_prefs->display_brightness * 25 > 5 ? _prefs->display_brightness * 25 : 5);
|
||||
if (!lv_obj_has_state(s_slider, LV_STATE_PRESSED)) lv_slider_set_value(s_slider, pct, LV_ANIM_OFF);
|
||||
}
|
||||
}
|
||||
|
||||
// A tap switches; a hold opens the settings behind the tile (the panel goes).
|
||||
void UITask::quickPanelTile(int t, bool hold) {
|
||||
using namespace qpanel;
|
||||
if (hold || t == T_ADVERT || t == T_LOCK) {
|
||||
quickPanelClose(false);
|
||||
switch (t) {
|
||||
case T_BT: showSettings(); break; // Connections, at the top
|
||||
case T_WIFI: showWifi(); break;
|
||||
case T_GPS: if (_core->gpsAvailable()) showGps(false); break;
|
||||
case T_SOUND: showSchemaSettings(settings::PG_SOUND); break;
|
||||
case T_ADVERT: advertPopup(); break;
|
||||
case T_TRAIL:
|
||||
case T_SHARE: openMap(true); navToolsPopup(); break;
|
||||
case T_LOCK: lockScreen(); break;
|
||||
}
|
||||
return;
|
||||
}
|
||||
// The tile shows what changed: no toast saying it again.
|
||||
switch (t) {
|
||||
case T_BT: setBluetooth(!isSerialEnabled()); break;
|
||||
case T_WIFI: wifiSetAllowed(!lvport::wifiAllowed()); break;
|
||||
case T_GPS: if (_core->gpsAvailable()) setGps(!_core->gpsEnabled()); break;
|
||||
case T_SOUND:
|
||||
#ifdef PIN_BUZZER
|
||||
if (_prefs) { // as the side button's hold: on / off, leaving Auto
|
||||
const bool on = _buzzer.isQuiet();
|
||||
soundctl::setMode(_prefs, _buzzer, on ? soundctl::MODE_ON : soundctl::MODE_OFF, isClientConnected());
|
||||
prefsSave();
|
||||
if (on) _buzzer.playForced(soundctl::MEL_VOLUME);
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
case T_TRAIL:
|
||||
_core->trail.setActive(!_core->trail.isActive());
|
||||
if (_core->trail.isActive()) ensureGps(); // turns GPS on, or says it's waiting
|
||||
break;
|
||||
case T_SHARE:
|
||||
if (!_prefs) break;
|
||||
_prefs->loc_share_enabled = !_prefs->loc_share_enabled;
|
||||
if (_prefs->loc_share_enabled) { _core->live_share.restartSession(); ensureGps(); }
|
||||
prefsSave();
|
||||
break;
|
||||
}
|
||||
refreshStatusBar();
|
||||
quickPanelRefresh();
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
// Quick messages and placeholders (the compose bar's "+", Settings > Messages
|
||||
// & contacts > Quick messages), the advert button in Nodes' header, Settings > Bluetooth, and
|
||||
// & contacts > Quick messages), the advert popup (the quick panel's Advert), Settings > Bluetooth, and
|
||||
// Messages' "Read all". The text side is ui-core/MessageText.h.
|
||||
// Included by UITask.cpp (single translation unit).
|
||||
|
||||
@@ -62,7 +62,6 @@ static void onBtSwitch(lv_event_t* e) {
|
||||
|
||||
} // namespace qview
|
||||
|
||||
static void onAdvertRow(lv_event_t* e) { (void)e; s_ui->advertPopup(); }
|
||||
static void onOpenQuickMsgs(lv_event_t* e) { (void)e; s_ui->showQuickMsgs(); }
|
||||
|
||||
// ── The compose bar's "+" ─────────────────────────────────────────────────────
|
||||
@@ -189,7 +188,7 @@ void UITask::quickEditDone(bool ok) {
|
||||
}
|
||||
}
|
||||
|
||||
// ── Nearby > advert ───────────────────────────────────────────────────────────
|
||||
// ── Advert (the quick panel) ─────────────────────────────────────────────────
|
||||
// Shows you (and your position, if shared) to other nodes: now, or on a timer
|
||||
// (the schema's PG_ADVERT page, ui-new's Tools > Auto-Advert).
|
||||
|
||||
|
||||
@@ -58,6 +58,8 @@ namespace theme {
|
||||
#define UI_SYMBOL_KEY "\xEF\x82\x84" // U+F084, admin
|
||||
#define UI_SYMBOL_ROUTE "\xEF\x93\x97" // U+F4D7, trail
|
||||
#define UI_SYMBOL_MUTE "\xEF\x9A\xA9" // U+F6A9, muted (speaker with a cross)
|
||||
#define UI_SYMBOL_LOCK "\xEF\x80\xA3" // U+F023, quick panel: lock the screen
|
||||
#define UI_SYMBOL_SUN "\xEF\x86\x85" // U+F185, quick panel: brightness
|
||||
|
||||
// Accent choices; the fill is the colour at 42% over the background.
|
||||
struct Accent { const char* name; uint32_t col; };
|
||||
|
||||
@@ -1671,7 +1671,10 @@ void UITask::loop() {
|
||||
}
|
||||
else if (btn_hold) mute_armed = true;
|
||||
else if (mute) toggleMute();
|
||||
else if (btn_click) { if (!_asleep && !locked()) goHome(); } // the side button doesn't wake: pockets
|
||||
else if (btn_click) { // the side button doesn't wake: pockets
|
||||
if (quickPanelOpen()) quickPanelClose(true);
|
||||
else if (!_asleep && !locked()) goHome();
|
||||
}
|
||||
|
||||
if (_asleep) {
|
||||
// Tap to wake (off: the top button only). An I2C read on the touch panel.
|
||||
@@ -1966,6 +1969,7 @@ void UITask::loop() {
|
||||
refreshCompass();
|
||||
refreshGps();
|
||||
refreshBattCurve();
|
||||
if (quickPanelOpen()) quickPanelRefresh();
|
||||
}
|
||||
if (locked()) lockPoll();
|
||||
else if (_screen == SCR_HOME) { homeSwipePoll(); homeMapLoop(); }
|
||||
@@ -1998,6 +2002,8 @@ void UITask::loop() {
|
||||
_next_thread_check_ms = millis() + 500;
|
||||
uint32_t sig = threadSignature();
|
||||
if (_thread_dirty || sig != _thread_sig) refreshThread();
|
||||
else if ((int32_t)(millis() - _next_thread_ages_ms) >= 0) refreshThreadAges();
|
||||
messagePopupTick();
|
||||
}
|
||||
lvport::cpuSlow(!cpuNeeded());
|
||||
lv_next = lv_timer_handler();
|
||||
@@ -2068,6 +2074,7 @@ uint32_t UITask::autoOffMillis() const {
|
||||
void UITask::sleep() {
|
||||
if (_asleep) return;
|
||||
_asleep = true;
|
||||
quickPanelClose(false);
|
||||
if (_display) _display->turnOff();
|
||||
prefsSaveSoon(0); // nothing to stall now
|
||||
lvport::powerSave(true, _tap_wake);
|
||||
@@ -2079,11 +2086,13 @@ void UITask::wake() {
|
||||
if (!_asleep) return;
|
||||
_asleep = false;
|
||||
lvport::powerSave(false, _tap_wake);
|
||||
if (_display) _display->turnOn();
|
||||
if (_display) _display->turnOn(); // dark until the frame below is on the panel
|
||||
refreshStatusBar();
|
||||
if (_screen == SCR_HOME) refreshHome();
|
||||
if (_screen == SCR_THREAD) refreshThread();
|
||||
lv_obj_invalidate(lv_screen_active());
|
||||
lv_refr_now(NULL);
|
||||
lvport::backlightFadeIn();
|
||||
}
|
||||
|
||||
// ── Core events ───────────────────────────────────────────────────────────────
|
||||
@@ -2268,6 +2277,8 @@ bool UITask::isViewingDM(const uint8_t* pub_key) {
|
||||
|
||||
// ── Status bar + toast (top layer, over every screen) ─────────────────────────
|
||||
|
||||
static void onStatusBarTouch(lv_event_t* e); // QuickPanel.h
|
||||
|
||||
void UITask::buildStatusBar() {
|
||||
// The banner and the toast first: the status bar, made after them, covers
|
||||
// them as they slide in and out from under it.
|
||||
@@ -2292,7 +2303,9 @@ void UITask::buildStatusBar() {
|
||||
s_status_bar = bar;
|
||||
styleOpaque(bar, theme::BG);
|
||||
lv_obj_remove_flag(bar, LV_OBJ_FLAG_SCROLLABLE);
|
||||
lv_obj_remove_flag(bar, LV_OBJ_FLAG_CLICKABLE);
|
||||
lv_obj_add_flag(bar, LV_OBJ_FLAG_PRESS_LOCK); // pulled down past it: still its touch (the quick panel)
|
||||
lv_obj_remove_flag(bar, LV_OBJ_FLAG_GESTURE_BUBBLE);
|
||||
lv_obj_add_event_cb(bar, onStatusBarTouch, LV_EVENT_ALL, NULL);
|
||||
lv_obj_set_size(bar, LV_PCT(100), theme::STATUS_H);
|
||||
lv_obj_align(bar, LV_ALIGN_TOP_MID, 0, 0);
|
||||
lv_obj_set_style_pad_hor(bar, theme::PAD, 0);
|
||||
@@ -2369,8 +2382,10 @@ void UITask::refreshStatusBar() {
|
||||
if (lvport::wifiAllowed()) // WiFi switched on: accent while connected (map tiles, update)
|
||||
icons[n++] = { LV_SYMBOL_WIFI, lvport::netRadio() == lvport::NET_UP ? theme::ACCENT : theme::TEXT_MUTED };
|
||||
int32_t lat, lon;
|
||||
bool fix = _core->course.currentLocation(lat, lon);
|
||||
if (_core->gpsEnabled() || fix) icons[n++] = { LV_SYMBOL_GPS, fix ? theme::OK : theme::TEXT_MUTED };
|
||||
if (_core->gpsEnabled()) { // switched off, the module still reports its last fix as valid
|
||||
bool fix = _core->course.currentLocation(lat, lon);
|
||||
icons[n++] = { LV_SYMBOL_GPS, fix ? theme::OK : theme::TEXT_MUTED };
|
||||
}
|
||||
if (_prefs && _prefs->alarm_on) icons[n++] = { LV_SYMBOL_BELL, theme::TEXT_MUTED };
|
||||
#ifdef PIN_BUZZER
|
||||
if (_buzzer.isQuiet()) icons[n++] = { UI_SYMBOL_MUTE, theme::TEXT_MUTED };
|
||||
@@ -2403,9 +2418,9 @@ void UITask::botSetGPS(bool on) { if (_core->setGpsEnabled(on)) refreshStatusBar
|
||||
|
||||
bool UITask::ensureGps() {
|
||||
int32_t lat, lon;
|
||||
if (_core->gpsAvailable() && !_core->gpsEnabled()) { setGps(true); return false; } // off, its last fix still reads valid
|
||||
if (_core->course.currentLocation(lat, lon)) return true;
|
||||
if (_core->gpsAvailable() && !_core->gpsEnabled()) setGps(true);
|
||||
else showToast("Waiting for a GPS fix");
|
||||
showToast("Waiting for a GPS fix");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -2614,6 +2629,7 @@ int UITask::fillPending() const {
|
||||
#include "NodeViz.h" // the node detail's rose and path (newScreen() drops its card)
|
||||
|
||||
lv_obj_t* UITask::newScreen(const char* title, bool with_back) {
|
||||
quickPanelClose(false);
|
||||
s_fill_n = 0; // what was still to be built goes with the screen
|
||||
_home_clock = _home_date = _home_unread = nullptr;
|
||||
_thread_list = _compose_ta = _keyboard = nullptr;
|
||||
@@ -2711,6 +2727,7 @@ int UITask::screenDepth(Screen s) {
|
||||
}
|
||||
|
||||
void UITask::back() {
|
||||
if (quickPanelOpen()) { quickPanelClose(true); return; }
|
||||
_nav_back = true; // the screen shown from here slides back
|
||||
switch (_screen) {
|
||||
case SCR_THREAD: if (_nav_overlay) navClosePopup(); else showChats(); break;
|
||||
@@ -3410,7 +3427,6 @@ enum : uint8_t { NODE_MSG, NODE_PING, NODE_FAV, NODE_ADD, NODE_DELETE, NODE_NAV,
|
||||
static void onNearbyChip(lv_event_t* e) { s_ui->setNearbyFilter((uint8_t)(uintptr_t)lv_event_get_user_data(e)); }
|
||||
static void onNearbySort(lv_event_t* e) { (void)e; s_ui->toggleNearbySort(); }
|
||||
static void onNearbyScan(lv_event_t* e) { (void)e; s_ui->startNearbyScan(); }
|
||||
static void onAdvertRow(lv_event_t* e); // QuickScreen.h
|
||||
static void onNearbyRow(lv_event_t* e) { s_ui->openNode((int)vlist::arg(e)); }
|
||||
static void onScanRow(lv_event_t* e) { s_ui->openScanNode((int)vlist::arg(e)); }
|
||||
static void onScanClose(lv_event_t* e) { (void)e; s_ui->closeScanPopup(); }
|
||||
@@ -3444,8 +3460,7 @@ void UITask::buildNearby() {
|
||||
if (_header) {
|
||||
headerButton(_header, LV_SYMBOL_REFRESH, onNearbyScan, 4, NULL); // scan
|
||||
lv_obj_set_width(headerButton(_header, "", onNearbySort, 46, &_nearby_sort_lbl), 62); // fits "Recent" / "Dist"
|
||||
headerButton(_header, UI_SYMBOL_MAP, onOpenNodesMap, 114, NULL); // the Nodes map
|
||||
headerButton(_header, UI_SYMBOL_RADIO, onAdvertRow, 156, NULL); // send advert, auto-advert
|
||||
headerButton(_header, UI_SYMBOL_MAP, onOpenNodesMap, 114, NULL); // the Nodes map (the advert: the quick panel)
|
||||
}
|
||||
|
||||
// Type filter chips
|
||||
@@ -4335,10 +4350,23 @@ void UITask::threadPage(int dir) {
|
||||
refreshThread();
|
||||
}
|
||||
|
||||
// Every 2 s on a conversation, as ui-new: the bubbles' ages ("12s", "14s").
|
||||
void UITask::refreshThreadAges() {
|
||||
_next_thread_ages_ms = millis() + 2000;
|
||||
uint32_t now = rtc_clock.getCurrentTime();
|
||||
for (int r = 0; r < s_th_rows_n; r++) {
|
||||
if (!s_th_rows[r].age) continue;
|
||||
char meta[32];
|
||||
fmtMsgAge(meta, sizeof(meta), now, _thread_is_channel ? s_th_ch[r].timestamp : s_th_dm[r].timestamp, _prefs);
|
||||
setText(s_th_rows[r].age, meta);
|
||||
}
|
||||
}
|
||||
|
||||
void UITask::refreshThread() {
|
||||
if (!_thread_list) return;
|
||||
_thread_dirty = false;
|
||||
_thread_sig = threadSignature();
|
||||
_next_thread_ages_ms = millis() + 2000; // the ages are written below
|
||||
const MessageHistory& h = _core->history;
|
||||
int total = 0;
|
||||
int n = loadThreadPage(total);
|
||||
@@ -4933,6 +4961,7 @@ void UITask::setKeyboardAlphabets(int main_idx, int alt_sel) {
|
||||
#include "RepeaterScreen.h"
|
||||
#include "SoundScreen.h"
|
||||
#include "QuickScreen.h"
|
||||
#include "QuickPanel.h"
|
||||
#include "OtaScreen.h"
|
||||
#include "StorageScreen.h"
|
||||
#include "Splash.h"
|
||||
|
||||
@@ -53,6 +53,13 @@ public:
|
||||
void homeAppDrop(int from, int to);
|
||||
void homeAppToggle(int pos);
|
||||
void goHome(); // the side button: Home's clock page
|
||||
// The quick panel, pulled down from the status bar (QuickPanel.h)
|
||||
void quickPanelBuild();
|
||||
bool quickPanelBegin();
|
||||
void quickPanelClose(bool animate);
|
||||
bool quickPanelOpen() const;
|
||||
void quickPanelRefresh();
|
||||
void quickPanelTile(int t, bool hold);
|
||||
void homeFieldSet(int slot, int field);
|
||||
void showChats();
|
||||
void showContacts();
|
||||
@@ -240,6 +247,7 @@ public:
|
||||
void conversationAction(uint8_t act);
|
||||
void conversationNotif(int v);
|
||||
void messageMenu(int idx);
|
||||
void messagePopupTick();
|
||||
void messageAction(uint8_t act);
|
||||
void chatFold(int which);
|
||||
void toggleChatFilter(uint8_t which);
|
||||
@@ -396,6 +404,7 @@ private:
|
||||
void refreshNode();
|
||||
void buildThread();
|
||||
void refreshThread();
|
||||
void refreshThreadAges();
|
||||
uint32_t threadSignature() const;
|
||||
void buildClock();
|
||||
void buildRadio();
|
||||
@@ -484,6 +493,7 @@ private:
|
||||
bool _asleep = false;
|
||||
uint32_t _next_status_ms = 0;
|
||||
uint32_t _next_thread_check_ms = 0;
|
||||
uint32_t _next_thread_ages_ms = 0;
|
||||
uint32_t _next_trackback_ms = 0;
|
||||
uint32_t _next_clock_ms = 0;
|
||||
uint8_t _settings_page = 0; // settings::Page shown in SCR_SETTINGS_NAV
|
||||
|
||||
@@ -32,8 +32,9 @@ TEXT="$TEXT,0x2010-0x2027,0x2030,0x2039-0x203A,0x20A4-0x20BF,0x2116,0x2122"
|
||||
# 61476 = flag (waypoint), 62405 = map marker (mark here), 61463 = clock,
|
||||
# 62194 = stopwatch, 62745 = broadcast tower (radio), 61568 = bar chart (diagnostics),
|
||||
# 61572 = key (admin), 62679 = route (trail in the status bar),
|
||||
# 63145 = volume-mute (muted, in the status bar), 61581 = thumbtack (pin to the Home dial)
|
||||
SYMS="61581,63145,61572,62679,61568,62745,61463,62194,61612,61445,62073,61632,61774,61476,62405,61441,61448,61451,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61507,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61641,61664,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650"
|
||||
# 63145 = volume-mute (muted, in the status bar), 61581 = thumbtack (pin to the Home dial),
|
||||
# 61475 = lock, 61829 = sun (the quick panel's lock and brightness)
|
||||
SYMS="61475,61829,61581,63145,61572,62679,61568,62745,61463,62194,61612,61445,62073,61632,61774,61476,62405,61441,61448,61451,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61507,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61641,61664,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650"
|
||||
|
||||
CONV="npx -y lv_font_conv@1.5.3"
|
||||
gen() { # size weight ranges name
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
* Size: 12 px
|
||||
* Bpp: 4
|
||||
* Opts: --bpp 4 --size 12 --no-compress --force-fast-kern-format --font /var/folders/1d/dgkmygls6x5gsb16pbn2mwlr0000gn/T//meshcore-ui-fonts/NotoSans-Medium.ttf -r 0x20-0x7E,0xA0-0x24F,0x370-0x3FF,0x400-0x52F,0x1E80-0x1E85,0x1E9E,0x1EF2-0x1EF3,0x2010-0x2027,0x2030,0x2039-0x203A,0x20A4-0x20BF,0x2116,0x2122 --font /var/folders/1d/dgkmygls6x5gsb16pbn2mwlr0000gn/T//meshcore-ui-fonts/fa.woff -r 61581,63145,61572,62679,61568,62745,61463,62194,61612,61445,62073,61632,61774,61476,62405,61441,61448,61451,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61507,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61641,61664,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650 --format lvgl --lv-include lvgl.h --lv-font-name ui_font_12 -o /Users/jakub/Documents/MeshCore/MeshCore/examples/companion_radio/ui-lvgl/fonts/ui_font_12.c
|
||||
* Opts: --bpp 4 --size 12 --no-compress --force-fast-kern-format --font /var/folders/1d/dgkmygls6x5gsb16pbn2mwlr0000gn/T//meshcore-ui-fonts/NotoSans-Medium.ttf -r 0x20-0x7E,0xA0-0x24F,0x370-0x3FF,0x400-0x52F,0x1E80-0x1E85,0x1E9E,0x1EF2-0x1EF3,0x2010-0x2027,0x2030,0x2039-0x203A,0x20A4-0x20BF,0x2116,0x2122 --font /var/folders/1d/dgkmygls6x5gsb16pbn2mwlr0000gn/T//meshcore-ui-fonts/fa.woff -r 61475,61829,61581,63145,61572,62679,61568,62745,61463,62194,61612,61445,62073,61632,61774,61476,62405,61441,61448,61451,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61507,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61641,61664,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650 --format lvgl --lv-include lvgl.h --lv-font-name ui_font_12 -o /Users/jakub/Documents/MeshCore/MeshCore/examples/companion_radio/ui-lvgl/fonts/ui_font_12.c
|
||||
******************************************************************************/
|
||||
|
||||
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
|
||||
@@ -7207,6 +7207,17 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0xfe, 0x30, 0xfa, 0x8, 0xef, 0xfe, 0x91, 0x0,
|
||||
0x95, 0x0, 0x1, 0x10, 0x0, 0x0,
|
||||
|
||||
/* U+F023 "" */
|
||||
0x0, 0x3, 0x9a, 0x70, 0x0, 0x0, 0x5, 0xff,
|
||||
0xff, 0xc0, 0x0, 0x0, 0xef, 0x63, 0xcf, 0x70,
|
||||
0x0, 0x3f, 0xa0, 0x2, 0xfb, 0x0, 0x4, 0xf9,
|
||||
0x0, 0x1f, 0xc0, 0x0, 0x5f, 0x90, 0x1, 0xfd,
|
||||
0x0, 0xcf, 0xff, 0xff, 0xff, 0xff, 0x4f, 0xff,
|
||||
0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff,
|
||||
0xff, 0xf7, 0x6b, 0xbb, 0xbb, 0xbb, 0xba, 0x10,
|
||||
|
||||
/* U+F024 "" */
|
||||
0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xfd,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xfa, 0xca,
|
||||
@@ -7649,6 +7660,18 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x34, 0x44,
|
||||
0x44, 0x44, 0x30,
|
||||
|
||||
/* U+F185 "" */
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0xa, 0xa0, 0x0, 0x0, 0x3, 0x82, 0x2f, 0xf2,
|
||||
0x28, 0x30, 0x2, 0xff, 0xfd, 0xdf, 0xff, 0x20,
|
||||
0x0, 0xce, 0x36, 0x63, 0xec, 0x0, 0x4, 0xd5,
|
||||
0xdf, 0xfd, 0x5d, 0x40, 0xbf, 0xf4, 0xff, 0xff,
|
||||
0x4f, 0xfb, 0x3b, 0xf3, 0xff, 0xff, 0x3f, 0xb3,
|
||||
0x0, 0xba, 0x5d, 0xd5, 0xab, 0x0, 0x0, 0xff,
|
||||
0xb5, 0x6b, 0xff, 0x0, 0x4, 0xe9, 0x8f, 0xf8,
|
||||
0x9e, 0x40, 0x0, 0x0, 0xd, 0xd0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x4, 0x40, 0x0, 0x0,
|
||||
|
||||
/* U+F1EB "" */
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x5, 0x9b, 0xcb, 0x95, 0x0, 0x0, 0x0,
|
||||
@@ -8907,68 +8930,70 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
|
||||
{.bitmap_index = 37247, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 37325, .adv_w = 216, .box_w = 14, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 37388, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 37466, .adv_w = 192, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 37551, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 37581, .adv_w = 144, .box_w = 9, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 37626, .adv_w = 216, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 37717, .adv_w = 192, .box_w = 12, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 37771, .adv_w = 132, .box_w = 9, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 37830, .adv_w = 168, .box_w = 8, .box_h = 12, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 37878, .adv_w = 168, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 37950, .adv_w = 168, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 38011, .adv_w = 168, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 38072, .adv_w = 168, .box_w = 8, .box_h = 12, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 38120, .adv_w = 168, .box_w = 12, .box_h = 11, .ofs_x = -1, .ofs_y = -1},
|
||||
{.bitmap_index = 38186, .adv_w = 120, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 38225, .adv_w = 120, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 38264, .adv_w = 168, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 38325, .adv_w = 168, .box_w = 11, .box_h = 3, .ofs_x = 0, .ofs_y = 3},
|
||||
{.bitmap_index = 38342, .adv_w = 216, .box_w = 14, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 38405, .adv_w = 240, .box_w = 16, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 38509, .adv_w = 216, .box_w = 15, .box_h = 13, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 38607, .adv_w = 192, .box_w = 12, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 38673, .adv_w = 168, .box_w = 11, .box_h = 7, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 38712, .adv_w = 168, .box_w = 11, .box_h = 7, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 38751, .adv_w = 240, .box_w = 16, .box_h = 10, .ofs_x = -1, .ofs_y = 0},
|
||||
{.bitmap_index = 38831, .adv_w = 192, .box_w = 12, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 38885, .adv_w = 192, .box_w = 12, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 38939, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 39017, .adv_w = 144, .box_w = 9, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 39076, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 39154, .adv_w = 192, .box_w = 13, .box_h = 13, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 39239, .adv_w = 186, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 39317, .adv_w = 240, .box_w = 15, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 39400, .adv_w = 168, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 39461, .adv_w = 168, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 39533, .adv_w = 168, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 39594, .adv_w = 168, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 39655, .adv_w = 192, .box_w = 12, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 39709, .adv_w = 120, .box_w = 9, .box_h = 13, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 39768, .adv_w = 168, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 37466, .adv_w = 168, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 37538, .adv_w = 192, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 37623, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 37653, .adv_w = 144, .box_w = 9, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 37698, .adv_w = 216, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 37789, .adv_w = 192, .box_w = 12, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 37843, .adv_w = 132, .box_w = 9, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 37902, .adv_w = 168, .box_w = 8, .box_h = 12, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 37950, .adv_w = 168, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 38022, .adv_w = 168, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 38083, .adv_w = 168, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 38144, .adv_w = 168, .box_w = 8, .box_h = 12, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 38192, .adv_w = 168, .box_w = 12, .box_h = 11, .ofs_x = -1, .ofs_y = -1},
|
||||
{.bitmap_index = 38258, .adv_w = 120, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 38297, .adv_w = 120, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 38336, .adv_w = 168, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 38397, .adv_w = 168, .box_w = 11, .box_h = 3, .ofs_x = 0, .ofs_y = 3},
|
||||
{.bitmap_index = 38414, .adv_w = 216, .box_w = 14, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 38477, .adv_w = 240, .box_w = 16, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 38581, .adv_w = 216, .box_w = 15, .box_h = 13, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 38679, .adv_w = 192, .box_w = 12, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 38745, .adv_w = 168, .box_w = 11, .box_h = 7, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 38784, .adv_w = 168, .box_w = 11, .box_h = 7, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 38823, .adv_w = 240, .box_w = 16, .box_h = 10, .ofs_x = -1, .ofs_y = 0},
|
||||
{.bitmap_index = 38903, .adv_w = 192, .box_w = 12, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 38957, .adv_w = 192, .box_w = 12, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 39011, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 39089, .adv_w = 144, .box_w = 9, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 39148, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 39226, .adv_w = 192, .box_w = 13, .box_h = 13, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 39311, .adv_w = 186, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 39389, .adv_w = 240, .box_w = 15, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 39472, .adv_w = 168, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 39533, .adv_w = 168, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 39605, .adv_w = 168, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 39666, .adv_w = 168, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 39727, .adv_w = 192, .box_w = 12, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 39781, .adv_w = 120, .box_w = 9, .box_h = 13, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 39840, .adv_w = 168, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 39912, .adv_w = 216, .box_w = 14, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 39975, .adv_w = 192, .box_w = 14, .box_h = 13, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 40066, .adv_w = 186, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 40144, .adv_w = 144, .box_w = 9, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 40203, .adv_w = 240, .box_w = 15, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 40293, .adv_w = 240, .box_w = 15, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 40361, .adv_w = 240, .box_w = 15, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 40429, .adv_w = 240, .box_w = 15, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 40497, .adv_w = 240, .box_w = 15, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 40565, .adv_w = 240, .box_w = 15, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 40633, .adv_w = 216, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 40710, .adv_w = 240, .box_w = 16, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 40798, .adv_w = 168, .box_w = 10, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 40863, .adv_w = 168, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 40935, .adv_w = 168, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 41007, .adv_w = 192, .box_w = 13, .box_h = 13, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 41092, .adv_w = 144, .box_w = 9, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 41151, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 41229, .adv_w = 240, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 41327, .adv_w = 240, .box_w = 15, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 41395, .adv_w = 192, .box_w = 13, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 41460, .adv_w = 144, .box_w = 9, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 41519, .adv_w = 193, .box_w = 13, .box_h = 9, .ofs_x = 0, .ofs_y = 0}
|
||||
{.bitmap_index = 39912, .adv_w = 168, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 39984, .adv_w = 216, .box_w = 14, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 40047, .adv_w = 192, .box_w = 14, .box_h = 13, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 40138, .adv_w = 186, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 40216, .adv_w = 144, .box_w = 9, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 40275, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 40353, .adv_w = 240, .box_w = 15, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 40443, .adv_w = 240, .box_w = 15, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 40511, .adv_w = 240, .box_w = 15, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 40579, .adv_w = 240, .box_w = 15, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 40647, .adv_w = 240, .box_w = 15, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 40715, .adv_w = 240, .box_w = 15, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 40783, .adv_w = 216, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 40860, .adv_w = 240, .box_w = 16, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 40948, .adv_w = 168, .box_w = 10, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 41013, .adv_w = 168, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 41085, .adv_w = 168, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 41157, .adv_w = 192, .box_w = 13, .box_h = 13, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 41242, .adv_w = 144, .box_w = 9, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 41301, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 41379, .adv_w = 240, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 41477, .adv_w = 240, .box_w = 15, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 41545, .adv_w = 192, .box_w = 13, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 41610, .adv_w = 144, .box_w = 9, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 41669, .adv_w = 193, .box_w = 13, .box_h = 9, .ofs_x = 0, .ofs_y = 0}
|
||||
};
|
||||
|
||||
/*---------------------
|
||||
@@ -8993,15 +9018,15 @@ static const uint16_t unicode_list_10[] = {
|
||||
|
||||
static const uint16_t unicode_list_12[] = {
|
||||
0x0, 0xc, 0xceeb, 0xceef, 0xcef2, 0xcef5, 0xcef6, 0xcef7,
|
||||
0xcefb, 0xcefd, 0xceff, 0xcf01, 0xcf03, 0xcf06, 0xcf0b, 0xcf0e,
|
||||
0xcf10, 0xcf11, 0xcf12, 0xcf28, 0xcf2d, 0xcf32, 0xcf35, 0xcf36,
|
||||
0xcf37, 0xcf3b, 0xcf3c, 0xcf3d, 0xcf3e, 0xcf51, 0xcf52, 0xcf58,
|
||||
0xcf5a, 0xcf5b, 0xcf5e, 0xcf61, 0xcf62, 0xcf63, 0xcf65, 0xcf6a,
|
||||
0xcf6e, 0xcf77, 0xcf7d, 0xcf7f, 0xcf96, 0xcfaa, 0xcfae, 0xcfaf,
|
||||
0xcfb1, 0xcfb3, 0xcfca, 0xcfd1, 0xcfd4, 0xcfdd, 0xd006, 0xd00e,
|
||||
0xd038, 0xd045, 0xd0d5, 0xd12a, 0xd12b, 0xd12c, 0xd12d, 0xd12e,
|
||||
0xd163, 0xd171, 0xd17d, 0xd1d7, 0xd1dc, 0xd1ee, 0xd2af, 0xd3c1,
|
||||
0xd403, 0xd444, 0xd593, 0xd6ac, 0xd78c
|
||||
0xcefb, 0xcefd, 0xceff, 0xcf01, 0xcf03, 0xcf06, 0xcf0b, 0xcf0d,
|
||||
0xcf0e, 0xcf10, 0xcf11, 0xcf12, 0xcf28, 0xcf2d, 0xcf32, 0xcf35,
|
||||
0xcf36, 0xcf37, 0xcf3b, 0xcf3c, 0xcf3d, 0xcf3e, 0xcf51, 0xcf52,
|
||||
0xcf58, 0xcf5a, 0xcf5b, 0xcf5e, 0xcf61, 0xcf62, 0xcf63, 0xcf65,
|
||||
0xcf6a, 0xcf6e, 0xcf77, 0xcf7d, 0xcf7f, 0xcf96, 0xcfaa, 0xcfae,
|
||||
0xcfaf, 0xcfb1, 0xcfb3, 0xcfca, 0xcfd1, 0xcfd4, 0xcfdd, 0xd006,
|
||||
0xd00e, 0xd038, 0xd045, 0xd06f, 0xd0d5, 0xd12a, 0xd12b, 0xd12c,
|
||||
0xd12d, 0xd12e, 0xd163, 0xd171, 0xd17d, 0xd1d7, 0xd1dc, 0xd1ee,
|
||||
0xd2af, 0xd3c1, 0xd403, 0xd444, 0xd593, 0xd6ac, 0xd78c
|
||||
};
|
||||
|
||||
/*Collect the unicode lists and glyph_id offsets*/
|
||||
@@ -9057,7 +9082,7 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
|
||||
},
|
||||
{
|
||||
.range_start = 8470, .range_length = 55181, .glyph_id_start = 1017,
|
||||
.unicode_list = unicode_list_12, .glyph_id_ofs_list = NULL, .list_length = 77, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
|
||||
.unicode_list = unicode_list_12, .glyph_id_ofs_list = NULL, .list_length = 79, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
|
||||
}
|
||||
};
|
||||
|
||||
@@ -9205,7 +9230,7 @@ static const uint8_t kern_left_class_mapping[] =
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0
|
||||
0, 0, 0, 0, 0, 0, 0, 0
|
||||
};
|
||||
|
||||
/*Map glyph_ids to kern right classes*/
|
||||
@@ -9347,7 +9372,7 @@ static const uint8_t kern_right_class_mapping[] =
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0
|
||||
0, 0, 0, 0, 0, 0, 0, 0
|
||||
};
|
||||
|
||||
/*Kern values between classes*/
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
* Size: 14 px
|
||||
* Bpp: 4
|
||||
* Opts: --bpp 4 --size 14 --no-compress --force-fast-kern-format --font /var/folders/1d/dgkmygls6x5gsb16pbn2mwlr0000gn/T//meshcore-ui-fonts/NotoSans-Medium.ttf -r 0x20-0x7E,0xA0-0x24F,0x370-0x3FF,0x400-0x52F,0x1E80-0x1E85,0x1E9E,0x1EF2-0x1EF3,0x2010-0x2027,0x2030,0x2039-0x203A,0x20A4-0x20BF,0x2116,0x2122 --font /var/folders/1d/dgkmygls6x5gsb16pbn2mwlr0000gn/T//meshcore-ui-fonts/fa.woff -r 61581,63145,61572,62679,61568,62745,61463,62194,61612,61445,62073,61632,61774,61476,62405,61441,61448,61451,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61507,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61641,61664,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650 --format lvgl --lv-include lvgl.h --lv-font-name ui_font_14 -o /Users/jakub/Documents/MeshCore/MeshCore/examples/companion_radio/ui-lvgl/fonts/ui_font_14.c
|
||||
* Opts: --bpp 4 --size 14 --no-compress --force-fast-kern-format --font /var/folders/1d/dgkmygls6x5gsb16pbn2mwlr0000gn/T//meshcore-ui-fonts/NotoSans-Medium.ttf -r 0x20-0x7E,0xA0-0x24F,0x370-0x3FF,0x400-0x52F,0x1E80-0x1E85,0x1E9E,0x1EF2-0x1EF3,0x2010-0x2027,0x2030,0x2039-0x203A,0x20A4-0x20BF,0x2116,0x2122 --font /var/folders/1d/dgkmygls6x5gsb16pbn2mwlr0000gn/T//meshcore-ui-fonts/fa.woff -r 61475,61829,61581,63145,61572,62679,61568,62745,61463,62194,61612,61445,62073,61632,61774,61476,62405,61441,61448,61451,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61507,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61641,61664,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650 --format lvgl --lv-include lvgl.h --lv-font-name ui_font_14 -o /Users/jakub/Documents/MeshCore/MeshCore/examples/companion_radio/ui-lvgl/fonts/ui_font_14.c
|
||||
******************************************************************************/
|
||||
|
||||
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
|
||||
@@ -8497,6 +8497,21 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0xc1, 0x0, 0xfd, 0x0, 0x28, 0xbb, 0x94, 0x0,
|
||||
0x0,
|
||||
|
||||
/* U+F023 "" */
|
||||
0x0, 0x0, 0x2, 0x30, 0x0, 0x0, 0x0, 0x0,
|
||||
0x4e, 0xff, 0xf7, 0x0, 0x0, 0x0, 0x3f, 0xff,
|
||||
0xff, 0xf7, 0x0, 0x0, 0xc, 0xfc, 0x10, 0x9f,
|
||||
0xf0, 0x0, 0x0, 0xff, 0x30, 0x0, 0xff, 0x30,
|
||||
0x0, 0xf, 0xf2, 0x0, 0xe, 0xf4, 0x0, 0x1,
|
||||
0xff, 0x30, 0x0, 0xef, 0x50, 0xa, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xd0, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4f,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0x4f, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xf3, 0x7d, 0xdd, 0xdd, 0xdd, 0xdd,
|
||||
0xda, 0x0,
|
||||
|
||||
/* U+F024 "" */
|
||||
0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6,
|
||||
0xfe, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xaf,
|
||||
@@ -9071,6 +9086,22 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xf8, 0x8a, 0xaa, 0xaa,
|
||||
0xaa, 0xaa, 0x30,
|
||||
|
||||
/* U+F185 "" */
|
||||
0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0xbb, 0x0, 0x0, 0x0, 0x0, 0x61,
|
||||
0x3, 0xff, 0x30, 0x15, 0x0, 0x0, 0xff, 0xcd,
|
||||
0xff, 0xdc, 0xfe, 0x0, 0x0, 0xaf, 0xf8, 0x33,
|
||||
0x8f, 0xfa, 0x0, 0x0, 0x4f, 0x46, 0xdd, 0x64,
|
||||
0xf4, 0x0, 0x5, 0xdb, 0x4f, 0xff, 0xf4, 0xbd,
|
||||
0x50, 0xcf, 0xf8, 0x9f, 0xff, 0xf9, 0x8f, 0xfc,
|
||||
0x4d, 0xf9, 0x7f, 0xff, 0xf7, 0x9f, 0xd4, 0x0,
|
||||
0x7e, 0x1d, 0xff, 0xd1, 0xe7, 0x0, 0x0, 0x7f,
|
||||
0xb1, 0x55, 0x1b, 0xf7, 0x0, 0x0, 0xcf, 0xff,
|
||||
0xbb, 0xff, 0xfc, 0x0, 0x0, 0xe9, 0x47, 0xff,
|
||||
0x74, 0x9d, 0x0, 0x0, 0x0, 0x0, 0xee, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x66, 0x0, 0x0,
|
||||
0x0,
|
||||
|
||||
/* U+F1EB "" */
|
||||
0x0, 0x0, 0x0, 0x24, 0x55, 0x31, 0x0, 0x0,
|
||||
0x0, 0x0, 0x3, 0xaf, 0xff, 0xff, 0xff, 0xc7,
|
||||
@@ -10390,68 +10421,70 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
|
||||
{.bitmap_index = 47840, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 47945, .adv_w = 252, .box_w = 16, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 48033, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 48138, .adv_w = 224, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 48251, .adv_w = 112, .box_w = 7, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 48293, .adv_w = 168, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 48359, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 48471, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 48548, .adv_w = 154, .box_w = 10, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 48623, .adv_w = 196, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 48693, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 48791, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 48876, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 48961, .adv_w = 196, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 49031, .adv_w = 196, .box_w = 14, .box_h = 13, .ofs_x = -1, .ofs_y = -1},
|
||||
{.bitmap_index = 49122, .adv_w = 140, .box_w = 9, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 49181, .adv_w = 140, .box_w = 9, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 49240, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 49325, .adv_w = 196, .box_w = 13, .box_h = 4, .ofs_x = 0, .ofs_y = 3},
|
||||
{.bitmap_index = 49351, .adv_w = 252, .box_w = 16, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 49439, .adv_w = 280, .box_w = 18, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 49574, .adv_w = 252, .box_w = 17, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 49702, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 49793, .adv_w = 196, .box_w = 13, .box_h = 8, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 49845, .adv_w = 196, .box_w = 13, .box_h = 8, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 49897, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 49996, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 50073, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 50150, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 50255, .adv_w = 168, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 50338, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 50443, .adv_w = 224, .box_w = 15, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 50556, .adv_w = 217, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 50661, .adv_w = 280, .box_w = 18, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 50778, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 50863, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 50961, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 51046, .adv_w = 196, .box_w = 13, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 51124, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 51201, .adv_w = 140, .box_w = 10, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 51276, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 48138, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 48236, .adv_w = 224, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 48349, .adv_w = 112, .box_w = 7, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 48391, .adv_w = 168, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 48457, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 48569, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 48646, .adv_w = 154, .box_w = 10, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 48721, .adv_w = 196, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 48791, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 48889, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 48974, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 49059, .adv_w = 196, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 49129, .adv_w = 196, .box_w = 14, .box_h = 13, .ofs_x = -1, .ofs_y = -1},
|
||||
{.bitmap_index = 49220, .adv_w = 140, .box_w = 9, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 49279, .adv_w = 140, .box_w = 9, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 49338, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 49423, .adv_w = 196, .box_w = 13, .box_h = 4, .ofs_x = 0, .ofs_y = 3},
|
||||
{.bitmap_index = 49449, .adv_w = 252, .box_w = 16, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 49537, .adv_w = 280, .box_w = 18, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 49672, .adv_w = 252, .box_w = 17, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 49800, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 49891, .adv_w = 196, .box_w = 13, .box_h = 8, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 49943, .adv_w = 196, .box_w = 13, .box_h = 8, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 49995, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 50094, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 50171, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 50248, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 50353, .adv_w = 168, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 50436, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 50541, .adv_w = 224, .box_w = 15, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 50654, .adv_w = 217, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 50759, .adv_w = 280, .box_w = 18, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 50876, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 50961, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 51059, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 51144, .adv_w = 196, .box_w = 13, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 51222, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 51299, .adv_w = 140, .box_w = 10, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 51374, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 51472, .adv_w = 252, .box_w = 16, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 51560, .adv_w = 224, .box_w = 16, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 51680, .adv_w = 217, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 51785, .adv_w = 168, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 51868, .adv_w = 280, .box_w = 18, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 51985, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 52075, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 52165, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 52255, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 52345, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 52435, .adv_w = 252, .box_w = 16, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 52539, .adv_w = 280, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 52647, .adv_w = 196, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 52737, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 52835, .adv_w = 196, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 52925, .adv_w = 224, .box_w = 15, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 53038, .adv_w = 168, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 53121, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 53226, .adv_w = 280, .box_w = 18, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 53361, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 53460, .adv_w = 224, .box_w = 15, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 53550, .adv_w = 168, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 53633, .adv_w = 225, .box_w = 15, .box_h = 10, .ofs_x = 0, .ofs_y = 0}
|
||||
{.bitmap_index = 51472, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 51570, .adv_w = 252, .box_w = 16, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 51658, .adv_w = 224, .box_w = 16, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 51778, .adv_w = 217, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 51883, .adv_w = 168, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 51966, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 52071, .adv_w = 280, .box_w = 18, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 52188, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 52278, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 52368, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 52458, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 52548, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 52638, .adv_w = 252, .box_w = 16, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 52742, .adv_w = 280, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 52850, .adv_w = 196, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 52940, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 53038, .adv_w = 196, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 53128, .adv_w = 224, .box_w = 15, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 53241, .adv_w = 168, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 53324, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 53429, .adv_w = 280, .box_w = 18, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 53564, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 53663, .adv_w = 224, .box_w = 15, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 53753, .adv_w = 168, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 53836, .adv_w = 225, .box_w = 15, .box_h = 10, .ofs_x = 0, .ofs_y = 0}
|
||||
};
|
||||
|
||||
/*---------------------
|
||||
@@ -10476,15 +10509,15 @@ static const uint16_t unicode_list_10[] = {
|
||||
|
||||
static const uint16_t unicode_list_12[] = {
|
||||
0x0, 0xc, 0xceeb, 0xceef, 0xcef2, 0xcef5, 0xcef6, 0xcef7,
|
||||
0xcefb, 0xcefd, 0xceff, 0xcf01, 0xcf03, 0xcf06, 0xcf0b, 0xcf0e,
|
||||
0xcf10, 0xcf11, 0xcf12, 0xcf28, 0xcf2d, 0xcf32, 0xcf35, 0xcf36,
|
||||
0xcf37, 0xcf3b, 0xcf3c, 0xcf3d, 0xcf3e, 0xcf51, 0xcf52, 0xcf58,
|
||||
0xcf5a, 0xcf5b, 0xcf5e, 0xcf61, 0xcf62, 0xcf63, 0xcf65, 0xcf6a,
|
||||
0xcf6e, 0xcf77, 0xcf7d, 0xcf7f, 0xcf96, 0xcfaa, 0xcfae, 0xcfaf,
|
||||
0xcfb1, 0xcfb3, 0xcfca, 0xcfd1, 0xcfd4, 0xcfdd, 0xd006, 0xd00e,
|
||||
0xd038, 0xd045, 0xd0d5, 0xd12a, 0xd12b, 0xd12c, 0xd12d, 0xd12e,
|
||||
0xd163, 0xd171, 0xd17d, 0xd1d7, 0xd1dc, 0xd1ee, 0xd2af, 0xd3c1,
|
||||
0xd403, 0xd444, 0xd593, 0xd6ac, 0xd78c
|
||||
0xcefb, 0xcefd, 0xceff, 0xcf01, 0xcf03, 0xcf06, 0xcf0b, 0xcf0d,
|
||||
0xcf0e, 0xcf10, 0xcf11, 0xcf12, 0xcf28, 0xcf2d, 0xcf32, 0xcf35,
|
||||
0xcf36, 0xcf37, 0xcf3b, 0xcf3c, 0xcf3d, 0xcf3e, 0xcf51, 0xcf52,
|
||||
0xcf58, 0xcf5a, 0xcf5b, 0xcf5e, 0xcf61, 0xcf62, 0xcf63, 0xcf65,
|
||||
0xcf6a, 0xcf6e, 0xcf77, 0xcf7d, 0xcf7f, 0xcf96, 0xcfaa, 0xcfae,
|
||||
0xcfaf, 0xcfb1, 0xcfb3, 0xcfca, 0xcfd1, 0xcfd4, 0xcfdd, 0xd006,
|
||||
0xd00e, 0xd038, 0xd045, 0xd06f, 0xd0d5, 0xd12a, 0xd12b, 0xd12c,
|
||||
0xd12d, 0xd12e, 0xd163, 0xd171, 0xd17d, 0xd1d7, 0xd1dc, 0xd1ee,
|
||||
0xd2af, 0xd3c1, 0xd403, 0xd444, 0xd593, 0xd6ac, 0xd78c
|
||||
};
|
||||
|
||||
/*Collect the unicode lists and glyph_id offsets*/
|
||||
@@ -10540,7 +10573,7 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
|
||||
},
|
||||
{
|
||||
.range_start = 8470, .range_length = 55181, .glyph_id_start = 1017,
|
||||
.unicode_list = unicode_list_12, .glyph_id_ofs_list = NULL, .list_length = 77, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
|
||||
.unicode_list = unicode_list_12, .glyph_id_ofs_list = NULL, .list_length = 79, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
|
||||
}
|
||||
};
|
||||
|
||||
@@ -10688,7 +10721,7 @@ static const uint8_t kern_left_class_mapping[] =
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0
|
||||
0, 0, 0, 0, 0, 0, 0, 0
|
||||
};
|
||||
|
||||
/*Map glyph_ids to kern right classes*/
|
||||
@@ -10830,7 +10863,7 @@ static const uint8_t kern_right_class_mapping[] =
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0
|
||||
0, 0, 0, 0, 0, 0, 0, 0
|
||||
};
|
||||
|
||||
/*Kern values between classes*/
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
* Size: 16 px
|
||||
* Bpp: 4
|
||||
* Opts: --bpp 4 --size 16 --no-compress --force-fast-kern-format --font /var/folders/1d/dgkmygls6x5gsb16pbn2mwlr0000gn/T//meshcore-ui-fonts/NotoSans-Medium.ttf -r 0x20-0x7E,0xA0-0x24F,0x370-0x3FF,0x400-0x52F,0x1E80-0x1E85,0x1E9E,0x1EF2-0x1EF3,0x2010-0x2027,0x2030,0x2039-0x203A,0x20A4-0x20BF,0x2116,0x2122 --font /var/folders/1d/dgkmygls6x5gsb16pbn2mwlr0000gn/T//meshcore-ui-fonts/fa.woff -r 61581,63145,61572,62679,61568,62745,61463,62194,61612,61445,62073,61632,61774,61476,62405,61441,61448,61451,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61507,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61641,61664,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650 --format lvgl --lv-include lvgl.h --lv-font-name ui_font_16 -o /Users/jakub/Documents/MeshCore/MeshCore/examples/companion_radio/ui-lvgl/fonts/ui_font_16.c
|
||||
* Opts: --bpp 4 --size 16 --no-compress --force-fast-kern-format --font /var/folders/1d/dgkmygls6x5gsb16pbn2mwlr0000gn/T//meshcore-ui-fonts/NotoSans-Medium.ttf -r 0x20-0x7E,0xA0-0x24F,0x370-0x3FF,0x400-0x52F,0x1E80-0x1E85,0x1E9E,0x1EF2-0x1EF3,0x2010-0x2027,0x2030,0x2039-0x203A,0x20A4-0x20BF,0x2116,0x2122 --font /var/folders/1d/dgkmygls6x5gsb16pbn2mwlr0000gn/T//meshcore-ui-fonts/fa.woff -r 61475,61829,61581,63145,61572,62679,61568,62745,61463,62194,61612,61445,62073,61632,61774,61476,62405,61441,61448,61451,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61507,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61641,61664,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650 --format lvgl --lv-include lvgl.h --lv-font-name ui_font_16 -o /Users/jakub/Documents/MeshCore/MeshCore/examples/companion_radio/ui-lvgl/fonts/ui_font_16.c
|
||||
******************************************************************************/
|
||||
|
||||
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
|
||||
@@ -10291,6 +10291,22 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0xff, 0x24, 0xdf, 0xff, 0xff, 0xfe, 0x50, 0x0,
|
||||
0xff, 0x20, 0x5, 0xac, 0xdb, 0x60, 0x0, 0x0,
|
||||
|
||||
/* U+F023 "" */
|
||||
0x0, 0x0, 0x4b, 0xff, 0xb4, 0x0, 0x0, 0x0,
|
||||
0x6, 0xff, 0xff, 0xff, 0x60, 0x0, 0x0, 0x2f,
|
||||
0xff, 0x99, 0xff, 0xf2, 0x0, 0x0, 0x9f, 0xf3,
|
||||
0x0, 0x3f, 0xf9, 0x0, 0x0, 0xbf, 0xc0, 0x0,
|
||||
0xc, 0xfb, 0x0, 0x0, 0xcf, 0xc0, 0x0, 0xc,
|
||||
0xfc, 0x0, 0x0, 0xcf, 0xc0, 0x0, 0xc, 0xfc,
|
||||
0x0, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
|
||||
|
||||
/* U+F024 "" */
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x3e, 0xe3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
@@ -10961,6 +10977,24 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xfd,
|
||||
|
||||
/* U+F185 "" */
|
||||
0x0, 0x0, 0x0, 0x9, 0x90, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x1f, 0xf1, 0x0, 0x0, 0x0,
|
||||
0x0, 0x99, 0x40, 0x9f, 0xf9, 0x4, 0x99, 0x0,
|
||||
0x0, 0x9f, 0xfe, 0xff, 0xff, 0xef, 0xf9, 0x0,
|
||||
0x0, 0x4f, 0xfd, 0x40, 0x4, 0xdf, 0xf4, 0x0,
|
||||
0x0, 0xe, 0xd1, 0x8e, 0xe8, 0x1d, 0xe0, 0x0,
|
||||
0x1, 0x9f, 0x48, 0xff, 0xff, 0x84, 0xf9, 0x10,
|
||||
0x9f, 0xff, 0xe, 0xff, 0xff, 0xe0, 0xff, 0xf9,
|
||||
0x9f, 0xff, 0xe, 0xff, 0xff, 0xe0, 0xff, 0xf9,
|
||||
0x1, 0x9f, 0x48, 0xff, 0xff, 0x84, 0xf9, 0x10,
|
||||
0x0, 0xe, 0xd1, 0x8e, 0xe8, 0x1d, 0xe0, 0x0,
|
||||
0x0, 0x4f, 0xfd, 0x40, 0x4, 0xdf, 0xf4, 0x0,
|
||||
0x0, 0x9f, 0xfe, 0xff, 0xff, 0xef, 0xf9, 0x0,
|
||||
0x0, 0x99, 0x40, 0x9f, 0xf9, 0x4, 0x99, 0x0,
|
||||
0x0, 0x0, 0x0, 0x1f, 0xf1, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x9, 0x80, 0x0, 0x0, 0x0,
|
||||
|
||||
/* U+F1EB "" */
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x4, 0x9c, 0xef, 0xfe,
|
||||
@@ -12322,68 +12356,70 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
|
||||
{.bitmap_index = 62492, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 62620, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 62728, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 62856, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 62992, .adv_w = 128, .box_w = 8, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 63048, .adv_w = 192, .box_w = 12, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 63132, .adv_w = 288, .box_w = 18, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 63276, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 63372, .adv_w = 176, .box_w = 11, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 63460, .adv_w = 224, .box_w = 10, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
|
||||
{.bitmap_index = 63540, .adv_w = 224, .box_w = 14, .box_h = 18, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 63666, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 63771, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 63869, .adv_w = 224, .box_w = 10, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
|
||||
{.bitmap_index = 63949, .adv_w = 224, .box_w = 16, .box_h = 14, .ofs_x = -1, .ofs_y = -1},
|
||||
{.bitmap_index = 64061, .adv_w = 160, .box_w = 10, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 64131, .adv_w = 160, .box_w = 10, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 64201, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 64299, .adv_w = 224, .box_w = 14, .box_h = 4, .ofs_x = 0, .ofs_y = 4},
|
||||
{.bitmap_index = 64327, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 64435, .adv_w = 320, .box_w = 20, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 64595, .adv_w = 288, .box_w = 20, .box_h = 16, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 64755, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 64883, .adv_w = 224, .box_w = 14, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 64953, .adv_w = 224, .box_w = 14, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 65023, .adv_w = 320, .box_w = 20, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 65163, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 65259, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 65355, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 65483, .adv_w = 192, .box_w = 12, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 65579, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 65707, .adv_w = 256, .box_w = 17, .box_h = 17, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 65852, .adv_w = 248, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 65980, .adv_w = 320, .box_w = 20, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 66120, .adv_w = 224, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 66225, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 66337, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 66435, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 66533, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 66629, .adv_w = 160, .box_w = 12, .box_h = 16, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 66725, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 62856, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 62968, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 63104, .adv_w = 128, .box_w = 8, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 63160, .adv_w = 192, .box_w = 12, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 63244, .adv_w = 288, .box_w = 18, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 63388, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 63484, .adv_w = 176, .box_w = 11, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 63572, .adv_w = 224, .box_w = 10, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
|
||||
{.bitmap_index = 63652, .adv_w = 224, .box_w = 14, .box_h = 18, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 63778, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 63883, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 63981, .adv_w = 224, .box_w = 10, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
|
||||
{.bitmap_index = 64061, .adv_w = 224, .box_w = 16, .box_h = 14, .ofs_x = -1, .ofs_y = -1},
|
||||
{.bitmap_index = 64173, .adv_w = 160, .box_w = 10, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 64243, .adv_w = 160, .box_w = 10, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 64313, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 64411, .adv_w = 224, .box_w = 14, .box_h = 4, .ofs_x = 0, .ofs_y = 4},
|
||||
{.bitmap_index = 64439, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 64547, .adv_w = 320, .box_w = 20, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 64707, .adv_w = 288, .box_w = 20, .box_h = 16, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 64867, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 64995, .adv_w = 224, .box_w = 14, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 65065, .adv_w = 224, .box_w = 14, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 65135, .adv_w = 320, .box_w = 20, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 65275, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 65371, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 65467, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 65595, .adv_w = 192, .box_w = 12, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 65691, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 65819, .adv_w = 256, .box_w = 17, .box_h = 17, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 65964, .adv_w = 248, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 66092, .adv_w = 320, .box_w = 20, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 66232, .adv_w = 224, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 66337, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 66449, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 66547, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 66645, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 66741, .adv_w = 160, .box_w = 12, .box_h = 16, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 66837, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 66949, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 67057, .adv_w = 256, .box_w = 18, .box_h = 18, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 67219, .adv_w = 248, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 67347, .adv_w = 192, .box_w = 12, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 67443, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 67593, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 67693, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 67793, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 67893, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 67993, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 68093, .adv_w = 288, .box_w = 18, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 68237, .adv_w = 320, .box_w = 21, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 68384, .adv_w = 224, .box_w = 12, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 68480, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 68592, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 68704, .adv_w = 256, .box_w = 17, .box_h = 17, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 68849, .adv_w = 192, .box_w = 12, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 68945, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 69073, .adv_w = 320, .box_w = 20, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 69243, .adv_w = 320, .box_w = 20, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 69363, .adv_w = 256, .box_w = 17, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 69482, .adv_w = 192, .box_w = 12, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 69578, .adv_w = 258, .box_w = 17, .box_h = 11, .ofs_x = 0, .ofs_y = 1}
|
||||
{.bitmap_index = 66949, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 67061, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 67169, .adv_w = 256, .box_w = 18, .box_h = 18, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 67331, .adv_w = 248, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 67459, .adv_w = 192, .box_w = 12, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 67555, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 67683, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 67833, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 67933, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 68033, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 68133, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 68233, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 68333, .adv_w = 288, .box_w = 18, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 68477, .adv_w = 320, .box_w = 21, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 68624, .adv_w = 224, .box_w = 12, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 68720, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 68832, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 68944, .adv_w = 256, .box_w = 17, .box_h = 17, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 69089, .adv_w = 192, .box_w = 12, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 69185, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 69313, .adv_w = 320, .box_w = 20, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 69483, .adv_w = 320, .box_w = 20, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 69603, .adv_w = 256, .box_w = 17, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 69722, .adv_w = 192, .box_w = 12, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 69818, .adv_w = 258, .box_w = 17, .box_h = 11, .ofs_x = 0, .ofs_y = 1}
|
||||
};
|
||||
|
||||
/*---------------------
|
||||
@@ -12408,15 +12444,15 @@ static const uint16_t unicode_list_10[] = {
|
||||
|
||||
static const uint16_t unicode_list_12[] = {
|
||||
0x0, 0xc, 0xceeb, 0xceef, 0xcef2, 0xcef5, 0xcef6, 0xcef7,
|
||||
0xcefb, 0xcefd, 0xceff, 0xcf01, 0xcf03, 0xcf06, 0xcf0b, 0xcf0e,
|
||||
0xcf10, 0xcf11, 0xcf12, 0xcf28, 0xcf2d, 0xcf32, 0xcf35, 0xcf36,
|
||||
0xcf37, 0xcf3b, 0xcf3c, 0xcf3d, 0xcf3e, 0xcf51, 0xcf52, 0xcf58,
|
||||
0xcf5a, 0xcf5b, 0xcf5e, 0xcf61, 0xcf62, 0xcf63, 0xcf65, 0xcf6a,
|
||||
0xcf6e, 0xcf77, 0xcf7d, 0xcf7f, 0xcf96, 0xcfaa, 0xcfae, 0xcfaf,
|
||||
0xcfb1, 0xcfb3, 0xcfca, 0xcfd1, 0xcfd4, 0xcfdd, 0xd006, 0xd00e,
|
||||
0xd038, 0xd045, 0xd0d5, 0xd12a, 0xd12b, 0xd12c, 0xd12d, 0xd12e,
|
||||
0xd163, 0xd171, 0xd17d, 0xd1d7, 0xd1dc, 0xd1ee, 0xd2af, 0xd3c1,
|
||||
0xd403, 0xd444, 0xd593, 0xd6ac, 0xd78c
|
||||
0xcefb, 0xcefd, 0xceff, 0xcf01, 0xcf03, 0xcf06, 0xcf0b, 0xcf0d,
|
||||
0xcf0e, 0xcf10, 0xcf11, 0xcf12, 0xcf28, 0xcf2d, 0xcf32, 0xcf35,
|
||||
0xcf36, 0xcf37, 0xcf3b, 0xcf3c, 0xcf3d, 0xcf3e, 0xcf51, 0xcf52,
|
||||
0xcf58, 0xcf5a, 0xcf5b, 0xcf5e, 0xcf61, 0xcf62, 0xcf63, 0xcf65,
|
||||
0xcf6a, 0xcf6e, 0xcf77, 0xcf7d, 0xcf7f, 0xcf96, 0xcfaa, 0xcfae,
|
||||
0xcfaf, 0xcfb1, 0xcfb3, 0xcfca, 0xcfd1, 0xcfd4, 0xcfdd, 0xd006,
|
||||
0xd00e, 0xd038, 0xd045, 0xd06f, 0xd0d5, 0xd12a, 0xd12b, 0xd12c,
|
||||
0xd12d, 0xd12e, 0xd163, 0xd171, 0xd17d, 0xd1d7, 0xd1dc, 0xd1ee,
|
||||
0xd2af, 0xd3c1, 0xd403, 0xd444, 0xd593, 0xd6ac, 0xd78c
|
||||
};
|
||||
|
||||
/*Collect the unicode lists and glyph_id offsets*/
|
||||
@@ -12472,7 +12508,7 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
|
||||
},
|
||||
{
|
||||
.range_start = 8470, .range_length = 55181, .glyph_id_start = 1017,
|
||||
.unicode_list = unicode_list_12, .glyph_id_ofs_list = NULL, .list_length = 77, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
|
||||
.unicode_list = unicode_list_12, .glyph_id_ofs_list = NULL, .list_length = 79, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
|
||||
}
|
||||
};
|
||||
|
||||
@@ -12620,7 +12656,7 @@ static const uint8_t kern_left_class_mapping[] =
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0
|
||||
0, 0, 0, 0, 0, 0, 0, 0
|
||||
};
|
||||
|
||||
/*Map glyph_ids to kern right classes*/
|
||||
@@ -12762,7 +12798,7 @@ static const uint8_t kern_right_class_mapping[] =
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0
|
||||
0, 0, 0, 0, 0, 0, 0, 0
|
||||
};
|
||||
|
||||
/*Kern values between classes*/
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
* Size: 20 px
|
||||
* Bpp: 4
|
||||
* Opts: --bpp 4 --size 20 --no-compress --force-fast-kern-format --font /var/folders/1d/dgkmygls6x5gsb16pbn2mwlr0000gn/T//meshcore-ui-fonts/NotoSans-Medium.ttf -r 0x20-0x7E,0xA0-0x24F,0x370-0x3FF,0x400-0x52F,0x1E80-0x1E85,0x1E9E,0x1EF2-0x1EF3,0x2010-0x2027,0x2030,0x2039-0x203A,0x20A4-0x20BF,0x2116,0x2122 --font /var/folders/1d/dgkmygls6x5gsb16pbn2mwlr0000gn/T//meshcore-ui-fonts/fa.woff -r 61581,63145,61572,62679,61568,62745,61463,62194,61612,61445,62073,61632,61774,61476,62405,61441,61448,61451,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61507,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61641,61664,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650 --format lvgl --lv-include lvgl.h --lv-font-name ui_font_20 -o /Users/jakub/Documents/MeshCore/MeshCore/examples/companion_radio/ui-lvgl/fonts/ui_font_20.c
|
||||
* Opts: --bpp 4 --size 20 --no-compress --force-fast-kern-format --font /var/folders/1d/dgkmygls6x5gsb16pbn2mwlr0000gn/T//meshcore-ui-fonts/NotoSans-Medium.ttf -r 0x20-0x7E,0xA0-0x24F,0x370-0x3FF,0x400-0x52F,0x1E80-0x1E85,0x1E9E,0x1EF2-0x1EF3,0x2010-0x2027,0x2030,0x2039-0x203A,0x20A4-0x20BF,0x2116,0x2122 --font /var/folders/1d/dgkmygls6x5gsb16pbn2mwlr0000gn/T//meshcore-ui-fonts/fa.woff -r 61475,61829,61581,63145,61572,62679,61568,62745,61463,62194,61612,61445,62073,61632,61774,61476,62405,61441,61448,61451,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61507,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61641,61664,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650 --format lvgl --lv-include lvgl.h --lv-font-name ui_font_20 -o /Users/jakub/Documents/MeshCore/MeshCore/examples/companion_radio/ui-lvgl/fonts/ui_font_20.c
|
||||
******************************************************************************/
|
||||
|
||||
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
|
||||
@@ -14114,6 +14114,32 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0xab, 0x70, 0x0, 0x0, 0x1, 0x10, 0x0, 0x0,
|
||||
0x0, 0x0,
|
||||
|
||||
/* U+F023 "" */
|
||||
0x0, 0x0, 0x0, 0x2, 0x43, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x5, 0xdf, 0xff, 0xfa, 0x10,
|
||||
0x0, 0x0, 0x0, 0x0, 0x8f, 0xff, 0xff, 0xff,
|
||||
0xe2, 0x0, 0x0, 0x0, 0x5, 0xff, 0xff, 0xef,
|
||||
0xff, 0xfd, 0x0, 0x0, 0x0, 0xd, 0xff, 0xd2,
|
||||
0x0, 0x7f, 0xff, 0x50, 0x0, 0x0, 0x1f, 0xff,
|
||||
0x20, 0x0, 0xa, 0xff, 0x90, 0x0, 0x0, 0x2f,
|
||||
0xff, 0x0, 0x0, 0x7, 0xff, 0xa0, 0x0, 0x0,
|
||||
0x3f, 0xff, 0x0, 0x0, 0x7, 0xff, 0xb0, 0x0,
|
||||
0x0, 0x3f, 0xff, 0x0, 0x0, 0x7, 0xff, 0xb0,
|
||||
0x0, 0x4d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xa0, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xf7, 0x9f, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xf2, 0x3, 0x44, 0x44, 0x44,
|
||||
0x44, 0x44, 0x44, 0x44, 0x10,
|
||||
|
||||
/* U+F024 "" */
|
||||
0x1, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x4f, 0xfd, 0x10, 0x0, 0x0, 0x0,
|
||||
@@ -15131,6 +15157,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8b, 0xbb,
|
||||
0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x80,
|
||||
|
||||
/* U+F185 "" */
|
||||
0x0, 0x0, 0x0, 0x0, 0x1, 0x10, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0xc0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x5f, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x17,
|
||||
0x30, 0x0, 0xdf, 0xfc, 0x0, 0x3, 0x71, 0x0,
|
||||
0x0, 0x2f, 0xfe, 0x87, 0xff, 0xff, 0x79, 0xef,
|
||||
0xf2, 0x0, 0x0, 0xc, 0xff, 0xff, 0xfc, 0xcf,
|
||||
0xff, 0xff, 0xd0, 0x0, 0x0, 0x7, 0xff, 0xf6,
|
||||
0x14, 0x41, 0x6f, 0xff, 0x70, 0x0, 0x0, 0x1,
|
||||
0xff, 0x36, 0xff, 0xff, 0x53, 0xff, 0x10, 0x0,
|
||||
0x0, 0x4c, 0xf8, 0x3f, 0xff, 0xff, 0xf3, 0x8f,
|
||||
0xc4, 0x0, 0x4c, 0xff, 0xf2, 0xaf, 0xff, 0xff,
|
||||
0xf9, 0x2f, 0xff, 0xc4, 0xef, 0xff, 0xf0, 0xbf,
|
||||
0xff, 0xff, 0xfb, 0xf, 0xff, 0xfe, 0x19, 0xff,
|
||||
0xf1, 0x9f, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0x91,
|
||||
0x0, 0x19, 0xf5, 0x2f, 0xff, 0xff, 0xf1, 0x5f,
|
||||
0x91, 0x0, 0x0, 0x2, 0xfd, 0x3, 0xdf, 0xfc,
|
||||
0x30, 0xdf, 0x20, 0x0, 0x0, 0x7, 0xff, 0xb0,
|
||||
0x1, 0x10, 0xb, 0xff, 0x70, 0x0, 0x0, 0xb,
|
||||
0xff, 0xfe, 0x85, 0x58, 0xef, 0xff, 0xc0, 0x0,
|
||||
0x0, 0x1f, 0xff, 0xfd, 0xff, 0xff, 0xdf, 0xff,
|
||||
0xf1, 0x0, 0x0, 0x2e, 0xa5, 0x1, 0xff, 0xff,
|
||||
0x10, 0x5a, 0xe2, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x8f, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x1f, 0xe1, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x6, 0x50, 0x0, 0x0,
|
||||
0x0, 0x0,
|
||||
|
||||
/* U+F1EB "" */
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x23, 0x43, 0x20,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
|
||||
@@ -16659,68 +16714,70 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
|
||||
{.bitmap_index = 92156, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 92366, .adv_w = 360, .box_w = 23, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 92539, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 92749, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 92959, .adv_w = 160, .box_w = 10, .box_h = 16, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 93039, .adv_w = 240, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 93159, .adv_w = 360, .box_w = 23, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 93378, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 93528, .adv_w = 220, .box_w = 14, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 93675, .adv_w = 280, .box_w = 13, .box_h = 19, .ofs_x = 2, .ofs_y = -2},
|
||||
{.bitmap_index = 93799, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 93988, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 94159, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 94330, .adv_w = 280, .box_w = 13, .box_h = 19, .ofs_x = 2, .ofs_y = -2},
|
||||
{.bitmap_index = 94454, .adv_w = 280, .box_w = 19, .box_h = 19, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 94635, .adv_w = 200, .box_w = 11, .box_h = 19, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 94740, .adv_w = 200, .box_w = 11, .box_h = 19, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 94845, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 95016, .adv_w = 280, .box_w = 18, .box_h = 5, .ofs_x = 0, .ofs_y = 5},
|
||||
{.bitmap_index = 95061, .adv_w = 360, .box_w = 23, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 95234, .adv_w = 400, .box_w = 26, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 95507, .adv_w = 360, .box_w = 24, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 95759, .adv_w = 320, .box_w = 20, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 95949, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 2},
|
||||
{.bitmap_index = 96048, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 2},
|
||||
{.bitmap_index = 96147, .adv_w = 400, .box_w = 26, .box_h = 16, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 96355, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 96505, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 96655, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 96865, .adv_w = 240, .box_w = 15, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 97023, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 97233, .adv_w = 320, .box_w = 21, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 97454, .adv_w = 310, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 97664, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 97902, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 98073, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 98262, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 98433, .adv_w = 280, .box_w = 18, .box_h = 17, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 98586, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 98736, .adv_w = 200, .box_w = 14, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 98883, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 92749, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 92938, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 93148, .adv_w = 160, .box_w = 10, .box_h = 16, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 93228, .adv_w = 240, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 93348, .adv_w = 360, .box_w = 23, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 93567, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 93717, .adv_w = 220, .box_w = 14, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 93864, .adv_w = 280, .box_w = 13, .box_h = 19, .ofs_x = 2, .ofs_y = -2},
|
||||
{.bitmap_index = 93988, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 94177, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 94348, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 94519, .adv_w = 280, .box_w = 13, .box_h = 19, .ofs_x = 2, .ofs_y = -2},
|
||||
{.bitmap_index = 94643, .adv_w = 280, .box_w = 19, .box_h = 19, .ofs_x = -1, .ofs_y = -2},
|
||||
{.bitmap_index = 94824, .adv_w = 200, .box_w = 11, .box_h = 19, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 94929, .adv_w = 200, .box_w = 11, .box_h = 19, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 95034, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 95205, .adv_w = 280, .box_w = 18, .box_h = 5, .ofs_x = 0, .ofs_y = 5},
|
||||
{.bitmap_index = 95250, .adv_w = 360, .box_w = 23, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 95423, .adv_w = 400, .box_w = 26, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 95696, .adv_w = 360, .box_w = 24, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 95948, .adv_w = 320, .box_w = 20, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 96138, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 2},
|
||||
{.bitmap_index = 96237, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 2},
|
||||
{.bitmap_index = 96336, .adv_w = 400, .box_w = 26, .box_h = 16, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 96544, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 96694, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 96844, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 97054, .adv_w = 240, .box_w = 15, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 97212, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 97422, .adv_w = 320, .box_w = 21, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 97643, .adv_w = 310, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 97853, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 98091, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 98262, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 98451, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 98622, .adv_w = 280, .box_w = 18, .box_h = 17, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 98775, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 98925, .adv_w = 200, .box_w = 14, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 99072, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 99261, .adv_w = 360, .box_w = 23, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 99434, .adv_w = 320, .box_w = 22, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 99665, .adv_w = 310, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 99875, .adv_w = 240, .box_w = 15, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 100033, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 100271, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 100434, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 100597, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 100760, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 100923, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 101086, .adv_w = 360, .box_w = 23, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 101305, .adv_w = 400, .box_w = 26, .box_h = 17, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 101526, .adv_w = 280, .box_w = 16, .box_h = 21, .ofs_x = 1, .ofs_y = -3},
|
||||
{.bitmap_index = 101694, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 101883, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 102072, .adv_w = 320, .box_w = 21, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 102293, .adv_w = 240, .box_w = 15, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 102451, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 102661, .adv_w = 400, .box_w = 25, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 102924, .adv_w = 400, .box_w = 25, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 103112, .adv_w = 320, .box_w = 21, .box_h = 16, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 103280, .adv_w = 240, .box_w = 15, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 103438, .adv_w = 322, .box_w = 21, .box_h = 13, .ofs_x = 0, .ofs_y = 1}
|
||||
{.bitmap_index = 99261, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 99450, .adv_w = 360, .box_w = 23, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 99623, .adv_w = 320, .box_w = 22, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 99854, .adv_w = 310, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 100064, .adv_w = 240, .box_w = 15, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 100222, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 100432, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 100670, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 100833, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 100996, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 101159, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 101322, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 101485, .adv_w = 360, .box_w = 23, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 101704, .adv_w = 400, .box_w = 26, .box_h = 17, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 101925, .adv_w = 280, .box_w = 16, .box_h = 21, .ofs_x = 1, .ofs_y = -3},
|
||||
{.bitmap_index = 102093, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 102282, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 102471, .adv_w = 320, .box_w = 21, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 102692, .adv_w = 240, .box_w = 15, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 102850, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 103060, .adv_w = 400, .box_w = 25, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 103323, .adv_w = 400, .box_w = 25, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 103511, .adv_w = 320, .box_w = 21, .box_h = 16, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 103679, .adv_w = 240, .box_w = 15, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 103837, .adv_w = 322, .box_w = 21, .box_h = 13, .ofs_x = 0, .ofs_y = 1}
|
||||
};
|
||||
|
||||
/*---------------------
|
||||
@@ -16745,15 +16802,15 @@ static const uint16_t unicode_list_10[] = {
|
||||
|
||||
static const uint16_t unicode_list_12[] = {
|
||||
0x0, 0xc, 0xceeb, 0xceef, 0xcef2, 0xcef5, 0xcef6, 0xcef7,
|
||||
0xcefb, 0xcefd, 0xceff, 0xcf01, 0xcf03, 0xcf06, 0xcf0b, 0xcf0e,
|
||||
0xcf10, 0xcf11, 0xcf12, 0xcf28, 0xcf2d, 0xcf32, 0xcf35, 0xcf36,
|
||||
0xcf37, 0xcf3b, 0xcf3c, 0xcf3d, 0xcf3e, 0xcf51, 0xcf52, 0xcf58,
|
||||
0xcf5a, 0xcf5b, 0xcf5e, 0xcf61, 0xcf62, 0xcf63, 0xcf65, 0xcf6a,
|
||||
0xcf6e, 0xcf77, 0xcf7d, 0xcf7f, 0xcf96, 0xcfaa, 0xcfae, 0xcfaf,
|
||||
0xcfb1, 0xcfb3, 0xcfca, 0xcfd1, 0xcfd4, 0xcfdd, 0xd006, 0xd00e,
|
||||
0xd038, 0xd045, 0xd0d5, 0xd12a, 0xd12b, 0xd12c, 0xd12d, 0xd12e,
|
||||
0xd163, 0xd171, 0xd17d, 0xd1d7, 0xd1dc, 0xd1ee, 0xd2af, 0xd3c1,
|
||||
0xd403, 0xd444, 0xd593, 0xd6ac, 0xd78c
|
||||
0xcefb, 0xcefd, 0xceff, 0xcf01, 0xcf03, 0xcf06, 0xcf0b, 0xcf0d,
|
||||
0xcf0e, 0xcf10, 0xcf11, 0xcf12, 0xcf28, 0xcf2d, 0xcf32, 0xcf35,
|
||||
0xcf36, 0xcf37, 0xcf3b, 0xcf3c, 0xcf3d, 0xcf3e, 0xcf51, 0xcf52,
|
||||
0xcf58, 0xcf5a, 0xcf5b, 0xcf5e, 0xcf61, 0xcf62, 0xcf63, 0xcf65,
|
||||
0xcf6a, 0xcf6e, 0xcf77, 0xcf7d, 0xcf7f, 0xcf96, 0xcfaa, 0xcfae,
|
||||
0xcfaf, 0xcfb1, 0xcfb3, 0xcfca, 0xcfd1, 0xcfd4, 0xcfdd, 0xd006,
|
||||
0xd00e, 0xd038, 0xd045, 0xd06f, 0xd0d5, 0xd12a, 0xd12b, 0xd12c,
|
||||
0xd12d, 0xd12e, 0xd163, 0xd171, 0xd17d, 0xd1d7, 0xd1dc, 0xd1ee,
|
||||
0xd2af, 0xd3c1, 0xd403, 0xd444, 0xd593, 0xd6ac, 0xd78c
|
||||
};
|
||||
|
||||
/*Collect the unicode lists and glyph_id offsets*/
|
||||
@@ -16809,7 +16866,7 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
|
||||
},
|
||||
{
|
||||
.range_start = 8470, .range_length = 55181, .glyph_id_start = 1017,
|
||||
.unicode_list = unicode_list_12, .glyph_id_ofs_list = NULL, .list_length = 77, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
|
||||
.unicode_list = unicode_list_12, .glyph_id_ofs_list = NULL, .list_length = 79, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
|
||||
}
|
||||
};
|
||||
|
||||
@@ -16957,7 +17014,7 @@ static const uint8_t kern_left_class_mapping[] =
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0
|
||||
0, 0, 0, 0, 0, 0, 0, 0
|
||||
};
|
||||
|
||||
/*Map glyph_ids to kern right classes*/
|
||||
@@ -17099,7 +17156,7 @@ static const uint8_t kern_right_class_mapping[] =
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0
|
||||
0, 0, 0, 0, 0, 0, 0, 0
|
||||
};
|
||||
|
||||
/*Kern values between classes*/
|
||||
|
||||
@@ -108,7 +108,43 @@ bool WioTrackerL2Board::initExpander() {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Off -- Power off, or the battery ran down -- the chip sleeps, waking every
|
||||
// OFF_POLL_SECS to look for USB power plugged in, and starts when it is: as
|
||||
// an nRF board starts on its own once charged (a deep sleep with no wake
|
||||
// source left it off until the reset button). Plugged in when switched off,
|
||||
// it stays off until the cable is pulled and plugged in again. A look costs
|
||||
// a boot as far as begin(), a fraction of a second.
|
||||
static const uint32_t OFF_MAGIC = 0x4F464621; // "OFF!"
|
||||
static const uint32_t OFF_POLL_SECS = 30;
|
||||
RTC_NOINIT_ATTR static uint32_t s_off_magic;
|
||||
RTC_NOINIT_ATTR static uint32_t s_off_vbus; // USB power at the last look
|
||||
|
||||
void WioTrackerL2Board::powerOff() {
|
||||
s_off_vbus = isExternalPowered();
|
||||
s_off_magic = OFF_MAGIC;
|
||||
enterDeepSleep(OFF_POLL_SECS);
|
||||
}
|
||||
|
||||
// Off and woken by the timer (or a brown-out of the flat battery): back to
|
||||
// sleep unless USB power has come since the last look.
|
||||
static void stayOffUnlessPlugged(WioTrackerL2Board& b) {
|
||||
const esp_reset_reason_t r = esp_reset_reason();
|
||||
if (s_off_magic != OFF_MAGIC || (r != ESP_RST_DEEPSLEEP && r != ESP_RST_BROWNOUT)) {
|
||||
s_off_magic = 0;
|
||||
return;
|
||||
}
|
||||
Wire.begin(PIN_BOARD_SDA, PIN_BOARD_SCL);
|
||||
const bool vbus = b.isExternalPowered();
|
||||
if (vbus && !s_off_vbus) { s_off_magic = 0; return; } // plugged in: start
|
||||
s_off_vbus = vbus;
|
||||
esp_sleep_disable_wakeup_source(ESP_SLEEP_WAKEUP_ALL);
|
||||
esp_sleep_enable_timer_wakeup(OFF_POLL_SECS * 1000000ULL);
|
||||
esp_deep_sleep_start();
|
||||
}
|
||||
|
||||
void WioTrackerL2Board::begin() {
|
||||
stayOffUnlessPlugged(*this); // first: before the 3 s wait for a serial monitor below
|
||||
|
||||
// GNSS UART: NMEA arrives at ~500 B/s and the main loop can stall for
|
||||
// hundreds of ms on SD tile decodes; the 256-byte default overflowed
|
||||
Serial1.setRxBufferSize(1024);
|
||||
|
||||
@@ -82,6 +82,9 @@ public:
|
||||
// VBUS presence via the AW35615 USB-C controller (I2C 0x22)
|
||||
bool isExternalPowered() override;
|
||||
|
||||
// Off (Power off, or the battery ran down): see the .cpp
|
||||
void powerOff() override;
|
||||
|
||||
private:
|
||||
uint8_t out_shadow[2] = { 0xFF, 0xFF }; // TCA9535 output regs default high
|
||||
uint8_t cfg_shadow[2] = { 0xFF, 0xFF }; // 1 = input (power-on default)
|
||||
|
||||
@@ -188,6 +188,20 @@ public:
|
||||
|
||||
class WioTrackerL2Display : public LGFXDisplay {
|
||||
LGFX_WioTrackerL2 disp;
|
||||
|
||||
// The backlight from one PWM level to another over ~180 ms, on a square
|
||||
// curve (the eye sees the low end's steps). Blocks; 0 ends in standby.
|
||||
void fade(uint8_t from, uint8_t to) {
|
||||
const int STEPS = 12;
|
||||
for (int i = 1; i <= STEPS; i++) {
|
||||
const int t = i * 256 / STEPS; // 0..256
|
||||
const int k = from < to ? t * t / 256 : 256 - (256 - t) * (256 - t) / 256;
|
||||
const int v = from + ((int)to - from) * k / 256;
|
||||
display->panel()->setBrightness((uint8_t)(i == STEPS ? to : (v < 1 ? 1 : v)));
|
||||
delay(15);
|
||||
}
|
||||
}
|
||||
|
||||
public:
|
||||
WioTrackerL2Display() : LGFXDisplay(320, 240, disp) {}
|
||||
|
||||
@@ -197,6 +211,26 @@ public:
|
||||
display->setBrightness(PWM[level > 4 ? 4 : level]);
|
||||
}
|
||||
|
||||
// Screen off: the backlight fades out, then the panel sleeps. Screen on: the
|
||||
// panel wakes with the light still off -- the caller draws a fresh frame
|
||||
// first (the panel shows what's left in its memory for a moment, a white
|
||||
// flash) -- and fadeIn() brings the light up.
|
||||
void turnOff() override {
|
||||
if (_isOn) {
|
||||
fade(display->getBrightness(), 0);
|
||||
display->sleep();
|
||||
}
|
||||
_isOn = false;
|
||||
}
|
||||
void turnOn() override {
|
||||
if (!_isOn) {
|
||||
display->panel()->setSleep(false);
|
||||
delay(10); // the panel takes no pixels just out of sleep
|
||||
}
|
||||
_isOn = true;
|
||||
}
|
||||
void fadeIn() { fade(0, display->getBrightness()); }
|
||||
|
||||
// direct access to the LGFX device (LVGL flush/touch glue)
|
||||
lgfx::LGFX_Device* lgfxDevice() { return &disp; }
|
||||
Panel_WioTrackerL2& panel() { return disp.panelL2(); }
|
||||
|
||||
Reference in New Issue
Block a user