mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-11-02 10:51:57 +00:00
Show a small lightning-bolt icon to the left of the battery indicator on the ui-new home screen while the device is externally powered, and a plug icon once the battery reads full. The bolt/plug sits beside the battery so the fill bar stays clean and uninterrupted. When a buzzer is present, the mute icon shifts one slot further left so the two never overlap. Charging state is derived from board.isExternalPowered(), so this works on any board that reports external power (e.g. the nRF52 VBUS-detect path). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
132 lines
5.2 KiB
C
132 lines
5.2 KiB
C
#pragma once
|
|
|
|
#include <stdint.h>
|
|
|
|
// 'meshcore', 128x13px
|
|
static const uint8_t meshcore_logo [] = {
|
|
0x3c, 0x01, 0xe3, 0xff, 0xc7, 0xff, 0x8f, 0x03, 0x87, 0xfe, 0x1f, 0xfe, 0x1f, 0xfe, 0x1f, 0xfe,
|
|
0x3c, 0x03, 0xe3, 0xff, 0xc7, 0xff, 0x8e, 0x03, 0x8f, 0xfe, 0x3f, 0xfe, 0x1f, 0xff, 0x1f, 0xfe,
|
|
0x3e, 0x03, 0xc3, 0xff, 0x8f, 0xff, 0x0e, 0x07, 0x8f, 0xfe, 0x7f, 0xfe, 0x1f, 0xff, 0x1f, 0xfc,
|
|
0x3e, 0x07, 0xc7, 0x80, 0x0e, 0x00, 0x0e, 0x07, 0x9e, 0x00, 0x78, 0x0e, 0x3c, 0x0f, 0x1c, 0x00,
|
|
0x3e, 0x0f, 0xc7, 0x80, 0x1e, 0x00, 0x0e, 0x07, 0x1e, 0x00, 0x70, 0x0e, 0x38, 0x0f, 0x3c, 0x00,
|
|
0x7f, 0x0f, 0xc7, 0xfe, 0x1f, 0xfc, 0x1f, 0xff, 0x1c, 0x00, 0x70, 0x0e, 0x38, 0x0e, 0x3f, 0xf8,
|
|
0x7f, 0x1f, 0xc7, 0xfe, 0x0f, 0xff, 0x1f, 0xff, 0x1c, 0x00, 0xf0, 0x0e, 0x38, 0x0e, 0x3f, 0xf8,
|
|
0x7f, 0x3f, 0xc7, 0xfe, 0x0f, 0xff, 0x1f, 0xff, 0x1c, 0x00, 0xf0, 0x1e, 0x3f, 0xfe, 0x3f, 0xf0,
|
|
0x77, 0x3b, 0x87, 0x00, 0x00, 0x07, 0x1c, 0x0f, 0x3c, 0x00, 0xe0, 0x1c, 0x7f, 0xfc, 0x38, 0x00,
|
|
0x77, 0xfb, 0x8f, 0x00, 0x00, 0x07, 0x1c, 0x0f, 0x3c, 0x00, 0xe0, 0x1c, 0x7f, 0xf8, 0x38, 0x00,
|
|
0x73, 0xf3, 0x8f, 0xff, 0x0f, 0xff, 0x1c, 0x0e, 0x3f, 0xf8, 0xff, 0xfc, 0x70, 0x78, 0x7f, 0xf8,
|
|
0xe3, 0xe3, 0x8f, 0xff, 0x1f, 0xfe, 0x3c, 0x0e, 0x3f, 0xf8, 0xff, 0xfc, 0x70, 0x3c, 0x7f, 0xf8,
|
|
0xe3, 0xe3, 0x8f, 0xff, 0x1f, 0xfc, 0x3c, 0x0e, 0x1f, 0xf8, 0xff, 0xf8, 0x70, 0x3c, 0x7f, 0xf8,
|
|
};
|
|
|
|
static const uint8_t bluetooth_on[] = {
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x30, 0x00, 0x00,
|
|
0x00, 0x3C, 0x00, 0x00,
|
|
0x00, 0x3E, 0x00, 0x00,
|
|
0x00, 0x3F, 0x80, 0x00,
|
|
0x00, 0x3F, 0xC0, 0x00,
|
|
0x00, 0x3B, 0xE0, 0x00,
|
|
0x30, 0x38, 0xF8, 0x00,
|
|
0x3C, 0x38, 0x7C, 0x00,
|
|
0x3E, 0x38, 0x7C, 0x00,
|
|
0x1F, 0xB8, 0xF8, 0x70,
|
|
0x07, 0xF9, 0xF0, 0x78,
|
|
0x03, 0xFF, 0xC0, 0x78,
|
|
0x00, 0xFF, 0x80, 0x3C,
|
|
0x00, 0x7F, 0x07, 0x1C,
|
|
0x00, 0x7E, 0x07, 0x1C,
|
|
0x03, 0xFF, 0x82, 0x1C,
|
|
0x03, 0xFF, 0xC0, 0x78,
|
|
0x07, 0xFB, 0xE0, 0x78,
|
|
0x0F, 0xB8, 0xF8, 0x70,
|
|
0x3E, 0x38, 0x7C, 0x00,
|
|
0x3C, 0x38, 0x7C, 0x00,
|
|
0x38, 0x38, 0xF8, 0x00,
|
|
0x00, 0x39, 0xF0, 0x00,
|
|
0x00, 0x3F, 0xC0, 0x00,
|
|
0x00, 0x3F, 0x80, 0x00,
|
|
0x00, 0x3E, 0x00, 0x00,
|
|
0x00, 0x3C, 0x00, 0x00,
|
|
0x00, 0x38, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
|
|
static const uint8_t bluetooth_off[] = {
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x03, 0x80, 0x00,
|
|
0x00, 0x03, 0xC0, 0x00,
|
|
0x00, 0x03, 0xE0, 0x00,
|
|
0x38, 0x03, 0xF8, 0x00,
|
|
0x3C, 0x03, 0xFC, 0x00,
|
|
0x3E, 0x03, 0xBF, 0x00,
|
|
0x0F, 0x83, 0x8F, 0x80,
|
|
0x07, 0xC3, 0x87, 0xC0,
|
|
0x03, 0xF0, 0x03, 0xC0,
|
|
0x00, 0xF8, 0x0F, 0x80,
|
|
0x00, 0x7C, 0x0F, 0x00,
|
|
0x00, 0x1F, 0x0E, 0x00,
|
|
0x00, 0x0F, 0x80, 0x00,
|
|
0x00, 0x07, 0xE0, 0x00,
|
|
0x00, 0x07, 0xF0, 0x00,
|
|
0x00, 0x0F, 0xF8, 0x00,
|
|
0x00, 0x3F, 0xBE, 0x00,
|
|
0x00, 0x7F, 0x9F, 0x00,
|
|
0x00, 0xFB, 0x8F, 0xC0,
|
|
0x03, 0xE3, 0x83, 0xE0,
|
|
0x03, 0xC3, 0x87, 0xF0,
|
|
0x03, 0x83, 0x8F, 0xFC,
|
|
0x00, 0x03, 0xBF, 0x3C,
|
|
0x00, 0x03, 0xFC, 0x1C,
|
|
0x00, 0x03, 0xF8, 0x00,
|
|
0x00, 0x03, 0xE0, 0x00,
|
|
0x00, 0x03, 0xC0, 0x00,
|
|
0x00, 0x03, 0x80, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
|
|
static const uint8_t power_icon[] = {
|
|
0x00, 0x01, 0x80, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00,
|
|
0x00, 0x33, 0xCC, 0x00, 0x00, 0xF3, 0xCF, 0x00, 0x01, 0xF3, 0xCF, 0x80,
|
|
0x03, 0xF3, 0xCF, 0xC0, 0x07, 0xF3, 0xCF, 0xE0, 0x0F, 0xE3, 0xC7, 0xF0,
|
|
0x1F, 0xC3, 0xC3, 0xF8, 0x1F, 0x83, 0xC1, 0xF8, 0x3F, 0x03, 0xC0, 0xFC,
|
|
0x3E, 0x03, 0xC0, 0x7C, 0x3E, 0x03, 0xC0, 0x7C, 0x7E, 0x01, 0x80, 0x7E,
|
|
0x7C, 0x00, 0x00, 0x3E, 0x7C, 0x00, 0x00, 0x3E, 0x7C, 0x00, 0x00, 0x3E,
|
|
0x7C, 0x00, 0x00, 0x3E, 0x7C, 0x00, 0x00, 0x3E, 0x3E, 0x00, 0x00, 0x7C,
|
|
0x3E, 0x00, 0x00, 0x7C, 0x3F, 0x00, 0x00, 0xFC, 0x1F, 0x80, 0x01, 0xF8,
|
|
0x1F, 0xC0, 0x03, 0xF8, 0x0F, 0xE0, 0x07, 0xF0, 0x0F, 0xF8, 0x1F, 0xF0,
|
|
0x07, 0xFF, 0xFF, 0xE0, 0x03, 0xFF, 0xFF, 0xC0, 0x00, 0xFF, 0xFF, 0x00,
|
|
0x00, 0x3F, 0xFC, 0x00, 0x00, 0x0F, 0xF0, 0x00,
|
|
};
|
|
|
|
static const uint8_t advert_icon[] = {
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x30,
|
|
0x1C, 0x00, 0x00, 0x38, 0x18, 0x00, 0x00, 0x18, 0x30, 0x00, 0x00, 0x0C,
|
|
0x30, 0x60, 0x06, 0x0C, 0x60, 0xE0, 0x07, 0x06, 0x61, 0xC0, 0x03, 0x86,
|
|
0xE1, 0x81, 0x81, 0x87, 0xC3, 0x07, 0xE0, 0xC3, 0xC3, 0x0F, 0xF0, 0xC3,
|
|
0xC3, 0x0F, 0xF0, 0xC3, 0xC3, 0x0F, 0xF0, 0xC3, 0xC3, 0x0F, 0xF0, 0xC3,
|
|
0xC3, 0x07, 0xE0, 0xC3, 0xC1, 0x83, 0xC1, 0x83, 0x61, 0x80, 0x01, 0x86,
|
|
0x60, 0xC0, 0x03, 0x06, 0x70, 0xE0, 0x07, 0x0E, 0x30, 0x40, 0x02, 0x0C,
|
|
0x38, 0x00, 0x00, 0x1C, 0x18, 0x00, 0x00, 0x18, 0x0C, 0x00, 0x00, 0x30,
|
|
0x04, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
|
|
static const uint8_t muted_icon[] = {
|
|
0x20, 0x6a, 0xea, 0xe4, 0xe4, 0xea, 0x6a, 0x20
|
|
};
|
|
|
|
// small lightning bolt, 8x8px, shown next to the battery icon while charging
|
|
static const uint8_t charging_icon[] = {
|
|
0x18, 0x30, 0x60, 0xFC, 0x18, 0x30, 0x60, 0xC0
|
|
};
|
|
|
|
// small power plug, 8x8px, shown next to the battery icon once fully charged
|
|
static const uint8_t plug_icon[] = {
|
|
0x24, 0x24, 0x7E, 0x7E, 0x7E, 0x3C, 0x18, 0x18
|
|
}; |