Merge branch 'develop' into docker-actions

# Conflicts:
#	.github/workflows/main.yml
#	docker/Dockerfile
This commit is contained in:
Jean-François Milants 2022-05-14 21:56:03 +02:00
commit 9d1c1bfa59
149 changed files with 951 additions and 9011 deletions

34
.github/workflows/format.yml vendored Normal file
View File

@ -0,0 +1,34 @@
name: Code formatting
on:
pull_request:
branches: [ master, develop ]
jobs:
test-format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 1000
- name: Configure git
run: |
git config --global user.email "-"
git config --global user.name "Autoformatter"
git fetch origin "$GITHUB_BASE_REF":"$GITHUB_BASE_REF" --depth=1000
- name: Install clang-format
run: |
sudo apt-get update
sudo apt-get -y install clang-format-12
- name: Check formatting
run: tests/test-format.sh "$GITHUB_BASE_REF"
- name: Upload patches
uses: actions/upload-artifact@v3
if: failure()
with:
name: Patches
path: ./*.patch

View File

@ -6,9 +6,9 @@ name: Build PineTime LVGL Simulator
# When to run this Workflow... # When to run this Workflow...
on: on:
# Run on all branches # Run this Workflow when files are updated (Pushed) in the "master" and "develop" Branch
push: push:
branches: [] branches: [ master, develop ]
# Also run this Workflow when a Pull Request is created or updated in the "master" and "develop" Branch # Also run this Workflow when a Pull Request is created or updated in the "master" and "develop" Branch
pull_request: pull_request:
@ -34,6 +34,10 @@ jobs:
sudo apt-get update sudo apt-get update
sudo apt-get -y install libsdl2-dev sudo apt-get -y install libsdl2-dev
- name: Install lv_font_conv
run:
npm i -g lv_font_conv@1.5.2
######################################################################################### #########################################################################################
# Checkout # Checkout

View File

@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.10) cmake_minimum_required(VERSION 3.10)
project(pinetime VERSION 1.8.0 LANGUAGES C CXX ASM) project(pinetime VERSION 1.9.0 LANGUAGES C CXX ASM)
set(CMAKE_C_STANDARD 99) set(CMAKE_C_STANDARD 99)
set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD 14)

View File

@ -15,7 +15,7 @@ Fast open-source firmware for the [PineTime smartwatch](https://www.pine64.org/p
- [Gadgetbridge](https://gadgetbridge.org/) (Android) - [Gadgetbridge](https://gadgetbridge.org/) (Android)
- [AmazFish](https://openrepos.net/content/piggz/amazfish/) (SailfishOS) - [AmazFish](https://openrepos.net/content/piggz/amazfish/) (SailfishOS)
- [Siglo](https://github.com/alexr4535/siglo) (Linux) - [Siglo](https://github.com/alexr4535/siglo) (Linux)
- [InfiniLink](https://github.com/xan-m/InfiniLink) **[Experimental]** (iOS) - [InfiniLink](https://github.com/InfiniTimeOrg/InfiniLink) **[Experimental]** **[Unmaintained, looking for developers/maintainers]** (iOS)
- [ITD](https://gitea.arsenm.dev/Arsen6331/itd) (Linux) - [ITD](https://gitea.arsenm.dev/Arsen6331/itd) (Linux)
## Development ## Development

View File

@ -12,6 +12,11 @@ To build this project, you'll need:
python -m pip install -r tools/mcuboot/requirements.txt python -m pip install -r tools/mcuboot/requirements.txt
``` ```
- A reasonably recent version of CMake (I use 3.16.5) - A reasonably recent version of CMake (I use 3.16.5)
- lv_font_conv, to generate the font .c files
- see [lv_font_conv](https://github.com/lvgl/lv_font_conv#install-the-script)
- install npm (commonly done via the package manager)
- install lv_font_conv: `npm i lv_font_conv -g`
- if installed non-globally, make sure `lv_font_conv` is in the PATH
## Build steps ## Build steps
### Clone the repo ### Clone the repo

View File

@ -1,4 +1,4 @@
FROM ubuntu:20.04 FROM ubuntu:22.04
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update -qq \ RUN apt-get update -qq \
@ -11,15 +11,19 @@ RUN apt-get update -qq \
make \ make \
python3 \ python3 \
python3-pip \ python3-pip \
python-is-python3 \
tar \ tar \
unzip \ unzip \
wget \ wget \
# aarch64 packages curl \
# aarch64 packages
libffi-dev \ libffi-dev \
libssl-dev \ libssl-dev \
python3-dev \ python3-dev \
python \
git \ git \
apt-utils \
&& curl -sL https://deb.nodesource.com/setup_18.x | bash - \
&& apt-get install -y nodejs \
&& rm -rf /var/cache/apt/* /var/lib/apt/lists/*; && rm -rf /var/cache/apt/* /var/lib/apt/lists/*;
# Git needed for PROJECT_GIT_COMMIT_HASH variable setting # Git needed for PROJECT_GIT_COMMIT_HASH variable setting
@ -27,6 +31,7 @@ RUN apt-get update -qq \
RUN pip3 install adafruit-nrfutil RUN pip3 install adafruit-nrfutil
RUN pip3 install -Iv cryptography==3.3 RUN pip3 install -Iv cryptography==3.3
RUN pip3 install cbor RUN pip3 install cbor
RUN npm i lv_font_conv@1.5.2 -g
# build.sh knows how to compile # build.sh knows how to compile
COPY build.sh /opt/ COPY build.sh /opt/

View File

@ -367,36 +367,13 @@ set(QCBOR_SRC
) )
list(APPEND IMAGE_FILES list(APPEND IMAGE_FILES
displayapp/icons/battery/os_battery_error.c displayapp/icons/battery/batteryicon.c
displayapp/icons/battery/os_battery_100.c
displayapp/icons/battery/os_battery_090.c
displayapp/icons/battery/os_battery_080.c
displayapp/icons/battery/os_battery_070.c
displayapp/icons/battery/os_battery_060.c
displayapp/icons/battery/os_battery_050.c
displayapp/icons/battery/os_battery_040.c
displayapp/icons/battery/os_battery_030.c
displayapp/icons/battery/os_battery_020.c
displayapp/icons/battery/os_battery_010.c
displayapp/icons/battery/os_battery_005.c
displayapp/icons/battery/os_batterycharging_100.c
displayapp/icons/battery/os_batterycharging_090.c
displayapp/icons/battery/os_batterycharging_080.c
displayapp/icons/battery/os_batterycharging_070.c
displayapp/icons/battery/os_batterycharging_060.c
displayapp/icons/battery/os_batterycharging_050.c
displayapp/icons/battery/os_batterycharging_040.c
displayapp/icons/battery/os_batterycharging_030.c
displayapp/icons/battery/os_batterycharging_020.c
displayapp/icons/battery/os_batterycharging_010.c
displayapp/icons/battery/os_batterycharging_005.c
displayapp/icons/bluetooth/os_bt_connected.c displayapp/icons/bluetooth/os_bt_connected.c
displayapp/icons/bluetooth/os_bt_disconnected.c displayapp/icons/bluetooth/os_bt_disconnected.c
) )
include(displayapp/fonts/CMakeLists.txt)
list(APPEND SOURCE_FILES list(APPEND SOURCE_FILES
BootloaderVersion.cpp BootloaderVersion.cpp
logging/NrfLogger.cpp logging/NrfLogger.cpp
@ -449,14 +426,14 @@ list(APPEND SOURCE_FILES
displayapp/screens/settings/SettingSetTime.cpp displayapp/screens/settings/SettingSetTime.cpp
displayapp/screens/settings/SettingChimes.cpp displayapp/screens/settings/SettingChimes.cpp
displayapp/screens/settings/SettingShakeThreshold.cpp displayapp/screens/settings/SettingShakeThreshold.cpp
displayapp/screens/settings/SettingAirplaneMode.cpp displayapp/screens/settings/SettingBluetooth.cpp
## Watch faces ## Watch faces
displayapp/icons/bg_clock.c displayapp/icons/bg_clock.c
displayapp/screens/WatchFaceAnalog.cpp displayapp/screens/WatchFaceAnalog.cpp
displayapp/screens/WatchFaceDigital.cpp displayapp/screens/WatchFaceDigital.cpp
displayapp/screens/WatchFaceTerminal.cpp displayapp/screens/WatchFaceTerminal.cpp
displayapp/screens/PineTimeStyle.cpp displayapp/screens/WatchFacePineTimeStyle.cpp
## ##
@ -920,7 +897,6 @@ add_custom_command(TARGET ${EXECUTABLE_NAME}
COMMAND ${CMAKE_OBJCOPY} -O ihex ${EXECUTABLE_FILE_NAME}.out "${EXECUTABLE_FILE_NAME}.hex" COMMAND ${CMAKE_OBJCOPY} -O ihex ${EXECUTABLE_FILE_NAME}.out "${EXECUTABLE_FILE_NAME}.hex"
COMMENT "post build steps for ${EXECUTABLE_FILE_NAME}") COMMENT "post build steps for ${EXECUTABLE_FILE_NAME}")
# Build binary intended to be used by bootloader # Build binary intended to be used by bootloader
set(EXECUTABLE_MCUBOOT_NAME "pinetime-mcuboot-app") set(EXECUTABLE_MCUBOOT_NAME "pinetime-mcuboot-app")
set(EXECUTABLE_MCUBOOT_FILE_NAME ${EXECUTABLE_MCUBOOT_NAME}-${pinetime_VERSION_MAJOR}.${pinetime_VERSION_MINOR}.${pinetime_VERSION_PATCH}) set(EXECUTABLE_MCUBOOT_FILE_NAME ${EXECUTABLE_MCUBOOT_NAME}-${pinetime_VERSION_MAJOR}.${pinetime_VERSION_MINOR}.${pinetime_VERSION_PATCH})

View File

@ -93,7 +93,7 @@
/* Software timer definitions. */ /* Software timer definitions. */
#define configUSE_TIMERS 1 #define configUSE_TIMERS 1
#define configTIMER_TASK_PRIORITY (0) #define configTIMER_TASK_PRIORITY (1)
#define configTIMER_QUEUE_LENGTH 32 #define configTIMER_QUEUE_LENGTH 32
#define configTIMER_TASK_STACK_DEPTH (300) #define configTIMER_TASK_STACK_DEPTH (300)

View File

@ -54,7 +54,8 @@ void AlarmController::ScheduleAlarm() {
auto now = dateTimeController.CurrentDateTime(); auto now = dateTimeController.CurrentDateTime();
alarmTime = now; alarmTime = now;
time_t ttAlarmTime = std::chrono::system_clock::to_time_t(alarmTime); time_t ttAlarmTime = std::chrono::system_clock::to_time_t(
std::chrono::time_point_cast<std::chrono::system_clock::duration>(alarmTime));
tm* tmAlarmTime = std::localtime(&ttAlarmTime); tm* tmAlarmTime = std::localtime(&ttAlarmTime);
// If the time being set has already passed today,the alarm should be set for tomorrow // If the time being set has already passed today,the alarm should be set for tomorrow

View File

@ -17,6 +17,7 @@
*/ */
#include "components/ble/MusicService.h" #include "components/ble/MusicService.h"
#include "systemtask/SystemTask.h" #include "systemtask/SystemTask.h"
#include <cstring>
namespace { namespace {
// 0000yyxx-78fc-48fe-8e23-433b3a1942d0 // 0000yyxx-78fc-48fe-8e23-433b3a1942d0
@ -47,6 +48,8 @@ namespace {
constexpr ble_uuid128_t msRepeatCharUuid {CharUuid(0x0b, 0x00)}; constexpr ble_uuid128_t msRepeatCharUuid {CharUuid(0x0b, 0x00)};
constexpr ble_uuid128_t msShuffleCharUuid {CharUuid(0x0c, 0x00)}; constexpr ble_uuid128_t msShuffleCharUuid {CharUuid(0x0c, 0x00)};
constexpr uint8_t MaxStringSize {40};
int MusicCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt* ctxt, void* arg) { int MusicCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt* ctxt, void* arg) {
return static_cast<Pinetime::Controllers::MusicService*>(arg)->OnCommand(conn_handle, attr_handle, ctxt); return static_cast<Pinetime::Controllers::MusicService*>(arg)->OnCommand(conn_handle, attr_handle, ctxt);
} }
@ -125,9 +128,21 @@ void Pinetime::Controllers::MusicService::Init() {
int Pinetime::Controllers::MusicService::OnCommand(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt* ctxt) { int Pinetime::Controllers::MusicService::OnCommand(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt* ctxt) {
if (ctxt->op == BLE_GATT_ACCESS_OP_WRITE_CHR) { if (ctxt->op == BLE_GATT_ACCESS_OP_WRITE_CHR) {
size_t notifSize = OS_MBUF_PKTLEN(ctxt->om); size_t notifSize = OS_MBUF_PKTLEN(ctxt->om);
char data[notifSize + 1]; size_t bufferSize = notifSize;
data[notifSize] = '\0'; if (notifSize > MaxStringSize) {
os_mbuf_copydata(ctxt->om, 0, notifSize, data); bufferSize = MaxStringSize;
}
char data[bufferSize + 1];
os_mbuf_copydata(ctxt->om, 0, bufferSize, data);
if (notifSize > bufferSize) {
data[bufferSize-1] = '.';
data[bufferSize-2] = '.';
data[bufferSize-3] = '.';
}
data[bufferSize] = '\0';
char* s = &data[0]; char* s = &data[0];
if (ble_uuid_cmp(ctxt->chr->uuid, &msArtistCharUuid.u) == 0) { if (ble_uuid_cmp(ctxt->chr->uuid, &msArtistCharUuid.u) == 0) {
artistName = s; artistName = s;
@ -137,12 +152,20 @@ int Pinetime::Controllers::MusicService::OnCommand(uint16_t conn_handle, uint16_
albumName = s; albumName = s;
} else if (ble_uuid_cmp(ctxt->chr->uuid, &msStatusCharUuid.u) == 0) { } else if (ble_uuid_cmp(ctxt->chr->uuid, &msStatusCharUuid.u) == 0) {
playing = s[0]; playing = s[0];
// These variables need to be updated, because the progress may not be updated immediately,
// leading to getProgress() returning an incorrect position.
if (playing) {
trackProgressUpdateTime = xTaskGetTickCount();
} else {
trackProgress += static_cast<int>((static_cast<float>(xTaskGetTickCount() - trackProgressUpdateTime) / 1024.0f) * getPlaybackSpeed());
}
} else if (ble_uuid_cmp(ctxt->chr->uuid, &msRepeatCharUuid.u) == 0) { } else if (ble_uuid_cmp(ctxt->chr->uuid, &msRepeatCharUuid.u) == 0) {
repeat = s[0]; repeat = s[0];
} else if (ble_uuid_cmp(ctxt->chr->uuid, &msShuffleCharUuid.u) == 0) { } else if (ble_uuid_cmp(ctxt->chr->uuid, &msShuffleCharUuid.u) == 0) {
shuffle = s[0]; shuffle = s[0];
} else if (ble_uuid_cmp(ctxt->chr->uuid, &msPositionCharUuid.u) == 0) { } else if (ble_uuid_cmp(ctxt->chr->uuid, &msPositionCharUuid.u) == 0) {
trackProgress = (s[0] << 24) | (s[1] << 16) | (s[2] << 8) | s[3]; trackProgress = (s[0] << 24) | (s[1] << 16) | (s[2] << 8) | s[3];
trackProgressUpdateTime = xTaskGetTickCount();
} else if (ble_uuid_cmp(ctxt->chr->uuid, &msTotalLengthCharUuid.u) == 0) { } else if (ble_uuid_cmp(ctxt->chr->uuid, &msTotalLengthCharUuid.u) == 0) {
trackLength = (s[0] << 24) | (s[1] << 16) | (s[2] << 8) | s[3]; trackLength = (s[0] << 24) | (s[1] << 16) | (s[2] << 8) | s[3];
} else if (ble_uuid_cmp(ctxt->chr->uuid, &msTrackNumberCharUuid.u) == 0) { } else if (ble_uuid_cmp(ctxt->chr->uuid, &msTrackNumberCharUuid.u) == 0) {
@ -177,6 +200,9 @@ float Pinetime::Controllers::MusicService::getPlaybackSpeed() const {
} }
int Pinetime::Controllers::MusicService::getProgress() const { int Pinetime::Controllers::MusicService::getProgress() const {
if (isPlaying()) {
return trackProgress + static_cast<int>((static_cast<float>(xTaskGetTickCount() - trackProgressUpdateTime) / 1024.0f) * getPlaybackSpeed());
}
return trackProgress; return trackProgress;
} }

View File

@ -81,6 +81,7 @@ namespace Pinetime {
int trackLength {0}; int trackLength {0};
int trackNumber {}; int trackNumber {};
int tracksTotal {}; int tracksTotal {};
TickType_t trackProgressUpdateTime {0};
float playbackSpeed {1.0f}; float playbackSpeed {1.0f};

View File

@ -35,7 +35,6 @@ NimbleController::NimbleController(Pinetime::System::SystemTask& systemTask,
: systemTask {systemTask}, : systemTask {systemTask},
bleController {bleController}, bleController {bleController},
dateTimeController {dateTimeController}, dateTimeController {dateTimeController},
notificationManager {notificationManager},
spiNorFlash {spiNorFlash}, spiNorFlash {spiNorFlash},
fs {fs}, fs {fs},
dfuService {systemTask, bleController, spiNorFlash}, dfuService {systemTask, bleController, spiNorFlash},
@ -77,6 +76,7 @@ int GAPEventCallback(struct ble_gap_event* event, void* arg) {
void NimbleController::Init() { void NimbleController::Init() {
while (!ble_hs_synced()) { while (!ble_hs_synced()) {
vTaskDelay(10);
} }
nptr = this; nptr = this;

View File

@ -86,7 +86,6 @@ namespace Pinetime {
Pinetime::System::SystemTask& systemTask; Pinetime::System::SystemTask& systemTask;
Ble& bleController; Ble& bleController;
DateTime& dateTimeController; DateTime& dateTimeController;
NotificationManager& notificationManager;
Pinetime::Drivers::SpiNorFlash& spiNorFlash; Pinetime::Drivers::SpiNorFlash& spiNorFlash;
FS& fs; FS& fs;
DfuService dfuService; DfuService dfuService;

View File

@ -237,7 +237,7 @@ namespace Pinetime {
uint8_t appMenu = 0; uint8_t appMenu = 0;
uint8_t settingsMenu = 0; uint8_t settingsMenu = 0;
/* airplaneMode is intentionally not saved with the other watch settings and initialized /* ble state is intentionally not saved with the other watch settings and initialized
* to off (false) on every boot because we always want ble to be enabled on startup * to off (false) on every boot because we always want ble to be enabled on startup
*/ */
bool bleRadioEnabled = true; bool bleRadioEnabled = true;

View File

@ -1,69 +1,39 @@
//
// Created by florian on 16.05.21.
//
#include "components/timer/TimerController.h" #include "components/timer/TimerController.h"
#include "systemtask/SystemTask.h" #include "systemtask/SystemTask.h"
#include "app_timer.h"
#include "task.h"
using namespace Pinetime::Controllers; using namespace Pinetime::Controllers;
void TimerCallback(TimerHandle_t xTimer) {
APP_TIMER_DEF(timerAppTimer); auto* controller = static_cast<TimerController*>(pvTimerGetTimerID(xTimer));
controller->OnTimerEnd();
namespace {
void TimerEnd(void* p_context) {
auto* controller = static_cast<Pinetime::Controllers::TimerController*> (p_context);
if(controller != nullptr)
controller->OnTimerEnd();
}
} }
void TimerController::Init(Pinetime::System::SystemTask* systemTask) {
void TimerController::Init() { this->systemTask = systemTask;
app_timer_create(&timerAppTimer, APP_TIMER_MODE_SINGLE_SHOT, TimerEnd); timer = xTimerCreate("Timer", 0, pdFALSE, this, TimerCallback);
} }
void TimerController::StartTimer(uint32_t duration) { void TimerController::StartTimer(uint32_t duration) {
app_timer_stop(timerAppTimer); xTimerChangePeriod(timer, pdMS_TO_TICKS(duration), 0);
auto currentTicks = xTaskGetTickCount(); xTimerStart(timer, 0);
app_timer_start(timerAppTimer, APP_TIMER_TICKS(duration), this);
endTicks = currentTicks + APP_TIMER_TICKS(duration);
timerRunning = true;
} }
uint32_t TimerController::GetTimeRemaining() { uint32_t TimerController::GetTimeRemaining() {
if (!timerRunning) { if (IsRunning()) {
return 0; TickType_t remainingTime = xTimerGetExpiryTime(timer) - xTaskGetTickCount();
return (remainingTime * 1000 / configTICK_RATE_HZ);
} }
auto currentTicks = xTaskGetTickCount(); return 0;
TickType_t deltaTicks = 0;
if (currentTicks > endTicks) {
deltaTicks = 0xffffffff - currentTicks;
deltaTicks += (endTicks + 1);
} else {
deltaTicks = endTicks - currentTicks;
}
return (static_cast<TickType_t>(deltaTicks) / static_cast<TickType_t>(configTICK_RATE_HZ)) * 1000;
} }
void TimerController::StopTimer() { void TimerController::StopTimer() {
app_timer_stop(timerAppTimer); xTimerStop(timer, 0);
timerRunning = false;
} }
bool TimerController::IsRunning() { bool TimerController::IsRunning() {
return timerRunning; return (xTimerIsTimerActive(timer) == pdTRUE);
}
void TimerController::OnTimerEnd() {
timerRunning = false;
if(systemTask != nullptr)
systemTask->PushMessage(System::Messages::OnTimerDone);
} }
void TimerController::Register(Pinetime::System::SystemTask* systemTask) { void TimerController::OnTimerEnd() {
this->systemTask = systemTask; systemTask->PushMessage(System::Messages::OnTimerDone);
} }

View File

@ -1,37 +1,33 @@
#pragma once #pragma once
#include <cstdint> #include <FreeRTOS.h>
#include "app_timer.h" #include <timers.h>
#include "portmacro_cmsis.h"
namespace Pinetime { namespace Pinetime {
namespace System { namespace System {
class SystemTask; class SystemTask;
} }
namespace Controllers { namespace Controllers {
class TimerController { class TimerController {
public: public:
TimerController() = default; TimerController() = default;
void Init(); void Init(System::SystemTask* systemTask);
void StartTimer(uint32_t duration); void StartTimer(uint32_t duration);
void StopTimer(); void StopTimer();
uint32_t GetTimeRemaining(); uint32_t GetTimeRemaining();
bool IsRunning(); bool IsRunning();
void OnTimerEnd(); void OnTimerEnd();
void Register(System::SystemTask* systemTask);
private: private:
System::SystemTask* systemTask = nullptr; System::SystemTask* systemTask = nullptr;
TickType_t endTicks; TimerHandle_t timer;
bool timerRunning = false;
}; };
} }
} }

View File

@ -38,7 +38,7 @@ namespace Pinetime {
SettingSetTime, SettingSetTime,
SettingChimes, SettingChimes,
SettingShakeThreshold, SettingShakeThreshold,
SettingAirplaneMode, SettingBluetooth,
Error Error
}; };
} }

View File

@ -10,17 +10,17 @@ lv_color_t Pinetime::Applications::Convert(Pinetime::Controllers::Settings::Colo
case Pinetime::Controllers::Settings::Colors::Gray: return LV_COLOR_GRAY; case Pinetime::Controllers::Settings::Colors::Gray: return LV_COLOR_GRAY;
case Pinetime::Controllers::Settings::Colors::Black: return LV_COLOR_BLACK; case Pinetime::Controllers::Settings::Colors::Black: return LV_COLOR_BLACK;
case Pinetime::Controllers::Settings::Colors::Red: return LV_COLOR_RED; case Pinetime::Controllers::Settings::Colors::Red: return LV_COLOR_RED;
case Pinetime::Controllers::Settings::Colors::Maroon: return LV_COLOR_MAROON; case Pinetime::Controllers::Settings::Colors::Maroon: return LV_COLOR_MAKE(0xb0, 0x0, 0x0);
case Pinetime::Controllers::Settings::Colors::Yellow: return LV_COLOR_YELLOW; case Pinetime::Controllers::Settings::Colors::Yellow: return LV_COLOR_YELLOW;
case Pinetime::Controllers::Settings::Colors::Olive: return LV_COLOR_OLIVE; case Pinetime::Controllers::Settings::Colors::Olive: return LV_COLOR_MAKE(0xb0, 0xb0, 0x0);
case Pinetime::Controllers::Settings::Colors::Lime: return LV_COLOR_LIME; case Pinetime::Controllers::Settings::Colors::Lime: return LV_COLOR_LIME;
case Pinetime::Controllers::Settings::Colors::Green: return LV_COLOR_GREEN; case Pinetime::Controllers::Settings::Colors::Green: return LV_COLOR_MAKE(0x0, 0xb0, 0x0);
case Pinetime::Controllers::Settings::Colors::Cyan: return LV_COLOR_CYAN; case Pinetime::Controllers::Settings::Colors::Cyan: return LV_COLOR_CYAN;
case Pinetime::Controllers::Settings::Colors::Teal: return LV_COLOR_TEAL; case Pinetime::Controllers::Settings::Colors::Teal: return LV_COLOR_MAKE(0x0, 0xb0, 0xb0);
case Pinetime::Controllers::Settings::Colors::Blue: return LV_COLOR_BLUE; case Pinetime::Controllers::Settings::Colors::Blue: return LV_COLOR_BLUE;
case Pinetime::Controllers::Settings::Colors::Navy: return LV_COLOR_NAVY; case Pinetime::Controllers::Settings::Colors::Navy: return LV_COLOR_MAKE(0x0, 0x0, 0xb0);
case Pinetime::Controllers::Settings::Colors::Magenta: return LV_COLOR_MAGENTA; case Pinetime::Controllers::Settings::Colors::Magenta: return LV_COLOR_MAGENTA;
case Pinetime::Controllers::Settings::Colors::Purple: return LV_COLOR_PURPLE; case Pinetime::Controllers::Settings::Colors::Purple: return LV_COLOR_MAKE(0xb0, 0x0, 0xb0);
case Pinetime::Controllers::Settings::Colors::Orange: return LV_COLOR_ORANGE; case Pinetime::Controllers::Settings::Colors::Orange: return LV_COLOR_ORANGE;
default: return LV_COLOR_WHITE; default: return LV_COLOR_WHITE;
} }

View File

@ -49,7 +49,7 @@
#include "displayapp/screens/settings/SettingSetTime.h" #include "displayapp/screens/settings/SettingSetTime.h"
#include "displayapp/screens/settings/SettingChimes.h" #include "displayapp/screens/settings/SettingChimes.h"
#include "displayapp/screens/settings/SettingShakeThreshold.h" #include "displayapp/screens/settings/SettingShakeThreshold.h"
#include "displayapp/screens/settings/SettingAirplaneMode.h" #include "displayapp/screens/settings/SettingBluetooth.h"
#include "libs/lv_conf.h" #include "libs/lv_conf.h"
@ -60,28 +60,6 @@ namespace {
static inline bool in_isr(void) { static inline bool in_isr(void) {
return (SCB->ICSR & SCB_ICSR_VECTACTIVE_Msk) != 0; return (SCB->ICSR & SCB_ICSR_VECTACTIVE_Msk) != 0;
} }
TouchEvents ConvertGesture(Pinetime::Drivers::Cst816S::Gestures gesture) {
switch (gesture) {
case Pinetime::Drivers::Cst816S::Gestures::SingleTap:
return TouchEvents::Tap;
case Pinetime::Drivers::Cst816S::Gestures::LongPress:
return TouchEvents::LongTap;
case Pinetime::Drivers::Cst816S::Gestures::DoubleTap:
return TouchEvents::DoubleTap;
case Pinetime::Drivers::Cst816S::Gestures::SlideRight:
return TouchEvents::SwipeRight;
case Pinetime::Drivers::Cst816S::Gestures::SlideLeft:
return TouchEvents::SwipeLeft;
case Pinetime::Drivers::Cst816S::Gestures::SlideDown:
return TouchEvents::SwipeDown;
case Pinetime::Drivers::Cst816S::Gestures::SlideUp:
return TouchEvents::SwipeUp;
case Pinetime::Drivers::Cst816S::Gestures::None:
default:
return TouchEvents::None;
}
}
} }
DisplayApp::DisplayApp(Drivers::St7789& lcd, DisplayApp::DisplayApp(Drivers::St7789& lcd,
@ -185,12 +163,10 @@ void DisplayApp::Refresh() {
brightnessController.Lower(); brightnessController.Lower();
vTaskDelay(100); vTaskDelay(100);
} }
lcd.DisplayOff();
PushMessageToSystemTask(Pinetime::System::Messages::OnDisplayTaskSleeping); PushMessageToSystemTask(Pinetime::System::Messages::OnDisplayTaskSleeping);
state = States::Idle; state = States::Idle;
break; break;
case Messages::GoToRunning: case Messages::GoToRunning:
lcd.DisplayOn();
brightnessController.Restore(); brightnessController.Restore();
state = States::Running; state = States::Running;
break; break;
@ -207,7 +183,7 @@ void DisplayApp::Refresh() {
case Messages::TimerDone: case Messages::TimerDone:
if (currentApp == Apps::Timer) { if (currentApp == Apps::Timer) {
auto* timer = static_cast<Screens::Timer*>(currentScreen.get()); auto* timer = static_cast<Screens::Timer*>(currentScreen.get());
timer->setDone(); timer->SetDone();
} else { } else {
LoadApp(Apps::Timer, DisplayApp::FullRefreshDirections::Down); LoadApp(Apps::Timer, DisplayApp::FullRefreshDirections::Down);
} }
@ -227,7 +203,7 @@ void DisplayApp::Refresh() {
if (state != States::Running) { if (state != States::Running) {
break; break;
} }
auto gesture = ConvertGesture(touchHandler.GestureGet()); auto gesture = touchHandler.GestureGet();
if (gesture == TouchEvents::None) { if (gesture == TouchEvents::None) {
break; break;
} }
@ -306,14 +282,14 @@ void DisplayApp::Refresh() {
} }
} }
if (touchHandler.IsTouching()) {
currentScreen->OnTouchEvent(touchHandler.GetX(), touchHandler.GetY());
}
if (nextApp != Apps::None) { if (nextApp != Apps::None) {
LoadApp(nextApp, nextDirection); LoadApp(nextApp, nextDirection);
nextApp = Apps::None; nextApp = Apps::None;
} }
if (touchHandler.IsTouching()) {
currentScreen->OnTouchEvent(touchHandler.GetX(), touchHandler.GetY());
}
} }
void DisplayApp::StartApp(Apps app, DisplayApp::FullRefreshDirections direction) { void DisplayApp::StartApp(Apps app, DisplayApp::FullRefreshDirections direction) {
@ -434,8 +410,8 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction)
currentScreen = std::make_unique<Screens::SettingShakeThreshold>(this, settingsController, motionController, *systemTask); currentScreen = std::make_unique<Screens::SettingShakeThreshold>(this, settingsController, motionController, *systemTask);
ReturnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown); ReturnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown);
break; break;
case Apps::SettingAirplaneMode: case Apps::SettingBluetooth:
currentScreen = std::make_unique<Screens::SettingAirplaneMode>(this, settingsController); currentScreen = std::make_unique<Screens::SettingBluetooth>(this, settingsController);
ReturnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown); ReturnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown);
break; break;
case Apps::BatteryInfo: case Apps::BatteryInfo:

View File

@ -16,14 +16,22 @@ static void disp_flush(lv_disp_drv_t* disp_drv, const lv_area_t* area, lv_color_
lvgl->FlushDisplay(area, color_p); lvgl->FlushDisplay(area, color_p);
} }
static void rounder(lv_disp_drv_t* disp_drv, lv_area_t* area) {
auto* lvgl = static_cast<LittleVgl*>(disp_drv->user_data);
if (lvgl->GetFullRefresh()) {
area->x1 = 0;
area->x2 = LV_HOR_RES - 1;
area->y1 = 0;
area->y2 = LV_VER_RES - 1;
}
}
bool touchpad_read(lv_indev_drv_t* indev_drv, lv_indev_data_t* data) { bool touchpad_read(lv_indev_drv_t* indev_drv, lv_indev_data_t* data) {
auto* lvgl = static_cast<LittleVgl*>(indev_drv->user_data); auto* lvgl = static_cast<LittleVgl*>(indev_drv->user_data);
return lvgl->GetTouchPadInfo(data); return lvgl->GetTouchPadInfo(data);
} }
LittleVgl::LittleVgl(Pinetime::Drivers::St7789& lcd, Pinetime::Drivers::Cst816S& touchPanel) LittleVgl::LittleVgl(Pinetime::Drivers::St7789& lcd, Pinetime::Drivers::Cst816S& touchPanel) : lcd {lcd}, touchPanel {touchPanel} {
: lcd {lcd}, touchPanel {touchPanel}, previousClick {0, 0} {
} }
void LittleVgl::Init() { void LittleVgl::Init() {
@ -48,6 +56,7 @@ void LittleVgl::InitDisplay() {
/*Set a display buffer*/ /*Set a display buffer*/
disp_drv.buffer = &disp_buf_2; disp_drv.buffer = &disp_buf_2;
disp_drv.user_data = this; disp_drv.user_data = this;
disp_drv.rounder_cb = rounder;
/*Finally register the driver*/ /*Finally register the driver*/
lv_disp_drv_register(&disp_drv); lv_disp_drv_register(&disp_drv);
@ -78,6 +87,7 @@ void LittleVgl::SetFullRefresh(FullRefreshDirections direction) {
lv_disp_set_direction(lv_disp_get_default(), 4); lv_disp_set_direction(lv_disp_get_default(), 4);
} }
} }
fullRefresh = true;
} }
void LittleVgl::FlushDisplay(const lv_area_t* area, lv_color_t* color_p) { void LittleVgl::FlushDisplay(const lv_area_t* area, lv_color_t* color_p) {

View File

@ -26,6 +26,14 @@ namespace Pinetime {
void SetFullRefresh(FullRefreshDirections direction); void SetFullRefresh(FullRefreshDirections direction);
void SetNewTouchPoint(uint16_t x, uint16_t y, bool contact); void SetNewTouchPoint(uint16_t x, uint16_t y, bool contact);
bool GetFullRefresh() {
bool returnValue = fullRefresh;
if (fullRefresh) {
fullRefresh = false;
}
return returnValue;
}
private: private:
void InitDisplay(); void InitDisplay();
void InitTouchpad(); void InitTouchpad();
@ -39,9 +47,8 @@ namespace Pinetime {
lv_color_t buf2_2[LV_HOR_RES_MAX * 4]; lv_color_t buf2_2[LV_HOR_RES_MAX * 4];
lv_disp_drv_t disp_drv; lv_disp_drv_t disp_drv;
lv_point_t previousClick;
bool firstTouch = true; bool fullRefresh = false;
static constexpr uint8_t nbWriteLines = 4; static constexpr uint8_t nbWriteLines = 4;
static constexpr uint16_t totalNbLines = 320; static constexpr uint16_t totalNbLines = 320;
static constexpr uint16_t visibleNbLines = 240; static constexpr uint16_t visibleNbLines = 240;

View File

@ -0,0 +1,19 @@
cmake_minimum_required(VERSION 3.10)
set(FONTS jetbrains_mono_42 jetbrains_mono_76 jetbrains_mono_bold_20
jetbrains_mono_extrabold_compressed lv_font_navi_80 lv_font_sys_48
open_sans_light)
find_program(LV_FONT_CONV "lv_font_conv" NO_CACHE REQUIRED)
configure_file(${CMAKE_CURRENT_LIST_DIR}/jetbrains_mono_bold_20.c_zero.patch
displayapp/fonts/jetbrains_mono_bold_20.c_zero.patch COPYONLY)
foreach(FONT ${FONTS})
set_source_files_properties(displayapp/fonts/${FONT}.c
PROPERTIES GENERATED TRUE)
add_custom_command(OUTPUT displayapp/fonts/${FONT}.c
COMMAND python ${CMAKE_CURRENT_LIST_DIR}/generate.py
-f ${FONT} ${CMAKE_CURRENT_LIST_DIR}/fonts.json
DEPENDS ${CMAKE_CURRENT_LIST_DIR}/fonts.json
WORKING_DIRECTORY displayapp/fonts
)
endforeach()

View File

@ -4,17 +4,10 @@
* [Awesome font from LVGL](https://lvgl.io/assets/others/FontAwesome5-Solid+Brands+Regular.woff) * [Awesome font from LVGL](https://lvgl.io/assets/others/FontAwesome5-Solid+Brands+Regular.woff)
* [Open Sans Light from Google](https://fonts.google.com/specimen/Open+Sans) * [Open Sans Light from Google](https://fonts.google.com/specimen/Open+Sans)
## Generate the fonts:
* Open the [LVGL font converter](https://lvgl.io/tools/fontconverter)
* Enter the settings for the font that you wish to convert
* Click on Convert, download the file and place it in `src/DisplayApp/Fonts`
### How to add new symbols: ### How to add new symbols:
* Browse [this cheatsheet](https://fontawesome.com/cheatsheet/free/solid) and pick symbols * Browse [this cheatsheet](https://fontawesome.com/cheatsheet/free/solid) and pick symbols
* For each symbol, add its hex code (0xf641 for the 'Ad' icon, for example) to the *Range* list (Remember to keep this * For each symbol, add its hex code (0xf641 for the 'Ad' icon, for example) to the *Range* list (or the symbol list when its simple enough) in the `fonts.json` file
readme updated with newest range list)
* Convert this hex value into a UTF-8 code * Convert this hex value into a UTF-8 code
using [this site](http://www.ltg.ed.ac.uk/~richard/utf-8.cgi?input=f185&mode=hex) using [this site](http://www.ltg.ed.ac.uk/~richard/utf-8.cgi?input=f185&mode=hex)
* Define the new symbols in `src/displayapp/screens/Symbols.h`: * Define the new symbols in `src/displayapp/screens/Symbols.h`:
@ -23,77 +16,17 @@
static constexpr const char* newSymbol = "\xEF\x86\x85"; static constexpr const char* newSymbol = "\xEF\x86\x85";
``` ```
### Small font ### the config file format:
* Name: jetbrains_mono_bold_20 inside `fonts`, there is a dictionary of fonts,
* Size: 20 and for each font there is:
* Bpp: 1 bit-per-pixel * sources - list of file,range(,symbols) wanted (as a dictionary of those)
* Do not enable font compression or horizontal subpixel rendering * bpp - bits per pixel.
* Load the file `JetBrainsMono-Bold.tff` (use the file in this repo to ensure the version matches) and specify the following range: `0x20-0x7e, 0x410-0x44f` * size - size.
* Add a 2nd font, load the file `FontAwesome5-Solid+Brands+Regular.woff` and specify the following * patches - list of extra "patches" to run: a path to a .patch file. (may be relative)
range: `0xf293, 0xf294, 0xf244, 0xf240, 0xf242, 0xf243, 0xf241, 0xf54b, 0xf21e, 0xf1e6, 0xf54b, 0xf017, 0xf129, 0xf03a, 0xf185, 0xf560, 0xf001, 0xf3fd, 0xf069, 0xf1fc, 0xf45d, 0xf59f, 0xf5a0, 0xf029, 0xf027, 0xf028, 0xf6a9, 0xf04b, 0xf04c, 0xf048, 0xf051, 0xf095, 0xf3dd, 0xf04d, 0xf2f2, 0xf024, 0xf252, 0xf569, 0xf201, 0xf06e, 0xf015, 0xf072` * compress - optional. default disabled. add `"compress": true` to enable
* Fix an error in the font conversion.
Replace the following:
/* U+0030 "0" */
0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe1, 0xf8, 0x7f,
0xdf, 0xf7, 0xe1, 0xf8, 0x7e, 0x1f, 0xcf, 0x7f,
0x8f, 0xc0,
with
/* U+0030 "0" */
0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe1, 0xf8, 0x7e,
0xdf, 0xb7, 0xe1, 0xf8, 0x7e, 0x1f, 0xcf, 0x7f,
0x8f, 0xc0,
(there are two changes: 7f -> 7e and f7 -> b7)
### Medium font
* Name: jetbrains_mono_42
* Size: 42
* Bpp: 1 bit-per-pixel
* Do not enable font compression or horizontal subpixel rendering
* Load the file `JetBrainsMono-Regular.tff` (use the file in this repo to ensure the version matches) and specify the following range: `0x25, 0x30-0x3a`
### Large font
* Name: jetbrains_mono_76
* Size: 76
* Bpp: 1 bit-per-pixel
* Do not enable font compression or horizontal subpixel rendering
* Load the file `JetBrainsMono-Regular.tff` (use the file in this repo to ensure the version matches) and specify the following range: `0x25, 0x2D, 0x2F, 0x30-0x3a`
### Digital watchface font
* Name: jetbrains_mono_extrabold_compressed
* Size: 80
* Bpp: 1 bit-per-pixel
* Do not enable font compression or horizontal subpixel rendering
* Load the file `JetBrainsMono-ExtraBold.tff` (use the file in this repo to ensure the version matches) and specify the following range: `0x30-0x3a`
### PineTimeStyle font
* Name: open_sans_light
* Size: 150
* Bpp: 1 bit-per-pixel
* Do not enable font compression or horizontal subpixel rendering
* Load the file `open_sans_light.tff` (use the file in this repo to ensure the version matches) and specify the following symbols: `0123456789`
### Symbols font (Used in QuickSettings for example)
* Name: lv_font_sys_48
* Size: 48
* Bpp: 1 bit-per-pixel
* Do not enable font compression or horizontal subpixel rendering
* Load the file `icons_sys_48.tff` and specify the following range: `0xe902, 0xe904-0xe907, 0xe90b-0xe90c`
### Navigation font ### Navigation font
`navigtion.ttf` is created with the web app [icomoon](https://icomoon.io/app) by importing the svg files from `src/displayapp/icons/navigation/unique` and generating the font. `lv_font_navi_80.json` is a project file for the site, which you can import to add or remove icons. `navigtion.ttf` is created with the web app [icomoon](https://icomoon.io/app) by importing the svg files from `src/displayapp/icons/navigation/unique` and generating the font. `lv_font_navi_80.json` is a project file for the site, which you can import to add or remove icons.
This font must be generated with the `lv_font_conv` tool, which has additional options not available in the online converter.
`lv_font_conv --font navigation.ttf -r '0xe900-0xe929' --size 80 --format lvgl --bpp 2 -o lv_font_navi_80.c`

View File

@ -0,0 +1,78 @@
{
"jetbrains_mono_bold_20": {
"sources": [
{
"file": "JetBrainsMono-Bold.ttf",
"range": "0x20-0x7e, 0x410-0x44f"
},
{
"file": "FontAwesome5-Solid+Brands+Regular.woff",
"range": "0xf293, 0xf294, 0xf244, 0xf240, 0xf242, 0xf243, 0xf241, 0xf54b, 0xf21e, 0xf1e6, 0xf54b, 0xf017, 0xf129, 0xf03a, 0xf185, 0xf560, 0xf001, 0xf3fd, 0xf069, 0xf1fc, 0xf45d, 0xf59f, 0xf5a0, 0xf029, 0xf027, 0xf028, 0xf6a9, 0xf04b, 0xf04c, 0xf048, 0xf051, 0xf095, 0xf3dd, 0xf04d, 0xf2f2, 0xf024, 0xf252, 0xf569, 0xf201, 0xf06e, 0xf015"
}
],
"bpp": 1,
"size": 20,
"patches": ["jetbrains_mono_bold_20.c_zero.patch"]
},
"jetbrains_mono_42": {
"sources": [
{
"file": "JetBrainsMono-Regular.ttf",
"range": "0x25, 0x30-0x3a"
}
],
"bpp": 1,
"size": 42
},
"jetbrains_mono_76": {
"sources": [
{
"file": "JetBrainsMono-Regular.ttf",
"range": "0x25, 0x2D, 0x2F, 0x30-0x3a"
}
],
"bpp": 1,
"size": 76
},
"jetbrains_mono_extrabold_compressed": {
"sources": [
{
"file": "JetBrainsMono-ExtraBold.ttf",
"range": "0x30-0x3a"
}
],
"bpp": 1,
"size": 80
},
"open_sans_light": {
"sources": [
{
"file": "open_sans_light.ttf",
"symbols": "0123456789"
}
],
"bpp": 1,
"size": 150
},
"lv_font_sys_48": {
"sources": [
{
"file": "icons_sys_48.ttf",
"range": "0xe902, 0xe904-0xe907, 0xe90b-0xe90c"
}
],
"bpp": 1,
"size": 48
},
"lv_font_navi_80": {
"sources": [
{
"file": "navigation.ttf",
"range": "0xe900-0xe929"
}
],
"bpp": 2,
"size": 80,
"compress": true
}
}

View File

@ -0,0 +1,74 @@
#!/usr/bin/env python
import io
import sys
import json
import shutil
import typing
import os.path
import argparse
import subprocess
class Source(object):
def __init__(self, d):
self.file = d['file']
if not os.path.exists(self.file):
self.file = os.path.join(os.path.dirname(sys.argv[0]), self.file)
self.range = d.get('range')
self.symbols = d.get('symbols')
def gen_lvconv_line(dest: str, size: int, bpp: int, sources: typing.List[Source], compress:bool=False):
args = ['lv_font_conv', '--size', str(size), '--output', dest, '--bpp', str(bpp), '--format', 'lvgl']
if not compress:
args.append('--no-compress')
for source in sources:
args.extend(['--font', source.file])
if source.range:
args.extend(['--range', source.range])
if source.symbols:
args.extend(['--symbols', source.symbols])
return args
def main():
ap = argparse.ArgumentParser(description='auto generate LVGL font files from fonts')
ap.add_argument('config', type=str, help='config file to use')
ap.add_argument('-f', '--font', type=str, action='append', help='Choose specific fonts to generate (default: all)', default=[])
args = ap.parse_args()
if not shutil.which('lv_font_conv'):
sys.exit(f'Missing lv_font_conv. (make sure it is installed and in PATH)')
if not os.path.exists(args.config):
sys.exit(f'Error: the config file {args.config} does not exist.')
if not os.access(args.config, os.R_OK):
sys.exit(f'Error: the config file {args.config} is not accessable (permissions?).')
with open(args.config, 'r') as fd:
data = json.load(fd)
fonts_to_run = set(data.keys())
if args.font:
enabled_fonts = set()
for font in args.font:
enabled_fonts.add(font[:-2] if font.endswith('.c') else font)
d = enabled_fonts.difference(fonts_to_run)
if d:
print(f'Warning: requested font{"s" if len(d)>1 else ""} missing: {" ".join(d)}')
fonts_to_run = fonts_to_run.intersection(enabled_fonts)
for name in fonts_to_run:
font = data[name]
sources = font.pop('sources')
patches = font.pop('patches') if 'patches' in font else []
font['sources'] = [Source(thing) for thing in sources]
line = gen_lvconv_line(f'{name}.c', **font)
subprocess.check_call(line)
if patches:
for patch in patches:
subprocess.check_call(['/usr/bin/patch', name+'.c', patch])
if __name__ == '__main__':
main()

View File

@ -1,258 +0,0 @@
/*******************************************************************************
* Size: 42 px
* Bpp: 1
* Opts:
******************************************************************************/
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef JETBRAINS_MONO_42
#define JETBRAINS_MONO_42 1
#endif
#if JETBRAINS_MONO_42
/*-----------------
* BITMAPS
*----------------*/
/*Store the image of the glyphs*/
static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
/* U+0025 "%" */
0x1f, 0x80, 0x7, 0x3f, 0xc0, 0xe, 0x7f, 0xe0,
0x1c, 0xf0, 0xf0, 0x1c, 0xe0, 0x70, 0x38, 0xe0,
0x70, 0x70, 0xe0, 0x70, 0x70, 0xe0, 0x70, 0xe0,
0xe0, 0x71, 0xc0, 0xe0, 0x71, 0xc0, 0xf0, 0xf3,
0x80, 0x7f, 0xe7, 0x0, 0x3f, 0xc7, 0x0, 0x1f,
0x8e, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x3c, 0x0,
0x0, 0x38, 0x0, 0x0, 0x71, 0xf8, 0x0, 0xe3,
0xfc, 0x0, 0xe7, 0xfe, 0x1, 0xcf, 0xf, 0x3,
0x8e, 0x7, 0x3, 0x8e, 0x7, 0x7, 0xe, 0x7,
0xe, 0xe, 0x7, 0xe, 0xe, 0x7, 0x1c, 0xe,
0x7, 0x38, 0xf, 0xf, 0x38, 0x7, 0xfe, 0x70,
0x3, 0xfc, 0xe0, 0x1, 0xf8,
/* U+0030 "0" */
0x3, 0xf8, 0x1, 0xff, 0xc0, 0xff, 0xfe, 0x1f,
0x7, 0xc7, 0xc0, 0x7c, 0xf0, 0x7, 0xbc, 0x0,
0x7f, 0x80, 0xf, 0xf0, 0x1, 0xfe, 0x0, 0x3f,
0xc0, 0x7, 0xf8, 0x0, 0xff, 0xe, 0x1f, 0xe3,
0xe3, 0xfc, 0x7c, 0x7f, 0x8f, 0x8f, 0xf0, 0xe1,
0xfe, 0x0, 0x3f, 0xc0, 0x7, 0xf8, 0x0, 0xff,
0x0, 0x1f, 0xe0, 0x3, 0xfc, 0x0, 0x7f, 0x80,
0xf, 0xf0, 0x1, 0xef, 0x0, 0x79, 0xf0, 0x1f,
0x1f, 0x7, 0xc3, 0xff, 0xf8, 0x1f, 0xfc, 0x0,
0xfe, 0x0,
/* U+0031 "1" */
0x3, 0xf0, 0x0, 0xfe, 0x0, 0x3f, 0xc0, 0x1f,
0xf8, 0x7, 0xcf, 0x1, 0xf1, 0xe0, 0x3c, 0x3c,
0x7, 0x7, 0x80, 0x80, 0xf0, 0x0, 0x1e, 0x0,
0x3, 0xc0, 0x0, 0x78, 0x0, 0xf, 0x0, 0x1,
0xe0, 0x0, 0x3c, 0x0, 0x7, 0x80, 0x0, 0xf0,
0x0, 0x1e, 0x0, 0x3, 0xc0, 0x0, 0x78, 0x0,
0xf, 0x0, 0x1, 0xe0, 0x0, 0x3c, 0x0, 0x7,
0x80, 0x0, 0xf0, 0x0, 0x1e, 0x0, 0x3, 0xc0,
0x0, 0x78, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xf8,
/* U+0032 "2" */
0x3, 0xf8, 0x1, 0xff, 0xc0, 0xff, 0xfc, 0x1f,
0x7, 0xc7, 0xc0, 0x7c, 0xf0, 0x7, 0xbc, 0x0,
0x7f, 0x80, 0xf, 0xf0, 0x1, 0xe0, 0x0, 0x3c,
0x0, 0x7, 0x80, 0x1, 0xf0, 0x0, 0x3c, 0x0,
0xf, 0x80, 0x1, 0xe0, 0x0, 0x7c, 0x0, 0x1f,
0x0, 0x7, 0xc0, 0x1, 0xf0, 0x0, 0x7c, 0x0,
0x1f, 0x0, 0x3, 0xc0, 0x0, 0xf0, 0x0, 0x3e,
0x0, 0xf, 0x80, 0x3, 0xe0, 0x0, 0xf8, 0x0,
0x3e, 0x0, 0x7, 0xff, 0xfe, 0xff, 0xff, 0xdf,
0xff, 0xf8,
/* U+0033 "3" */
0x7f, 0xff, 0x8f, 0xff, 0xf1, 0xff, 0xfe, 0x0,
0x3, 0xc0, 0x0, 0xf0, 0x0, 0x3c, 0x0, 0xf,
0x0, 0x3, 0xe0, 0x0, 0x78, 0x0, 0x1e, 0x0,
0x7, 0x80, 0x1, 0xfc, 0x0, 0x3f, 0xe0, 0x7,
0xfe, 0x0, 0xff, 0xe0, 0x0, 0x3e, 0x0, 0x3,
0xc0, 0x0, 0x7c, 0x0, 0x7, 0x80, 0x0, 0xf0,
0x0, 0x1e, 0x0, 0x3, 0xfc, 0x0, 0x7f, 0x80,
0xf, 0xf0, 0x1, 0xff, 0x0, 0x79, 0xe0, 0x1f,
0x1f, 0x7, 0xc3, 0xff, 0xf0, 0x1f, 0xfc, 0x0,
0xfe, 0x0,
/* U+0034 "4" */
0x0, 0x1e, 0x0, 0xf, 0x80, 0x3, 0xc0, 0x1,
0xe0, 0x0, 0x78, 0x0, 0x3c, 0x0, 0x1f, 0x0,
0x7, 0x80, 0x3, 0xc0, 0x1, 0xf0, 0x0, 0x78,
0x0, 0x3e, 0x0, 0xf, 0x0, 0x7, 0x80, 0xf3,
0xe0, 0x3c, 0xf0, 0xf, 0x7c, 0x3, 0xde, 0x0,
0xff, 0x0, 0x3f, 0xc0, 0xf, 0xf0, 0x3, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x3,
0xc0, 0x0, 0xf0, 0x0, 0x3c, 0x0, 0xf, 0x0,
0x3, 0xc0, 0x0, 0xf0, 0x0, 0x3c,
/* U+0035 "5" */
0x7f, 0xff, 0x9f, 0xff, 0xe7, 0xff, 0xf9, 0xe0,
0x0, 0x78, 0x0, 0x1e, 0x0, 0x7, 0x80, 0x1,
0xe0, 0x0, 0x78, 0x0, 0x1e, 0x0, 0x7, 0x8f,
0x81, 0xef, 0xf8, 0x7f, 0xff, 0x1f, 0x87, 0xe7,
0xc0, 0x79, 0xe0, 0x1f, 0x0, 0x3, 0xc0, 0x0,
0xf0, 0x0, 0x3c, 0x0, 0xf, 0x0, 0x3, 0xc0,
0x0, 0xf0, 0x0, 0x3c, 0x0, 0xf, 0xf0, 0x3,
0xde, 0x1, 0xe7, 0x80, 0x78, 0xf8, 0x7e, 0x3f,
0xff, 0x3, 0xff, 0x80, 0x3f, 0x0,
/* U+0036 "6" */
0x0, 0x3c, 0x0, 0x7, 0x80, 0x0, 0x78, 0x0,
0xf, 0x0, 0x1, 0xe0, 0x0, 0x1e, 0x0, 0x3,
0xc0, 0x0, 0x3c, 0x0, 0x7, 0x80, 0x0, 0x70,
0x0, 0xf, 0x0, 0x1, 0xe7, 0xc0, 0x1f, 0xff,
0x3, 0xff, 0xfc, 0x3f, 0xf, 0xc7, 0xc0, 0x3e,
0x78, 0x1, 0xe7, 0x80, 0x1f, 0xf0, 0x0, 0xff,
0x0, 0xf, 0xf0, 0x0, 0xff, 0x0, 0xf, 0xf0,
0x0, 0xff, 0x0, 0xf, 0xf8, 0x1, 0xe7, 0x80,
0x1e, 0x7c, 0x3, 0xe3, 0xf0, 0xfc, 0x1f, 0xff,
0x80, 0xff, 0xf0, 0x1, 0xf8, 0x0,
/* U+0037 "7" */
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x0, 0x1e, 0xf0, 0x1, 0xef, 0x0, 0x1e, 0xf0,
0x3, 0xcf, 0x0, 0x3c, 0x0, 0x3, 0x80, 0x0,
0x78, 0x0, 0x7, 0x80, 0x0, 0xf0, 0x0, 0xf,
0x0, 0x0, 0xf0, 0x0, 0x1e, 0x0, 0x1, 0xe0,
0x0, 0x3c, 0x0, 0x3, 0xc0, 0x0, 0x3c, 0x0,
0x7, 0x80, 0x0, 0x78, 0x0, 0x7, 0x80, 0x0,
0xf0, 0x0, 0xf, 0x0, 0x1, 0xe0, 0x0, 0x1e,
0x0, 0x1, 0xe0, 0x0, 0x3c, 0x0, 0x3, 0xc0,
0x0, 0x7c, 0x0, 0x7, 0x80, 0x0,
/* U+0038 "8" */
0x1, 0xf8, 0x0, 0xff, 0xf0, 0x1f, 0xff, 0x83,
0xf0, 0xfc, 0x3c, 0x3, 0xc7, 0xc0, 0x3e, 0x78,
0x1, 0xe7, 0x80, 0x1e, 0x78, 0x1, 0xe7, 0x80,
0x1e, 0x3c, 0x3, 0xc3, 0xe0, 0x7c, 0x1f, 0xf,
0x80, 0xff, 0xf0, 0x3, 0xfc, 0x0, 0x7f, 0xe0,
0xf, 0xff, 0x3, 0xe0, 0x7c, 0x3c, 0x3, 0xc7,
0x80, 0x1e, 0xf0, 0x0, 0xff, 0x0, 0xf, 0xf0,
0x0, 0xff, 0x0, 0xf, 0xf0, 0x0, 0xff, 0x80,
0x1f, 0x7c, 0x3, 0xe7, 0xe0, 0x7e, 0x3f, 0xff,
0xc0, 0xff, 0xf0, 0x3, 0xfc, 0x0,
/* U+0039 "9" */
0x3, 0xf8, 0x0, 0xff, 0xf0, 0x1f, 0xff, 0x83,
0xe0, 0xfc, 0x7c, 0x3, 0xe7, 0x80, 0x1e, 0xf8,
0x1, 0xff, 0x0, 0xf, 0xf0, 0x0, 0xff, 0x0,
0xf, 0xf0, 0x0, 0xff, 0x0, 0xf, 0xf8, 0x1,
0xf7, 0x80, 0x1e, 0x7c, 0x3, 0xe3, 0xe0, 0x7e,
0x3f, 0xff, 0xc1, 0xff, 0xfc, 0x7, 0xe7, 0x80,
0x0, 0xf8, 0x0, 0xf, 0x0, 0x1, 0xe0, 0x0,
0x1e, 0x0, 0x3, 0xc0, 0x0, 0x3c, 0x0, 0x7,
0x80, 0x0, 0xf8, 0x0, 0xf, 0x0, 0x1, 0xe0,
0x0, 0x1e, 0x0, 0x3, 0xc0, 0x0,
/* U+003A ":" */
0x7d, 0xff, 0xff, 0xff, 0xef, 0x80, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
0xf7, 0xff, 0xff, 0xff, 0xbe
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
{.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
{.bitmap_index = 0, .adv_w = 403, .box_w = 24, .box_h = 31, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 93, .adv_w = 403, .box_w = 19, .box_h = 31, .ofs_x = 3, .ofs_y = 0},
{.bitmap_index = 167, .adv_w = 403, .box_w = 19, .box_h = 31, .ofs_x = 4, .ofs_y = 0},
{.bitmap_index = 241, .adv_w = 403, .box_w = 19, .box_h = 31, .ofs_x = 3, .ofs_y = 0},
{.bitmap_index = 315, .adv_w = 403, .box_w = 19, .box_h = 31, .ofs_x = 3, .ofs_y = 0},
{.bitmap_index = 389, .adv_w = 403, .box_w = 18, .box_h = 31, .ofs_x = 3, .ofs_y = 0},
{.bitmap_index = 459, .adv_w = 403, .box_w = 18, .box_h = 31, .ofs_x = 3, .ofs_y = 0},
{.bitmap_index = 529, .adv_w = 403, .box_w = 20, .box_h = 31, .ofs_x = 3, .ofs_y = 0},
{.bitmap_index = 607, .adv_w = 403, .box_w = 20, .box_h = 31, .ofs_x = 3, .ofs_y = 0},
{.bitmap_index = 685, .adv_w = 403, .box_w = 20, .box_h = 31, .ofs_x = 3, .ofs_y = 0},
{.bitmap_index = 763, .adv_w = 403, .box_w = 20, .box_h = 31, .ofs_x = 3, .ofs_y = 0},
{.bitmap_index = 841, .adv_w = 403, .box_w = 7, .box_h = 24, .ofs_x = 9, .ofs_y = 0}
};
/*---------------------
* CHARACTER MAPPING
*--------------------*/
/*Collect the unicode lists and glyph_id offsets*/
static const lv_font_fmt_txt_cmap_t cmaps[] =
{
{
.range_start = 37, .range_length = 1, .glyph_id_start = 1,
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
},
{
.range_start = 48, .range_length = 11, .glyph_id_start = 2,
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
}
};
/*--------------------
* ALL CUSTOM DATA
*--------------------*/
#if LV_VERSION_CHECK(8, 0, 0)
/*Store all the custom data of the font*/
static lv_font_fmt_txt_glyph_cache_t cache;
static const lv_font_fmt_txt_dsc_t font_dsc = {
#else
static lv_font_fmt_txt_dsc_t font_dsc = {
#endif
.glyph_bitmap = glyph_bitmap,
.glyph_dsc = glyph_dsc,
.cmaps = cmaps,
.kern_dsc = NULL,
.kern_scale = 0,
.cmap_num = 2,
.bpp = 1,
.kern_classes = 0,
.bitmap_format = 0,
#if LV_VERSION_CHECK(8, 0, 0)
.cache = &cache
#endif
};
/*-----------------
* PUBLIC FONT
*----------------*/
/*Initialize a public general font descriptor*/
#if LV_VERSION_CHECK(8, 0, 0)
const lv_font_t jetbrains_mono_42 = {
#else
lv_font_t jetbrains_mono_42 = {
#endif
.get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/
.get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/
.line_height = 31, /*The maximum line height required by the font*/
.base_line = 0, /*Baseline measured from the bottom of the line*/
#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0)
.subpx = LV_FONT_SUBPX_NONE,
#endif
#if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8
.underline_position = -7,
.underline_thickness = 2,
#endif
.dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
};
#endif /*#if JETBRAINS_MONO_42*/

View File

@ -1,554 +0,0 @@
/*******************************************************************************
* Size: 76 px
* Bpp: 1
* Opts:
******************************************************************************/
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef JETBRAINS_MONO_76
#define JETBRAINS_MONO_76 1
#endif
#if JETBRAINS_MONO_76
/*-----------------
* BITMAPS
*----------------*/
/*Store the image of the glyphs*/
static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
/* U+0025 "%" */
0x1, 0xfc, 0x0, 0x0, 0x7, 0xe1, 0xff, 0xf0,
0x0, 0x1, 0xf8, 0x7f, 0xff, 0x0, 0x0, 0x3f,
0x1f, 0xff, 0xf0, 0x0, 0xf, 0xc7, 0xff, 0xff,
0x0, 0x3, 0xf0, 0xfe, 0xf, 0xe0, 0x0, 0x7e,
0x3f, 0x80, 0xfc, 0x0, 0x1f, 0x87, 0xe0, 0xf,
0xc0, 0x7, 0xe0, 0xfc, 0x1, 0xf8, 0x0, 0xfc,
0x1f, 0x80, 0x3f, 0x0, 0x3f, 0x3, 0xf0, 0x7,
0xe0, 0xf, 0xc0, 0x7e, 0x0, 0xfc, 0x1, 0xf8,
0xf, 0xc0, 0x1f, 0x80, 0x7e, 0x1, 0xf8, 0x3,
0xf0, 0x1f, 0x80, 0x3f, 0x0, 0x7e, 0x3, 0xf0,
0x7, 0xe0, 0xf, 0xc0, 0xfc, 0x0, 0xfc, 0x1,
0xf8, 0x3f, 0x0, 0x1f, 0x80, 0x3f, 0x7, 0xe0,
0x3, 0xf8, 0xf, 0xe1, 0xf8, 0x0, 0x3f, 0x83,
0xf8, 0x7e, 0x0, 0x7, 0xff, 0xff, 0xf, 0xc0,
0x0, 0x7f, 0xff, 0xc3, 0xf0, 0x0, 0x7, 0xff,
0xf0, 0xfc, 0x0, 0x0, 0x7f, 0xfc, 0x1f, 0x80,
0x0, 0x1, 0xfc, 0x7, 0xe0, 0x0, 0x0, 0x0,
0x1, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x0,
0x0, 0x0, 0x0, 0xf, 0xc0, 0x0, 0x0, 0x0,
0x3, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x7e, 0x0,
0x0, 0x0, 0x0, 0x1f, 0x80, 0x0, 0x0, 0x0,
0x7, 0xe0, 0x3f, 0x80, 0x0, 0x0, 0xfc, 0x3f,
0xfe, 0x0, 0x0, 0x3f, 0xf, 0xff, 0xe0, 0x0,
0xf, 0xc3, 0xff, 0xfe, 0x0, 0x1, 0xf8, 0xff,
0xff, 0xe0, 0x0, 0x7e, 0x1f, 0xc1, 0xfc, 0x0,
0x1f, 0x83, 0xf0, 0x1f, 0x80, 0x3, 0xf0, 0xfc,
0x1, 0xf8, 0x0, 0xfc, 0x1f, 0x80, 0x3f, 0x0,
0x3f, 0x3, 0xf0, 0x7, 0xe0, 0x7, 0xe0, 0x7e,
0x0, 0xfc, 0x1, 0xf8, 0xf, 0xc0, 0x1f, 0x80,
0x7e, 0x1, 0xf8, 0x3, 0xf0, 0xf, 0xc0, 0x3f,
0x0, 0x7e, 0x3, 0xf0, 0x7, 0xe0, 0xf, 0xc0,
0xfc, 0x0, 0xfc, 0x1, 0xf8, 0x1f, 0x80, 0x1f,
0x80, 0x3f, 0x7, 0xe0, 0x3, 0xf8, 0xf, 0xe1,
0xf8, 0x0, 0x7f, 0x1, 0xfc, 0x3f, 0x0, 0x7,
0xff, 0xff, 0xf, 0xc0, 0x0, 0xff, 0xff, 0xe3,
0xf0, 0x0, 0xf, 0xff, 0xf8, 0xfe, 0x0, 0x0,
0xff, 0xfe, 0x1f, 0x80, 0x0, 0xf, 0xff, 0x87,
0xe0, 0x0, 0x0, 0xff, 0xe0, 0x0, 0x0, 0x0,
0x0, 0x80, 0x0,
/* U+002D "-" */
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff,
/* U+002F "/" */
0x0, 0x0, 0x0, 0x3f, 0xc0, 0x0, 0x0, 0xf,
0xe0, 0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0x1,
0xfe, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0,
0x1f, 0xc0, 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0,
0x3, 0xf8, 0x0, 0x0, 0x1, 0xfe, 0x0, 0x0,
0x0, 0x7f, 0x0, 0x0, 0x0, 0x1f, 0xc0, 0x0,
0x0, 0xf, 0xf0, 0x0, 0x0, 0x3, 0xf8, 0x0,
0x0, 0x0, 0xfe, 0x0, 0x0, 0x0, 0x7f, 0x0,
0x0, 0x0, 0x1f, 0xc0, 0x0, 0x0, 0xf, 0xf0,
0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0x0, 0xfe,
0x0, 0x0, 0x0, 0x7f, 0x80, 0x0, 0x0, 0x1f,
0xc0, 0x0, 0x0, 0x7, 0xf0, 0x0, 0x0, 0x3,
0xf8, 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x0,
0x7f, 0x80, 0x0, 0x0, 0x1f, 0xc0, 0x0, 0x0,
0x7, 0xf0, 0x0, 0x0, 0x3, 0xfc, 0x0, 0x0,
0x0, 0xfe, 0x0, 0x0, 0x0, 0x3f, 0x80, 0x0,
0x0, 0x1f, 0xc0, 0x0, 0x0, 0x7, 0xf0, 0x0,
0x0, 0x3, 0xfc, 0x0, 0x0, 0x0, 0xfe, 0x0,
0x0, 0x0, 0x3f, 0x80, 0x0, 0x0, 0x1f, 0xe0,
0x0, 0x0, 0x7, 0xf0, 0x0, 0x0, 0x1, 0xfc,
0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x0, 0x3f,
0x80, 0x0, 0x0, 0x1f, 0xe0, 0x0, 0x0, 0x7,
0xf0, 0x0, 0x0, 0x1, 0xfc, 0x0, 0x0, 0x0,
0xff, 0x0, 0x0, 0x0, 0x3f, 0x80, 0x0, 0x0,
0xf, 0xe0, 0x0, 0x0, 0x7, 0xf0, 0x0, 0x0,
0x1, 0xfc, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0,
0x0, 0x3f, 0x80, 0x0, 0x0, 0xf, 0xe0, 0x0,
0x0, 0x7, 0xf8, 0x0, 0x0, 0x1, 0xfc, 0x0,
0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x3f, 0x80,
0x0, 0x0, 0xf, 0xe0, 0x0, 0x0, 0x7, 0xf8,
0x0, 0x0, 0x1, 0xfc, 0x0, 0x0, 0x0, 0x7f,
0x0, 0x0, 0x0, 0x3f, 0xc0, 0x0, 0x0, 0xf,
0xe0, 0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0x1,
0xfc, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0,
0x3f, 0xc0, 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0,
0x3, 0xf8, 0x0, 0x0, 0x1, 0xfe, 0x0, 0x0,
0x0, 0x7f, 0x0, 0x0, 0x0, 0x1f, 0xc0, 0x0,
0x0, 0xf, 0xe0, 0x0, 0x0, 0x3, 0xf8, 0x0,
0x0, 0x0,
/* U+0030 "0" */
0x0, 0xf, 0xfc, 0x0, 0x0, 0x1f, 0xff, 0xe0,
0x0, 0x1f, 0xff, 0xfe, 0x0, 0xf, 0xff, 0xff,
0xc0, 0x7, 0xff, 0xff, 0xf8, 0x3, 0xff, 0xff,
0xff, 0x1, 0xff, 0xc0, 0xff, 0xe0, 0xff, 0x80,
0x7, 0xfc, 0x3f, 0xc0, 0x0, 0xff, 0x1f, 0xe0,
0x0, 0x1f, 0xe7, 0xf8, 0x0, 0x7, 0xf9, 0xfc,
0x0, 0x0, 0xfe, 0xff, 0x0, 0x0, 0x3f, 0xff,
0x80, 0x0, 0x7, 0xff, 0xe0, 0x0, 0x1, 0xff,
0xf8, 0x0, 0x0, 0x7f, 0xfe, 0x0, 0x0, 0x1f,
0xff, 0x80, 0x0, 0x7, 0xff, 0xe0, 0x0, 0x1,
0xff, 0xf8, 0x0, 0x0, 0x7f, 0xfe, 0x0, 0x0,
0x1f, 0xff, 0x80, 0x0, 0x7, 0xff, 0xe0, 0x0,
0x1, 0xff, 0xf8, 0x0, 0x0, 0x7f, 0xfe, 0x3,
0xe0, 0x1f, 0xff, 0x81, 0xfc, 0x7, 0xff, 0xe0,
0xff, 0x81, 0xff, 0xf8, 0x3f, 0xe0, 0x7f, 0xfe,
0xf, 0xf8, 0x1f, 0xff, 0x83, 0xfe, 0x7, 0xff,
0xe0, 0xff, 0x81, 0xff, 0xf8, 0x1f, 0xc0, 0x7f,
0xfe, 0x3, 0xe0, 0x1f, 0xff, 0x80, 0x0, 0x7,
0xff, 0xe0, 0x0, 0x1, 0xff, 0xf8, 0x0, 0x0,
0x7f, 0xfe, 0x0, 0x0, 0x1f, 0xff, 0x80, 0x0,
0x7, 0xff, 0xe0, 0x0, 0x1, 0xff, 0xf8, 0x0,
0x0, 0x7f, 0xfe, 0x0, 0x0, 0x1f, 0xff, 0x80,
0x0, 0x7, 0xff, 0xe0, 0x0, 0x1, 0xff, 0xf8,
0x0, 0x0, 0x7f, 0xfe, 0x0, 0x0, 0x1f, 0xff,
0xc0, 0x0, 0xf, 0xf7, 0xf0, 0x0, 0x3, 0xf9,
0xfe, 0x0, 0x1, 0xfe, 0x7f, 0xc0, 0x0, 0xff,
0x8f, 0xf8, 0x0, 0x7f, 0xc1, 0xff, 0x0, 0x3f,
0xe0, 0x7f, 0xff, 0xff, 0xf8, 0xf, 0xff, 0xff,
0xfc, 0x1, 0xff, 0xff, 0xfe, 0x0, 0x3f, 0xff,
0xff, 0x0, 0x3, 0xff, 0xff, 0x0, 0x0, 0x3f,
0xff, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
/* U+0031 "1" */
0x0, 0xf, 0xfc, 0x0, 0x0, 0x7, 0xff, 0x0,
0x0, 0x7, 0xff, 0xc0, 0x0, 0x3, 0xff, 0xf0,
0x0, 0x1, 0xff, 0xfc, 0x0, 0x1, 0xff, 0xff,
0x0, 0x0, 0xff, 0xdf, 0xc0, 0x0, 0x7f, 0xe7,
0xf0, 0x0, 0x7f, 0xe1, 0xfc, 0x0, 0x3f, 0xf0,
0x7f, 0x0, 0xf, 0xf8, 0x1f, 0xc0, 0x3, 0xfc,
0x7, 0xf0, 0x0, 0xfc, 0x1, 0xfc, 0x0, 0x3e,
0x0, 0x7f, 0x0, 0xf, 0x0, 0x1f, 0xc0, 0x3,
0x0, 0x7, 0xf0, 0x0, 0x80, 0x1, 0xfc, 0x0,
0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x1f, 0xc0,
0x0, 0x0, 0x7, 0xf0, 0x0, 0x0, 0x1, 0xfc,
0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x1f,
0xc0, 0x0, 0x0, 0x7, 0xf0, 0x0, 0x0, 0x1,
0xfc, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0,
0x1f, 0xc0, 0x0, 0x0, 0x7, 0xf0, 0x0, 0x0,
0x1, 0xfc, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0,
0x0, 0x1f, 0xc0, 0x0, 0x0, 0x7, 0xf0, 0x0,
0x0, 0x1, 0xfc, 0x0, 0x0, 0x0, 0x7f, 0x0,
0x0, 0x0, 0x1f, 0xc0, 0x0, 0x0, 0x7, 0xf0,
0x0, 0x0, 0x1, 0xfc, 0x0, 0x0, 0x0, 0x7f,
0x0, 0x0, 0x0, 0x1f, 0xc0, 0x0, 0x0, 0x7,
0xf0, 0x0, 0x0, 0x1, 0xfc, 0x0, 0x0, 0x0,
0x7f, 0x0, 0x0, 0x0, 0x1f, 0xc0, 0x0, 0x0,
0x7, 0xf0, 0x0, 0x0, 0x1, 0xfc, 0x0, 0x0,
0x0, 0x7f, 0x0, 0x0, 0x0, 0x1f, 0xc0, 0x0,
0x0, 0x7, 0xf0, 0x0, 0x0, 0x1, 0xfc, 0x0,
0x0, 0x0, 0x7f, 0x0, 0xf, 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,
/* U+0032 "2" */
0x0, 0xf, 0xfc, 0x0, 0x0, 0x1f, 0xff, 0xe0,
0x0, 0x1f, 0xff, 0xfe, 0x0, 0xf, 0xff, 0xff,
0xc0, 0x7, 0xff, 0xff, 0xf8, 0x3, 0xff, 0xff,
0xff, 0x1, 0xff, 0xc0, 0x7f, 0xe0, 0xff, 0x80,
0x7, 0xfc, 0x3f, 0xc0, 0x0, 0xff, 0x1f, 0xe0,
0x0, 0x1f, 0xe7, 0xf0, 0x0, 0x3, 0xf9, 0xfc,
0x0, 0x0, 0xfe, 0xff, 0x0, 0x0, 0x3f, 0xff,
0x80, 0x0, 0x7, 0xff, 0xe0, 0x0, 0x1, 0xff,
0xf8, 0x0, 0x0, 0x7f, 0xfe, 0x0, 0x0, 0x1f,
0xc0, 0x0, 0x0, 0x7, 0xf0, 0x0, 0x0, 0x1,
0xfc, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0,
0x3f, 0x80, 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0,
0x7, 0xf8, 0x0, 0x0, 0x1, 0xfc, 0x0, 0x0,
0x0, 0xff, 0x0, 0x0, 0x0, 0x3f, 0x80, 0x0,
0x0, 0x1f, 0xe0, 0x0, 0x0, 0xf, 0xf0, 0x0,
0x0, 0x7, 0xf8, 0x0, 0x0, 0x3, 0xfe, 0x0,
0x0, 0x1, 0xff, 0x0, 0x0, 0x0, 0xff, 0x80,
0x0, 0x0, 0x3f, 0xc0, 0x0, 0x0, 0x1f, 0xe0,
0x0, 0x0, 0xf, 0xf8, 0x0, 0x0, 0x7, 0xfc,
0x0, 0x0, 0x3, 0xfe, 0x0, 0x0, 0x1, 0xff,
0x0, 0x0, 0x0, 0xff, 0x80, 0x0, 0x0, 0x7f,
0xc0, 0x0, 0x0, 0x3f, 0xe0, 0x0, 0x0, 0x1f,
0xf0, 0x0, 0x0, 0xf, 0xf8, 0x0, 0x0, 0x7,
0xfc, 0x0, 0x0, 0x3, 0xfe, 0x0, 0x0, 0x0,
0xff, 0x80, 0x0, 0x0, 0x7f, 0xc0, 0x0, 0x0,
0x3f, 0xe0, 0x0, 0x0, 0x1f, 0xf0, 0x0, 0x0,
0xf, 0xf8, 0x0, 0x0, 0x7, 0xfc, 0x0, 0x0,
0x1, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff,
0xff, 0xdf, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff,
0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff,
0xff, 0xff, 0xc0,
/* U+0033 "3" */
0x3f, 0xff, 0xff, 0xfe, 0xf, 0xff, 0xff, 0xff,
0x83, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff,
0xf8, 0x3f, 0xff, 0xff, 0xfe, 0xf, 0xff, 0xff,
0xff, 0x80, 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0,
0x7, 0xf0, 0x0, 0x0, 0x3, 0xf8, 0x0, 0x0,
0x1, 0xfc, 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0,
0x0, 0x7f, 0x80, 0x0, 0x0, 0x3f, 0xc0, 0x0,
0x0, 0x1f, 0xe0, 0x0, 0x0, 0x7, 0xf0, 0x0,
0x0, 0x3, 0xf8, 0x0, 0x0, 0x1, 0xfc, 0x0,
0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x7f, 0x80,
0x0, 0x0, 0x3f, 0xc0, 0x0, 0x0, 0x1f, 0xe0,
0x0, 0x0, 0x7, 0xff, 0xc0, 0x0, 0x1, 0xff,
0xfc, 0x0, 0x0, 0x7f, 0xff, 0xc0, 0x0, 0x1f,
0xff, 0xf8, 0x0, 0x7, 0xff, 0xff, 0x0, 0x1,
0xff, 0xff, 0xe0, 0x0, 0x0, 0xf, 0xfc, 0x0,
0x0, 0x1, 0xff, 0x0, 0x0, 0x0, 0x1f, 0xe0,
0x0, 0x0, 0x7, 0xf8, 0x0, 0x0, 0x0, 0xfe,
0x0, 0x0, 0x0, 0x3f, 0xc0, 0x0, 0x0, 0x7,
0xf0, 0x0, 0x0, 0x1, 0xfc, 0x0, 0x0, 0x0,
0x7f, 0x0, 0x0, 0x0, 0x1f, 0xc0, 0x0, 0x0,
0x7, 0xf0, 0x0, 0x0, 0x1, 0xfc, 0x0, 0x0,
0x0, 0x7f, 0xfe, 0x0, 0x0, 0x1f, 0xff, 0x80,
0x0, 0x7, 0xff, 0xe0, 0x0, 0x1, 0xff, 0xf8,
0x0, 0x0, 0x7f, 0xff, 0x0, 0x0, 0x3f, 0xdf,
0xc0, 0x0, 0xf, 0xe7, 0xf8, 0x0, 0x7, 0xf9,
0xfe, 0x0, 0x1, 0xfe, 0x3f, 0xc0, 0x0, 0xff,
0xf, 0xfc, 0x0, 0xff, 0x81, 0xff, 0xff, 0xff,
0xe0, 0x3f, 0xff, 0xff, 0xf0, 0x7, 0xff, 0xff,
0xf8, 0x0, 0xff, 0xff, 0xf8, 0x0, 0xf, 0xff,
0xfc, 0x0, 0x0, 0xff, 0xf8, 0x0, 0x0, 0x0,
0xc0, 0x0, 0x0,
/* U+0034 "4" */
0x0, 0x0, 0xf, 0xe0, 0x0, 0x0, 0x1f, 0xe0,
0x0, 0x0, 0x1f, 0xc0, 0x0, 0x0, 0x3f, 0xc0,
0x0, 0x0, 0x7f, 0x80, 0x0, 0x0, 0x7f, 0x0,
0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xfe, 0x0,
0x0, 0x1, 0xfe, 0x0, 0x0, 0x3, 0xfc, 0x0,
0x0, 0x3, 0xf8, 0x0, 0x0, 0x7, 0xf8, 0x0,
0x0, 0x7, 0xf0, 0x0, 0x0, 0xf, 0xf0, 0x0,
0x0, 0x1f, 0xe0, 0x0, 0x0, 0x1f, 0xe0, 0x0,
0x0, 0x3f, 0xc0, 0x0, 0x0, 0x3f, 0x80, 0x0,
0x0, 0x7f, 0x80, 0x0, 0x0, 0xff, 0x0, 0x0,
0x0, 0xff, 0x0, 0x0, 0x1, 0xfe, 0x0, 0x0,
0x1, 0xfc, 0x0, 0x0, 0x3, 0xfc, 0x0, 0x0,
0x7, 0xf8, 0x0, 0x7f, 0x7, 0xf8, 0x0, 0x7f,
0xf, 0xf0, 0x0, 0x7f, 0xf, 0xe0, 0x0, 0x7f,
0x1f, 0xe0, 0x0, 0x7f, 0x3f, 0xc0, 0x0, 0x7f,
0x3f, 0xc0, 0x0, 0x7f, 0x7f, 0x80, 0x0, 0x7f,
0x7f, 0x0, 0x0, 0x7f, 0xff, 0x0, 0x0, 0x7f,
0xfe, 0x0, 0x0, 0x7f, 0xfe, 0x0, 0x0, 0x7f,
0xfe, 0x0, 0x0, 0x7f, 0xfe, 0x0, 0x0, 0x7f,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x7f,
0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x7f,
0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x7f,
0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x7f,
0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x7f,
0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x7f,
/* U+0035 "5" */
0x7f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xfc,
0x7f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xfc,
0x7f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xfc,
0x7f, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0,
0x7f, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0,
0x7f, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0,
0x7f, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0,
0x7f, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0,
0x7f, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0,
0x7f, 0x0, 0x0, 0x0, 0x7f, 0x3, 0xfc, 0x0,
0x7f, 0xf, 0xff, 0x80, 0x7f, 0x3f, 0xff, 0xc0,
0x7f, 0x7f, 0xff, 0xf0, 0x7f, 0x7f, 0xff, 0xf8,
0x7f, 0xff, 0xff, 0xf8, 0x7f, 0xf8, 0x1f, 0xfc,
0x7f, 0xe0, 0x7, 0xfc, 0x7f, 0xc0, 0x1, 0xfe,
0x7f, 0x80, 0x1, 0xfe, 0x7f, 0x80, 0x0, 0xfe,
0x7f, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x7f,
0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x7f,
0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x7f,
0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x7f,
0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x7f,
0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x7f,
0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x7f,
0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xfe,
0xff, 0x0, 0x0, 0xfe, 0x7f, 0x0, 0x1, 0xfe,
0x7f, 0x80, 0x3, 0xfc, 0x3f, 0xe0, 0x7, 0xfc,
0x3f, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xf0,
0xf, 0xff, 0xff, 0xe0, 0x7, 0xff, 0xff, 0xc0,
0x1, 0xff, 0xff, 0x80, 0x0, 0x7f, 0xfc, 0x0,
0x0, 0x1, 0x0, 0x0,
/* U+0036 "6" */
0x0, 0x0, 0x3f, 0xc0, 0x0, 0x0, 0x3, 0xf8,
0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0xf,
0xf0, 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x0,
0x1f, 0xe0, 0x0, 0x0, 0x1, 0xfc, 0x0, 0x0,
0x0, 0x3f, 0xc0, 0x0, 0x0, 0x3, 0xf8, 0x0,
0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x7, 0xf0,
0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x0, 0x1f,
0xe0, 0x0, 0x0, 0x1, 0xfc, 0x0, 0x0, 0x0,
0x3f, 0xc0, 0x0, 0x0, 0x3, 0xf8, 0x0, 0x0,
0x0, 0x7f, 0x0, 0x0, 0x0, 0x7, 0xf0, 0x0,
0x0, 0x0, 0xfe, 0x0, 0x0, 0x0, 0x1f, 0xe0,
0x0, 0x0, 0x1, 0xfc, 0x0, 0x0, 0x0, 0x3f,
0xc0, 0x0, 0x0, 0x3, 0xf8, 0x7f, 0x80, 0x0,
0x7f, 0x9f, 0xff, 0x0, 0x7, 0xf7, 0xff, 0xf8,
0x0, 0xfe, 0xff, 0xff, 0xe0, 0xf, 0xff, 0xff,
0xff, 0x1, 0xff, 0xff, 0xff, 0xf0, 0x1f, 0xfe,
0x7, 0xff, 0x83, 0xff, 0x0, 0xf, 0xfc, 0x3f,
0xe0, 0x0, 0x7f, 0xc7, 0xfc, 0x0, 0x3, 0xfe,
0x7f, 0x80, 0x0, 0x1f, 0xe7, 0xf0, 0x0, 0x0,
0xfe, 0x7f, 0x0, 0x0, 0xf, 0xff, 0xf0, 0x0,
0x0, 0xff, 0xfe, 0x0, 0x0, 0x7, 0xff, 0xe0,
0x0, 0x0, 0x7f, 0xfe, 0x0, 0x0, 0x7, 0xff,
0xe0, 0x0, 0x0, 0x7f, 0xfe, 0x0, 0x0, 0x7,
0xff, 0xe0, 0x0, 0x0, 0x7f, 0xfe, 0x0, 0x0,
0x7, 0xff, 0xe0, 0x0, 0x0, 0x7f, 0x7f, 0x0,
0x0, 0xf, 0xe7, 0xf0, 0x0, 0x0, 0xfe, 0x7f,
0x80, 0x0, 0x1f, 0xe3, 0xf8, 0x0, 0x1, 0xfc,
0x3f, 0xc0, 0x0, 0x3f, 0xc1, 0xfe, 0x0, 0x7,
0xf8, 0x1f, 0xf8, 0x1, 0xff, 0x80, 0xff, 0xff,
0xff, 0xf0, 0x7, 0xff, 0xff, 0xfe, 0x0, 0x3f,
0xff, 0xff, 0xc0, 0x1, 0xff, 0xff, 0xf8, 0x0,
0x7, 0xff, 0xfe, 0x0, 0x0, 0x1f, 0xff, 0x80,
0x0, 0x0, 0x6, 0x0, 0x0,
/* U+0037 "7" */
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, 0xfe, 0x0, 0x0, 0xf, 0xef,
0xe0, 0x0, 0x0, 0xfe, 0xfe, 0x0, 0x0, 0x1f,
0xef, 0xe0, 0x0, 0x1, 0xfc, 0xfe, 0x0, 0x0,
0x1f, 0xcf, 0xe0, 0x0, 0x3, 0xf8, 0xfe, 0x0,
0x0, 0x3f, 0x8f, 0xe0, 0x0, 0x7, 0xf8, 0xfe,
0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x7, 0xf0,
0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x0, 0xf,
0xe0, 0x0, 0x0, 0x1, 0xfe, 0x0, 0x0, 0x0,
0x1f, 0xc0, 0x0, 0x0, 0x1, 0xfc, 0x0, 0x0,
0x0, 0x3f, 0xc0, 0x0, 0x0, 0x3, 0xf8, 0x0,
0x0, 0x0, 0x7f, 0x80, 0x0, 0x0, 0x7, 0xf0,
0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0xf,
0xf0, 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x0,
0x1f, 0xe0, 0x0, 0x0, 0x1, 0xfc, 0x0, 0x0,
0x0, 0x1f, 0xc0, 0x0, 0x0, 0x3, 0xfc, 0x0,
0x0, 0x0, 0x3f, 0x80, 0x0, 0x0, 0x3, 0xf8,
0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x7,
0xf0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0,
0xf, 0xe0, 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0,
0x0, 0x1f, 0xe0, 0x0, 0x0, 0x1, 0xfc, 0x0,
0x0, 0x0, 0x3f, 0xc0, 0x0, 0x0, 0x3, 0xf8,
0x0, 0x0, 0x0, 0x3f, 0x80, 0x0, 0x0, 0x7,
0xf8, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0,
0xf, 0xf0, 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0,
0x0, 0xf, 0xe0, 0x0, 0x0, 0x1, 0xfe, 0x0,
0x0, 0x0, 0x1f, 0xc0, 0x0, 0x0, 0x3, 0xfc,
0x0, 0x0, 0x0, 0x3f, 0x80, 0x0, 0x0, 0x3,
0xf8, 0x0, 0x0, 0x0, 0x7f, 0x80, 0x0, 0x0,
0x7, 0xf0, 0x0, 0x0,
/* U+0038 "8" */
0x0, 0x7, 0xfe, 0x0, 0x0, 0x3, 0xff, 0xfc,
0x0, 0x0, 0xff, 0xff, 0xf0, 0x0, 0x3f, 0xff,
0xff, 0xc0, 0x7, 0xff, 0xff, 0xfe, 0x0, 0xff,
0xff, 0xff, 0xf0, 0x1f, 0xfc, 0x3, 0xff, 0x81,
0xff, 0x0, 0xf, 0xf8, 0x3f, 0xe0, 0x0, 0x7f,
0xc3, 0xfc, 0x0, 0x3, 0xfc, 0x7f, 0x80, 0x0,
0x1f, 0xc7, 0xf8, 0x0, 0x1, 0xfe, 0x7f, 0x0,
0x0, 0xf, 0xe7, 0xf0, 0x0, 0x0, 0xfe, 0x7f,
0x0, 0x0, 0xf, 0xe7, 0xf0, 0x0, 0x0, 0xfe,
0x7f, 0x0, 0x0, 0xf, 0xe7, 0xf8, 0x0, 0x1,
0xfe, 0x3f, 0x80, 0x0, 0x1f, 0xc3, 0xfc, 0x0,
0x3, 0xfc, 0x1f, 0xc0, 0x0, 0x7f, 0x81, 0xff,
0x0, 0xf, 0xf8, 0xf, 0xf8, 0x1, 0xff, 0x0,
0x7f, 0xe0, 0x7f, 0xe0, 0x3, 0xff, 0x9f, 0xfc,
0x0, 0xf, 0xff, 0xff, 0x0, 0x0, 0x7f, 0xff,
0xe0, 0x0, 0x1, 0xff, 0xf8, 0x0, 0x0, 0x7f,
0xff, 0xe0, 0x0, 0xf, 0xff, 0xff, 0x0, 0x3,
0xff, 0x9f, 0xfc, 0x0, 0x7f, 0xe0, 0x7f, 0xe0,
0xf, 0xf8, 0x1, 0xff, 0x1, 0xfe, 0x0, 0x7,
0xf8, 0x1f, 0xc0, 0x0, 0x3f, 0x83, 0xf8, 0x0,
0x1, 0xfc, 0x7f, 0x80, 0x0, 0x1f, 0xe7, 0xf0,
0x0, 0x0, 0xfe, 0x7f, 0x0, 0x0, 0xf, 0xef,
0xe0, 0x0, 0x0, 0x7f, 0xfe, 0x0, 0x0, 0x7,
0xff, 0xe0, 0x0, 0x0, 0x7f, 0xfe, 0x0, 0x0,
0x7, 0xff, 0xe0, 0x0, 0x0, 0x7f, 0xfe, 0x0,
0x0, 0x7, 0xff, 0xf0, 0x0, 0x0, 0xff, 0xff,
0x0, 0x0, 0xf, 0xf7, 0xf8, 0x0, 0x1, 0xfe,
0x7f, 0xc0, 0x0, 0x3f, 0xe3, 0xfe, 0x0, 0x7,
0xfc, 0x3f, 0xf8, 0x1, 0xff, 0xc1, 0xff, 0xff,
0xff, 0xf8, 0xf, 0xff, 0xff, 0xff, 0x0, 0x7f,
0xff, 0xff, 0xe0, 0x3, 0xff, 0xff, 0xfc, 0x0,
0xf, 0xff, 0xff, 0x0, 0x0, 0x1f, 0xff, 0x80,
0x0, 0x0, 0x6, 0x0, 0x0,
/* U+0039 "9" */
0x0, 0x7, 0xfe, 0x0, 0x0, 0x3, 0xff, 0xfc,
0x0, 0x0, 0xff, 0xff, 0xf0, 0x0, 0x1f, 0xff,
0xff, 0x80, 0x3, 0xff, 0xff, 0xfe, 0x0, 0x7f,
0xff, 0xff, 0xf0, 0xf, 0xfc, 0x7, 0xff, 0x1,
0xff, 0x0, 0xf, 0xf8, 0x3f, 0xe0, 0x0, 0x7f,
0xc3, 0xfc, 0x0, 0x3, 0xfc, 0x7f, 0x80, 0x0,
0x1f, 0xe7, 0xf0, 0x0, 0x1, 0xfe, 0x7f, 0x0,
0x0, 0xf, 0xe7, 0xf0, 0x0, 0x0, 0xff, 0xfe,
0x0, 0x0, 0x7, 0xff, 0xe0, 0x0, 0x0, 0x7f,
0xfe, 0x0, 0x0, 0x7, 0xff, 0xe0, 0x0, 0x0,
0x7f, 0xfe, 0x0, 0x0, 0x7, 0xff, 0xe0, 0x0,
0x0, 0x7f, 0xfe, 0x0, 0x0, 0x7, 0xff, 0xe0,
0x0, 0x0, 0x7f, 0xff, 0x0, 0x0, 0xf, 0xef,
0xf0, 0x0, 0x0, 0xfe, 0x7f, 0x0, 0x0, 0x1f,
0xe7, 0xf8, 0x0, 0x1, 0xfe, 0x7f, 0xc0, 0x0,
0x3f, 0xc3, 0xfe, 0x0, 0x7, 0xfc, 0x3f, 0xf0,
0x0, 0xff, 0x81, 0xff, 0xe0, 0x3f, 0xf8, 0xf,
0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0xf0,
0x3, 0xff, 0xff, 0xff, 0x0, 0x1f, 0xff, 0xef,
0xe0, 0x0, 0xff, 0xf9, 0xfc, 0x0, 0x1, 0xfe,
0x1f, 0xc0, 0x0, 0x0, 0x3, 0xf8, 0x0, 0x0,
0x0, 0x3f, 0x80, 0x0, 0x0, 0x7, 0xf0, 0x0,
0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xf, 0xe0,
0x0, 0x0, 0x1, 0xfe, 0x0, 0x0, 0x0, 0x1f,
0xc0, 0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0x0,
0x3f, 0x80, 0x0, 0x0, 0x7, 0xf0, 0x0, 0x0,
0x0, 0xff, 0x0, 0x0, 0x0, 0xf, 0xe0, 0x0,
0x0, 0x1, 0xfe, 0x0, 0x0, 0x0, 0x1f, 0xc0,
0x0, 0x0, 0x3, 0xfc, 0x0, 0x0, 0x0, 0x3f,
0x80, 0x0, 0x0, 0x7, 0xf0, 0x0, 0x0, 0x0,
0xff, 0x0, 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0,
0x1, 0xfe, 0x0, 0x0, 0x0, 0x1f, 0xc0, 0x0,
0x0,
/* U+003A ":" */
0xf, 0x81, 0xff, 0x1f, 0xfd, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf1, 0xff,
0x7, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0xff, 0x1f,
0xfc, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0x7f, 0xf3, 0xff, 0x8f, 0xf8, 0x4, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
{.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
{.bitmap_index = 0, .adv_w = 730, .box_w = 43, .box_h = 57, .ofs_x = 1, .ofs_y = -1},
{.bitmap_index = 307, .adv_w = 730, .box_w = 24, .box_h = 6, .ofs_x = 11, .ofs_y = 22},
{.bitmap_index = 325, .adv_w = 730, .box_w = 34, .box_h = 72, .ofs_x = 6, .ofs_y = -8},
{.bitmap_index = 631, .adv_w = 730, .box_w = 34, .box_h = 58, .ofs_x = 6, .ofs_y = -1},
{.bitmap_index = 878, .adv_w = 730, .box_w = 34, .box_h = 56, .ofs_x = 7, .ofs_y = 0},
{.bitmap_index = 1116, .adv_w = 730, .box_w = 34, .box_h = 57, .ofs_x = 6, .ofs_y = 0},
{.bitmap_index = 1359, .adv_w = 730, .box_w = 34, .box_h = 57, .ofs_x = 5, .ofs_y = -1},
{.bitmap_index = 1602, .adv_w = 730, .box_w = 32, .box_h = 56, .ofs_x = 5, .ofs_y = 0},
{.bitmap_index = 1826, .adv_w = 730, .box_w = 32, .box_h = 57, .ofs_x = 7, .ofs_y = -1},
{.bitmap_index = 2054, .adv_w = 730, .box_w = 36, .box_h = 58, .ofs_x = 5, .ofs_y = -1},
{.bitmap_index = 2315, .adv_w = 730, .box_w = 36, .box_h = 56, .ofs_x = 6, .ofs_y = 0},
{.bitmap_index = 2567, .adv_w = 730, .box_w = 36, .box_h = 58, .ofs_x = 5, .ofs_y = -1},
{.bitmap_index = 2828, .adv_w = 730, .box_w = 36, .box_h = 57, .ofs_x = 5, .ofs_y = 0},
{.bitmap_index = 3085, .adv_w = 730, .box_w = 13, .box_h = 44, .ofs_x = 16, .ofs_y = -1}
};
/*---------------------
* CHARACTER MAPPING
*--------------------*/
static const uint16_t unicode_list_0[] = {
0x0, 0x8
};
/*Collect the unicode lists and glyph_id offsets*/
static const lv_font_fmt_txt_cmap_t cmaps[] =
{
{
.range_start = 37, .range_length = 9, .glyph_id_start = 1,
.unicode_list = unicode_list_0, .glyph_id_ofs_list = NULL, .list_length = 2, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
},
{
.range_start = 47, .range_length = 12, .glyph_id_start = 3,
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
}
};
/*--------------------
* ALL CUSTOM DATA
*--------------------*/
#if LV_VERSION_CHECK(8, 0, 0)
/*Store all the custom data of the font*/
static lv_font_fmt_txt_glyph_cache_t cache;
static const lv_font_fmt_txt_dsc_t font_dsc = {
#else
static lv_font_fmt_txt_dsc_t font_dsc = {
#endif
.glyph_bitmap = glyph_bitmap,
.glyph_dsc = glyph_dsc,
.cmaps = cmaps,
.kern_dsc = NULL,
.kern_scale = 0,
.cmap_num = 2,
.bpp = 1,
.kern_classes = 0,
.bitmap_format = 0,
#if LV_VERSION_CHECK(8, 0, 0)
.cache = &cache
#endif
};
/*-----------------
* PUBLIC FONT
*----------------*/
/*Initialize a public general font descriptor*/
#if LV_VERSION_CHECK(8, 0, 0)
const lv_font_t jetbrains_mono_76 = {
#else
lv_font_t jetbrains_mono_76 = {
#endif
.get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/
.get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/
.line_height = 72, /*The maximum line height required by the font*/
.base_line = 8, /*Baseline measured from the bottom of the line*/
#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0)
.subpx = LV_FONT_SUBPX_NONE,
#endif
#if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8
.underline_position = -12,
.underline_thickness = 4,
#endif
.dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
};
#endif /*#if JETBRAINS_MONO_76*/

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,6 @@
91,92c91,92
< 0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe1, 0xf8, 0x7f,
< 0xdf, 0xf7, 0xe1, 0xf8, 0x7e, 0x1f, 0xcf, 0x7f,
---
> 0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe1, 0xf8, 0x7e,
> 0xdf, 0xb7, 0xe1, 0xf8, 0x7e, 0x1f, 0xcf, 0x7f,

View File

@ -1,523 +0,0 @@
/*******************************************************************************
* Size: 80 px
* Bpp: 1
* Opts:
******************************************************************************/
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef JETBRAINS_MONO_EXTRABOLD_COMPRESSED
#define JETBRAINS_MONO_EXTRABOLD_COMPRESSED 1
#endif
#if JETBRAINS_MONO_EXTRABOLD_COMPRESSED
/*-----------------
* BITMAPS
*----------------*/
/*Store the image of the glyphs*/
static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
/* U+0030 "0" */
0x0, 0x3, 0xff, 0x80, 0x0, 0x0, 0x3f, 0xff,
0xe0, 0x0, 0x1, 0xff, 0xff, 0xf0, 0x0, 0xf,
0xff, 0xff, 0xf8, 0x0, 0x3f, 0xff, 0xff, 0xf8,
0x0, 0xff, 0xff, 0xff, 0xf8, 0x3, 0xff, 0xff,
0xff, 0xf8, 0xf, 0xff, 0xff, 0xff, 0xf8, 0x3f,
0xff, 0xff, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff,
0xf1, 0xff, 0xfc, 0x7, 0xff, 0xf3, 0xff, 0xe0,
0x3, 0xff, 0xe7, 0xff, 0x80, 0x3, 0xff, 0xdf,
0xfe, 0x0, 0x3, 0xff, 0xff, 0xfc, 0x0, 0x3,
0xff, 0xff, 0xf0, 0x0, 0x7, 0xff, 0xff, 0xe0,
0x0, 0xf, 0xff, 0xff, 0xc0, 0x0, 0x1f, 0xff,
0xff, 0x80, 0x0, 0x3f, 0xff, 0xff, 0x0, 0x0,
0x7f, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0xfc,
0x0, 0x1, 0xff, 0xff, 0xf8, 0x0, 0x3, 0xff,
0xff, 0xf0, 0x0, 0x7, 0xff, 0xff, 0xe0, 0x7c,
0xf, 0xff, 0xff, 0xc1, 0xfe, 0x1f, 0xff, 0xff,
0x87, 0xfc, 0x3f, 0xff, 0xff, 0x1f, 0xfc, 0x7f,
0xff, 0xfe, 0x3f, 0xf8, 0xff, 0xff, 0xfc, 0x7f,
0xf1, 0xff, 0xff, 0xf8, 0xff, 0xe3, 0xff, 0xff,
0xf1, 0xff, 0xc7, 0xff, 0xff, 0xe1, 0xff, 0xf,
0xff, 0xff, 0xc1, 0xfc, 0x1f, 0xff, 0xff, 0x81,
0xf0, 0x3f, 0xff, 0xff, 0x0, 0x0, 0x7f, 0xff,
0xfe, 0x0, 0x0, 0xff, 0xff, 0xfc, 0x0, 0x1,
0xff, 0xff, 0xf8, 0x0, 0x3, 0xff, 0xff, 0xf0,
0x0, 0x7, 0xff, 0xff, 0xe0, 0x0, 0xf, 0xff,
0xff, 0xc0, 0x0, 0x1f, 0xff, 0xff, 0x80, 0x0,
0x3f, 0xff, 0xff, 0x0, 0x0, 0x7f, 0xff, 0xfe,
0x0, 0x0, 0xff, 0xff, 0xfe, 0x0, 0x1, 0xff,
0xff, 0xfc, 0x0, 0x7, 0xff, 0xbf, 0xfc, 0x0,
0x1f, 0xfe, 0x7f, 0xfc, 0x0, 0x7f, 0xfc, 0xff,
0xfe, 0x3, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff,
0xe1, 0xff, 0xff, 0xff, 0xff, 0xc1, 0xff, 0xff,
0xff, 0xff, 0x1, 0xff, 0xff, 0xff, 0xfc, 0x1,
0xff, 0xff, 0xff, 0xf0, 0x1, 0xff, 0xff, 0xff,
0xc0, 0x1, 0xff, 0xff, 0xff, 0x0, 0x0, 0xff,
0xff, 0xf8, 0x0, 0x0, 0x7f, 0xff, 0xc0, 0x0,
0x0, 0x1f, 0xfc, 0x0, 0x0,
/* U+0031 "1" */
0x0, 0x3, 0xff, 0xe0, 0x0, 0x0, 0x3f, 0xff,
0x80, 0x0, 0x1, 0xff, 0xfe, 0x0, 0x0, 0x1f,
0xff, 0xf8, 0x0, 0x0, 0xff, 0xff, 0xe0, 0x0,
0x7, 0xff, 0xff, 0x80, 0x0, 0x7f, 0xff, 0xfe,
0x0, 0x3, 0xff, 0xff, 0xf8, 0x0, 0x3f, 0xff,
0xff, 0xe0, 0x1, 0xff, 0xff, 0xff, 0x80, 0xf,
0xff, 0xff, 0xfe, 0x0, 0x3f, 0xff, 0xff, 0xf8,
0x0, 0xff, 0xfd, 0xff, 0xe0, 0x3, 0xff, 0xc7,
0xff, 0x80, 0xf, 0xfe, 0x1f, 0xfe, 0x0, 0x3f,
0xe0, 0x7f, 0xf8, 0x0, 0xff, 0x1, 0xff, 0xe0,
0x3, 0xf8, 0x7, 0xff, 0x80, 0xf, 0x80, 0x1f,
0xfe, 0x0, 0x3c, 0x0, 0x7f, 0xf8, 0x0, 0xe0,
0x1, 0xff, 0xe0, 0x2, 0x0, 0x7, 0xff, 0x80,
0x0, 0x0, 0x1f, 0xfe, 0x0, 0x0, 0x0, 0x7f,
0xf8, 0x0, 0x0, 0x1, 0xff, 0xe0, 0x0, 0x0,
0x7, 0xff, 0x80, 0x0, 0x0, 0x1f, 0xfe, 0x0,
0x0, 0x0, 0x7f, 0xf8, 0x0, 0x0, 0x1, 0xff,
0xe0, 0x0, 0x0, 0x7, 0xff, 0x80, 0x0, 0x0,
0x1f, 0xfe, 0x0, 0x0, 0x0, 0x7f, 0xf8, 0x0,
0x0, 0x1, 0xff, 0xe0, 0x0, 0x0, 0x7, 0xff,
0x80, 0x0, 0x0, 0x1f, 0xfe, 0x0, 0x0, 0x0,
0x7f, 0xf8, 0x0, 0x0, 0x1, 0xff, 0xe0, 0x0,
0x0, 0x7, 0xff, 0x80, 0x0, 0x0, 0x1f, 0xfe,
0x0, 0x0, 0x0, 0x7f, 0xf8, 0x0, 0x0, 0x1,
0xff, 0xe0, 0x0, 0x0, 0x7, 0xff, 0x80, 0x0,
0x0, 0x1f, 0xfe, 0x0, 0x0, 0x0, 0x7f, 0xf8,
0x0, 0x0, 0x1, 0xff, 0xe0, 0x0, 0x0, 0x7,
0xff, 0x80, 0x0, 0x0, 0x1f, 0xfe, 0x0, 0x0,
0x0, 0x7f, 0xf8, 0x0, 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, 0xff, 0xff, 0xff,
0xc0,
/* U+0032 "2" */
0x0, 0x1, 0xff, 0x80, 0x0, 0x0, 0x3f, 0xff,
0xe0, 0x0, 0x1, 0xff, 0xff, 0xf8, 0x0, 0xf,
0xff, 0xff, 0xf8, 0x0, 0x3f, 0xff, 0xff, 0xf8,
0x0, 0xff, 0xff, 0xff, 0xfc, 0x3, 0xff, 0xff,
0xff, 0xf8, 0xf, 0xff, 0xff, 0xff, 0xf8, 0x1f,
0xff, 0xff, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff,
0xf0, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xfc,
0xf, 0xff, 0xe7, 0xff, 0xe0, 0xf, 0xff, 0xcf,
0xff, 0x80, 0xf, 0xff, 0xff, 0xfe, 0x0, 0xf,
0xff, 0xff, 0xfc, 0x0, 0x1f, 0xff, 0xff, 0xf0,
0x0, 0x1f, 0xff, 0xff, 0xe0, 0x0, 0x3f, 0xff,
0xff, 0xc0, 0x0, 0x7f, 0xf8, 0x0, 0x0, 0x0,
0xff, 0xf0, 0x0, 0x0, 0x1, 0xff, 0xe0, 0x0,
0x0, 0x3, 0xff, 0xc0, 0x0, 0x0, 0xf, 0xff,
0x0, 0x0, 0x0, 0x1f, 0xfe, 0x0, 0x0, 0x0,
0x7f, 0xfc, 0x0, 0x0, 0x0, 0xff, 0xf8, 0x0,
0x0, 0x3, 0xff, 0xe0, 0x0, 0x0, 0xf, 0xff,
0xc0, 0x0, 0x0, 0x3f, 0xff, 0x0, 0x0, 0x0,
0xff, 0xfc, 0x0, 0x0, 0x3, 0xff, 0xf8, 0x0,
0x0, 0xf, 0xff, 0xe0, 0x0, 0x0, 0x3f, 0xff,
0x80, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0x3,
0xff, 0xfc, 0x0, 0x0, 0xf, 0xff, 0xf0, 0x0,
0x0, 0x3f, 0xff, 0xc0, 0x0, 0x0, 0xff, 0xff,
0x0, 0x0, 0x3, 0xff, 0xfc, 0x0, 0x0, 0xf,
0xff, 0xf0, 0x0, 0x0, 0x3f, 0xff, 0xc0, 0x0,
0x0, 0xff, 0xff, 0x0, 0x0, 0x3, 0xff, 0xf8,
0x0, 0x0, 0xf, 0xff, 0xe0, 0x0, 0x0, 0x3f,
0xff, 0x80, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0,
0x3, 0xff, 0xf8, 0x0, 0x0, 0xf, 0xff, 0xe0,
0x0, 0x0, 0x3f, 0xff, 0x80, 0x0, 0x0, 0xff,
0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff,
0xfb, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff,
0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xdf,
0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff,
0xff, 0x7f, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xfb,
0xff, 0xff, 0xff, 0xff, 0xf0,
/* U+0033 "3" */
0x1f, 0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff,
0xff, 0xf0, 0x7f, 0xff, 0xff, 0xff, 0xe0, 0xff,
0xff, 0xff, 0xff, 0xc1, 0xff, 0xff, 0xff, 0xff,
0x83, 0xff, 0xff, 0xff, 0xff, 0x7, 0xff, 0xff,
0xff, 0xfe, 0xf, 0xff, 0xff, 0xff, 0xfc, 0x1f,
0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xff,
0xf0, 0x0, 0x0, 0x3, 0xff, 0xc0, 0x0, 0x0,
0xf, 0xff, 0x0, 0x0, 0x0, 0x3f, 0xfc, 0x0,
0x0, 0x0, 0xff, 0xf0, 0x0, 0x0, 0x3, 0xff,
0xc0, 0x0, 0x0, 0x1f, 0xff, 0x0, 0x0, 0x0,
0x7f, 0xf8, 0x0, 0x0, 0x1, 0xff, 0xe0, 0x0,
0x0, 0x7, 0xff, 0x80, 0x0, 0x0, 0x1f, 0xfe,
0x0, 0x0, 0x0, 0x7f, 0xf8, 0x0, 0x0, 0x1,
0xff, 0xf8, 0x0, 0x0, 0x3, 0xff, 0xfe, 0x0,
0x0, 0x7, 0xff, 0xff, 0x0, 0x0, 0xf, 0xff,
0xff, 0x80, 0x0, 0x1f, 0xff, 0xff, 0x80, 0x0,
0x3f, 0xff, 0xff, 0x80, 0x0, 0x7f, 0xff, 0xff,
0x80, 0x0, 0xff, 0xff, 0xff, 0x80, 0x1, 0xff,
0xff, 0xff, 0x0, 0x3, 0xff, 0xff, 0xff, 0x0,
0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x7f,
0xfc, 0x0, 0x0, 0x0, 0x7f, 0xfc, 0x0, 0x0,
0x0, 0xff, 0xf8, 0x0, 0x0, 0x0, 0xff, 0xf0,
0x0, 0x0, 0x1, 0xff, 0xe0, 0x0, 0x0, 0x3,
0xff, 0xc0, 0x0, 0x0, 0x7, 0xff, 0x80, 0x0,
0x0, 0xf, 0xff, 0x0, 0x0, 0x0, 0x1f, 0xfe,
0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xc0, 0x0,
0x7f, 0xff, 0xff, 0x80, 0x0, 0xff, 0xff, 0xff,
0x0, 0x1, 0xff, 0xff, 0xff, 0x0, 0x7, 0xff,
0xff, 0xfe, 0x0, 0xf, 0xff, 0xbf, 0xfe, 0x0,
0x3f, 0xfe, 0x7f, 0xff, 0x1, 0xff, 0xfc, 0xff,
0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff,
0xe0, 0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff,
0xff, 0xff, 0x1, 0xff, 0xff, 0xff, 0xfc, 0x1,
0xff, 0xff, 0xff, 0xf0, 0x0, 0xff, 0xff, 0xff,
0x80, 0x0, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x7f,
0xff, 0xf0, 0x0, 0x0, 0xf, 0xfe, 0x0, 0x0,
/* U+0034 "4" */
0x0, 0x0, 0x3, 0xff, 0xf0, 0x0, 0x0, 0x1f,
0xff, 0x80, 0x0, 0x0, 0x7f, 0xfc, 0x0, 0x0,
0x3, 0xff, 0xe0, 0x0, 0x0, 0x1f, 0xff, 0x80,
0x0, 0x0, 0x7f, 0xfc, 0x0, 0x0, 0x3, 0xff,
0xe0, 0x0, 0x0, 0x1f, 0xff, 0x80, 0x0, 0x0,
0xff, 0xfc, 0x0, 0x0, 0x3, 0xff, 0xe0, 0x0,
0x0, 0x1f, 0xff, 0x0, 0x0, 0x0, 0xff, 0xfc,
0x0, 0x0, 0x3, 0xff, 0xe0, 0x0, 0x0, 0x1f,
0xff, 0x0, 0x0, 0x0, 0xff, 0xfc, 0x0, 0x0,
0x7, 0xff, 0xe0, 0x0, 0x0, 0x1f, 0xff, 0x0,
0x0, 0x0, 0xff, 0xf8, 0x0, 0x0, 0x7, 0xff,
0xe0, 0x0, 0x0, 0x1f, 0xff, 0x0, 0x0, 0x0,
0xff, 0xf8, 0x0, 0x0, 0x7, 0xff, 0xe0, 0x0,
0x0, 0x3f, 0xff, 0x0, 0x0, 0x0, 0xff, 0xf8,
0x0, 0x0, 0x7, 0xff, 0xc0, 0x0, 0x0, 0x3f,
0xff, 0x0, 0xff, 0xf0, 0xff, 0xf8, 0x3, 0xff,
0xc7, 0xff, 0xc0, 0xf, 0xff, 0x3f, 0xff, 0x0,
0x3f, 0xfd, 0xff, 0xf8, 0x0, 0xff, 0xf7, 0xff,
0xc0, 0x3, 0xff, 0xff, 0xfe, 0x0, 0xf, 0xff,
0xff, 0xf8, 0x0, 0x3f, 0xff, 0xff, 0xc0, 0x0,
0xff, 0xff, 0xfe, 0x0, 0x3, 0xff, 0xff, 0xf8,
0x0, 0xf, 0xff, 0xff, 0xe0, 0x0, 0x3f, 0xff,
0xff, 0x80, 0x0, 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, 0x0, 0x0, 0x0, 0x3f,
0xfc, 0x0, 0x0, 0x0, 0xff, 0xf0, 0x0, 0x0,
0x3, 0xff, 0xc0, 0x0, 0x0, 0xf, 0xff, 0x0,
0x0, 0x0, 0x3f, 0xfc, 0x0, 0x0, 0x0, 0xff,
0xf0, 0x0, 0x0, 0x3, 0xff, 0xc0, 0x0, 0x0,
0xf, 0xff, 0x0, 0x0, 0x0, 0x3f, 0xfc, 0x0,
0x0, 0x0, 0xff, 0xf0, 0x0, 0x0, 0x3, 0xff,
0xc0,
/* U+0035 "5" */
0x7f, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff,
0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xff,
0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xf1,
0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff,
0xff, 0x1f, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff,
0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xc7,
0xff, 0xff, 0xff, 0xff, 0x1f, 0xfe, 0x0, 0x0,
0x0, 0x7f, 0xf8, 0x0, 0x0, 0x1, 0xff, 0xe0,
0x0, 0x0, 0x7, 0xff, 0x80, 0x0, 0x0, 0x1f,
0xfe, 0x0, 0x0, 0x0, 0x7f, 0xf8, 0x0, 0x0,
0x1, 0xff, 0xe0, 0x0, 0x0, 0x7, 0xff, 0x80,
0x0, 0x0, 0x1f, 0xfe, 0x0, 0x0, 0x0, 0x7f,
0xf8, 0x1f, 0xf0, 0x1, 0xff, 0xe1, 0xff, 0xf0,
0x7, 0xff, 0x9f, 0xff, 0xf0, 0x1f, 0xfe, 0xff,
0xff, 0xe0, 0x7f, 0xfb, 0xff, 0xff, 0xc1, 0xff,
0xff, 0xff, 0xff, 0x87, 0xff, 0xff, 0xff, 0xff,
0x1f, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff,
0xff, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xff,
0xf0, 0x3f, 0xff, 0x9f, 0xff, 0x0, 0x3f, 0xfe,
0x7f, 0xf8, 0x0, 0x7f, 0xfc, 0x0, 0x0, 0x1,
0xff, 0xf0, 0x0, 0x0, 0x3, 0xff, 0xc0, 0x0,
0x0, 0xf, 0xff, 0x0, 0x0, 0x0, 0x3f, 0xfc,
0x0, 0x0, 0x0, 0xff, 0xf0, 0x0, 0x0, 0x3,
0xff, 0xc0, 0x0, 0x0, 0xf, 0xff, 0x0, 0x0,
0x0, 0x3f, 0xfc, 0x0, 0x0, 0x0, 0xff, 0xf0,
0x0, 0x0, 0x3, 0xff, 0xc0, 0x0, 0x0, 0xf,
0xff, 0xff, 0xf0, 0x0, 0x3f, 0xff, 0xff, 0xc0,
0x0, 0xff, 0xff, 0xff, 0x0, 0x7, 0xff, 0xff,
0xfe, 0x0, 0x1f, 0xfe, 0xff, 0xfc, 0x0, 0xff,
0xf9, 0xff, 0xfc, 0xf, 0xff, 0xe7, 0xff, 0xff,
0xff, 0xff, 0xf, 0xff, 0xff, 0xff, 0xfc, 0x3f,
0xff, 0xff, 0xff, 0xe0, 0x7f, 0xff, 0xff, 0xff,
0x80, 0xff, 0xff, 0xff, 0xfc, 0x1, 0xff, 0xff,
0xff, 0xe0, 0x3, 0xff, 0xff, 0xfe, 0x0, 0x3,
0xff, 0xff, 0xf0, 0x0, 0x3, 0xff, 0xff, 0x0,
0x0, 0x1, 0xff, 0xc0, 0x0,
/* U+0036 "6" */
0x0, 0x0, 0x3f, 0xfe, 0x0, 0x0, 0x0, 0x1f,
0xff, 0x0, 0x0, 0x0, 0x1f, 0xff, 0x0, 0x0,
0x0, 0xf, 0xff, 0x80, 0x0, 0x0, 0xf, 0xff,
0x80, 0x0, 0x0, 0x7, 0xff, 0x80, 0x0, 0x0,
0x7, 0xff, 0xc0, 0x0, 0x0, 0x7, 0xff, 0xc0,
0x0, 0x0, 0x3, 0xff, 0xe0, 0x0, 0x0, 0x3,
0xff, 0xe0, 0x0, 0x0, 0x1, 0xff, 0xf0, 0x0,
0x0, 0x1, 0xff, 0xf0, 0x0, 0x0, 0x0, 0xff,
0xf0, 0x0, 0x0, 0x0, 0xff, 0xf8, 0x0, 0x0,
0x0, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x7f, 0xfc,
0x0, 0x0, 0x0, 0x7f, 0xfc, 0x0, 0x0, 0x0,
0x3f, 0xfc, 0x0, 0x0, 0x0, 0x3f, 0xfe, 0x0,
0x0, 0x0, 0x3f, 0xfe, 0x0, 0x0, 0x0, 0x1f,
0xff, 0x0, 0x0, 0x0, 0x1f, 0xff, 0x0, 0x0,
0x0, 0xf, 0xff, 0x80, 0x0, 0x0, 0xf, 0xff,
0x87, 0xf8, 0x0, 0x7, 0xff, 0x8f, 0xff, 0x0,
0x7, 0xff, 0xcf, 0xff, 0xe0, 0x3, 0xff, 0xdf,
0xff, 0xf8, 0x3, 0xff, 0xef, 0xff, 0xfe, 0x1,
0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff,
0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x7f,
0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0x81, 0xff,
0xff, 0x3f, 0xff, 0x0, 0x3f, 0xff, 0x9f, 0xff,
0x0, 0x7, 0xff, 0xdf, 0xff, 0x80, 0x3, 0xff,
0xef, 0xff, 0x80, 0x0, 0xff, 0xff, 0xff, 0xc0,
0x0, 0x7f, 0xff, 0xff, 0xc0, 0x0, 0x1f, 0xff,
0xff, 0xe0, 0x0, 0xf, 0xff, 0xff, 0xf0, 0x0,
0x7, 0xff, 0xff, 0xf8, 0x0, 0x3, 0xff, 0xff,
0xfc, 0x0, 0x1, 0xff, 0xff, 0xfe, 0x0, 0x0,
0xff, 0xff, 0xff, 0x80, 0x0, 0xff, 0xfb, 0xff,
0xc0, 0x0, 0x7f, 0xfd, 0xff, 0xf0, 0x0, 0x7f,
0xfc, 0xff, 0xf8, 0x0, 0x3f, 0xfe, 0x3f, 0xfe,
0x0, 0x3f, 0xff, 0x1f, 0xff, 0xc0, 0x7f, 0xff,
0x7, 0xff, 0xff, 0xff, 0xff, 0x83, 0xff, 0xff,
0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0xff, 0x80,
0x3f, 0xff, 0xff, 0xff, 0xc0, 0xf, 0xff, 0xff,
0xff, 0xc0, 0x3, 0xff, 0xff, 0xff, 0x80, 0x0,
0xff, 0xff, 0xff, 0x80, 0x0, 0x1f, 0xff, 0xff,
0x0, 0x0, 0x3, 0xff, 0xfe, 0x0, 0x0, 0x0,
0x3f, 0xf8, 0x0, 0x0,
/* U+0037 "7" */
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, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x3, 0xff,
0xff, 0xfe, 0x0, 0x1, 0xff, 0xef, 0xff, 0x0,
0x1, 0xff, 0xf7, 0xff, 0x80, 0x0, 0xff, 0xf3,
0xff, 0xc0, 0x0, 0xff, 0xf9, 0xff, 0xe0, 0x0,
0x7f, 0xfc, 0xff, 0xf0, 0x0, 0x7f, 0xfc, 0x7f,
0xf8, 0x0, 0x3f, 0xfe, 0x3f, 0xfc, 0x0, 0x3f,
0xfe, 0x1f, 0xfe, 0x0, 0x1f, 0xff, 0x0, 0x0,
0x0, 0x1f, 0xff, 0x0, 0x0, 0x0, 0xf, 0xff,
0x80, 0x0, 0x0, 0x7, 0xff, 0x80, 0x0, 0x0,
0x7, 0xff, 0xc0, 0x0, 0x0, 0x3, 0xff, 0xe0,
0x0, 0x0, 0x3, 0xff, 0xe0, 0x0, 0x0, 0x1,
0xff, 0xf0, 0x0, 0x0, 0x1, 0xff, 0xf0, 0x0,
0x0, 0x0, 0xff, 0xf8, 0x0, 0x0, 0x0, 0xff,
0xf8, 0x0, 0x0, 0x0, 0x7f, 0xfc, 0x0, 0x0,
0x0, 0x3f, 0xfc, 0x0, 0x0, 0x0, 0x3f, 0xfe,
0x0, 0x0, 0x0, 0x1f, 0xff, 0x0, 0x0, 0x0,
0x1f, 0xff, 0x0, 0x0, 0x0, 0xf, 0xff, 0x80,
0x0, 0x0, 0xf, 0xff, 0x80, 0x0, 0x0, 0x7,
0xff, 0xc0, 0x0, 0x0, 0x7, 0xff, 0xc0, 0x0,
0x0, 0x3, 0xff, 0xe0, 0x0, 0x0, 0x3, 0xff,
0xe0, 0x0, 0x0, 0x1, 0xff, 0xf0, 0x0, 0x0,
0x0, 0xff, 0xf8, 0x0, 0x0, 0x0, 0xff, 0xf8,
0x0, 0x0, 0x0, 0x7f, 0xfc, 0x0, 0x0, 0x0,
0x7f, 0xfc, 0x0, 0x0, 0x0, 0x3f, 0xfe, 0x0,
0x0, 0x0, 0x3f, 0xfe, 0x0, 0x0, 0x0, 0x1f,
0xff, 0x0, 0x0, 0x0, 0x1f, 0xff, 0x0, 0x0,
0x0, 0xf, 0xff, 0x80, 0x0, 0x0, 0xf, 0xff,
0xc0, 0x0, 0x0, 0x7, 0xff, 0xc0, 0x0, 0x0,
0x3, 0xff, 0xe0, 0x0, 0x0, 0x3, 0xff, 0xe0,
0x0, 0x0, 0x1, 0xff, 0xf0, 0x0, 0x0, 0x1,
0xff, 0xf0, 0x0, 0x0, 0x0, 0xff, 0xf8, 0x0,
0x0, 0x0,
/* U+0038 "8" */
0x0, 0x1, 0xff, 0x80, 0x0, 0x0, 0xf, 0xff,
0xfc, 0x0, 0x0, 0x1f, 0xff, 0xff, 0x80, 0x0,
0x1f, 0xff, 0xff, 0xf0, 0x0, 0x3f, 0xff, 0xff,
0xfc, 0x0, 0x3f, 0xff, 0xff, 0xff, 0x0, 0x3f,
0xff, 0xff, 0xff, 0xc0, 0x3f, 0xff, 0xff, 0xff,
0xf0, 0x1f, 0xff, 0xff, 0xff, 0xf8, 0x1f, 0xff,
0xff, 0xff, 0xfe, 0xf, 0xff, 0xe0, 0x7f, 0xff,
0x7, 0xff, 0xc0, 0xf, 0xff, 0x87, 0xff, 0xc0,
0x3, 0xff, 0xe3, 0xff, 0xe0, 0x1, 0xff, 0xf1,
0xff, 0xe0, 0x0, 0x7f, 0xf8, 0xff, 0xf0, 0x0,
0x3f, 0xfc, 0x7f, 0xf8, 0x0, 0x1f, 0xfe, 0x3f,
0xfc, 0x0, 0xf, 0xff, 0x1f, 0xfe, 0x0, 0x7,
0xff, 0x8f, 0xff, 0x80, 0x7, 0xff, 0xc3, 0xff,
0xc0, 0x3, 0xff, 0xc1, 0xff, 0xf0, 0x3, 0xff,
0xe0, 0x7f, 0xfc, 0x3, 0xff, 0xe0, 0x3f, 0xff,
0x3, 0xff, 0xf0, 0xf, 0xff, 0xe7, 0xff, 0xf0,
0x3, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xff, 0xff,
0xff, 0xf0, 0x0, 0x1f, 0xff, 0xff, 0xf0, 0x0,
0x7, 0xff, 0xff, 0xf0, 0x0, 0x1, 0xff, 0xff,
0xf0, 0x0, 0x3, 0xff, 0xff, 0xfc, 0x0, 0x3,
0xff, 0xff, 0xff, 0x80, 0x3, 0xff, 0xff, 0xff,
0xe0, 0x3, 0xff, 0xff, 0xff, 0xf8, 0x3, 0xff,
0xf0, 0xff, 0xfe, 0x3, 0xff, 0xf0, 0x1f, 0xff,
0x83, 0xff, 0xe0, 0x7, 0xff, 0xe3, 0xff, 0xe0,
0x1, 0xff, 0xf1, 0xff, 0xe0, 0x0, 0x7f, 0xfc,
0xff, 0xf0, 0x0, 0x1f, 0xfe, 0xff, 0xf0, 0x0,
0x7, 0xff, 0xff, 0xf8, 0x0, 0x3, 0xff, 0xff,
0xfc, 0x0, 0x1, 0xff, 0xff, 0xfe, 0x0, 0x0,
0xff, 0xff, 0xff, 0x0, 0x0, 0x7f, 0xff, 0xff,
0xc0, 0x0, 0x7f, 0xff, 0xff, 0xe0, 0x0, 0x3f,
0xff, 0xff, 0xf8, 0x0, 0x3f, 0xff, 0x7f, 0xfe,
0x0, 0x3f, 0xff, 0x3f, 0xff, 0xc0, 0x7f, 0xff,
0x9f, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff,
0xff, 0xff, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xc0,
0x7f, 0xff, 0xff, 0xff, 0xe0, 0x3f, 0xff, 0xff,
0xff, 0xe0, 0x7, 0xff, 0xff, 0xff, 0xe0, 0x1,
0xff, 0xff, 0xff, 0xc0, 0x0, 0x3f, 0xff, 0xff,
0x80, 0x0, 0x7, 0xff, 0xff, 0x0, 0x0, 0x0,
0x3f, 0xf8, 0x0, 0x0,
/* U+0039 "9" */
0x0, 0x1, 0xff, 0x80, 0x0, 0x0, 0x7, 0xff,
0xfc, 0x0, 0x0, 0xf, 0xff, 0xff, 0x80, 0x0,
0x1f, 0xff, 0xff, 0xf0, 0x0, 0x1f, 0xff, 0xff,
0xfc, 0x0, 0x1f, 0xff, 0xff, 0xff, 0x0, 0x1f,
0xff, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xff, 0xff,
0xf0, 0x1f, 0xff, 0xff, 0xff, 0xfc, 0x1f, 0xff,
0xff, 0xff, 0xfe, 0xf, 0xff, 0xf0, 0x7f, 0xff,
0x8f, 0xff, 0xe0, 0xf, 0xff, 0xc7, 0xff, 0xc0,
0x1, 0xff, 0xf3, 0xff, 0xe0, 0x0, 0xff, 0xfb,
0xff, 0xe0, 0x0, 0x3f, 0xfd, 0xff, 0xf0, 0x0,
0x1f, 0xff, 0xff, 0xf0, 0x0, 0x7, 0xff, 0xff,
0xf8, 0x0, 0x3, 0xff, 0xff, 0xfc, 0x0, 0x1,
0xff, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0xff,
0x0, 0x0, 0x7f, 0xff, 0xff, 0x80, 0x0, 0x3f,
0xff, 0xff, 0xe0, 0x0, 0x3f, 0xff, 0xff, 0xf0,
0x0, 0x1f, 0xff, 0x7f, 0xfc, 0x0, 0x1f, 0xff,
0x3f, 0xfe, 0x0, 0xf, 0xff, 0x9f, 0xff, 0xc0,
0x1f, 0xff, 0xc7, 0xff, 0xf8, 0x3f, 0xff, 0xe3,
0xff, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff,
0xff, 0xf0, 0x7f, 0xff, 0xff, 0xff, 0xf8, 0x1f,
0xff, 0xff, 0xff, 0xf8, 0x7, 0xff, 0xff, 0xbf,
0xfc, 0x1, 0xff, 0xff, 0xbf, 0xfc, 0x0, 0x7f,
0xff, 0xbf, 0xfe, 0x0, 0xf, 0xff, 0x1f, 0xfe,
0x0, 0x1, 0xfe, 0x1f, 0xff, 0x0, 0x0, 0x0,
0xf, 0xff, 0x0, 0x0, 0x0, 0xf, 0xff, 0x80,
0x0, 0x0, 0x7, 0xff, 0x80, 0x0, 0x0, 0x7,
0xff, 0xc0, 0x0, 0x0, 0x7, 0xff, 0xc0, 0x0,
0x0, 0x3, 0xff, 0xc0, 0x0, 0x0, 0x3, 0xff,
0xe0, 0x0, 0x0, 0x1, 0xff, 0xe0, 0x0, 0x0,
0x1, 0xff, 0xf0, 0x0, 0x0, 0x0, 0xff, 0xf0,
0x0, 0x0, 0x0, 0xff, 0xf8, 0x0, 0x0, 0x0,
0xff, 0xf8, 0x0, 0x0, 0x0, 0x7f, 0xfc, 0x0,
0x0, 0x0, 0x7f, 0xfc, 0x0, 0x0, 0x0, 0x3f,
0xfe, 0x0, 0x0, 0x0, 0x3f, 0xfe, 0x0, 0x0,
0x0, 0x1f, 0xfe, 0x0, 0x0, 0x0, 0x1f, 0xff,
0x0, 0x0, 0x0, 0x1f, 0xff, 0x0, 0x0, 0x0,
0xf, 0xff, 0x80, 0x0, 0x0, 0xf, 0xff, 0x80,
0x0, 0x0, 0x7, 0xff, 0xc0, 0x0, 0x0, 0x7,
0xff, 0xc0, 0x0, 0x0,
/* U+003A ":" */
0x7, 0xe0, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0x3f, 0xfc,
0x1f, 0xf8, 0x7, 0xe0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x7, 0xe0, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0x3f, 0xfc,
0x1f, 0xf8, 0x7, 0xe0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
{.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
{.bitmap_index = 0, .adv_w = 768, .box_w = 39, .box_h = 60, .ofs_x = 5, .ofs_y = -1},
{.bitmap_index = 293, .adv_w = 768, .box_w = 38, .box_h = 59, .ofs_x = 6, .ofs_y = 0},
{.bitmap_index = 574, .adv_w = 768, .box_w = 39, .box_h = 60, .ofs_x = 4, .ofs_y = 0},
{.bitmap_index = 867, .adv_w = 768, .box_w = 39, .box_h = 59, .ofs_x = 4, .ofs_y = -1},
{.bitmap_index = 1155, .adv_w = 768, .box_w = 38, .box_h = 59, .ofs_x = 4, .ofs_y = 0},
{.bitmap_index = 1436, .adv_w = 768, .box_w = 38, .box_h = 60, .ofs_x = 5, .ofs_y = -1},
{.bitmap_index = 1721, .adv_w = 768, .box_w = 41, .box_h = 60, .ofs_x = 4, .ofs_y = -1},
{.bitmap_index = 2029, .adv_w = 768, .box_w = 41, .box_h = 58, .ofs_x = 4, .ofs_y = 0},
{.bitmap_index = 2327, .adv_w = 768, .box_w = 41, .box_h = 60, .ofs_x = 4, .ofs_y = -1},
{.bitmap_index = 2635, .adv_w = 768, .box_w = 41, .box_h = 60, .ofs_x = 4, .ofs_y = -1},
{.bitmap_index = 2943, .adv_w = 768, .box_w = 16, .box_h = 46, .ofs_x = 16, .ofs_y = -1}
};
/*---------------------
* CHARACTER MAPPING
*--------------------*/
/*Collect the unicode lists and glyph_id offsets*/
static const lv_font_fmt_txt_cmap_t cmaps[] =
{
{
.range_start = 48, .range_length = 11, .glyph_id_start = 1,
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
}
};
/*--------------------
* ALL CUSTOM DATA
*--------------------*/
#if LV_VERSION_CHECK(8, 0, 0)
/*Store all the custom data of the font*/
static lv_font_fmt_txt_glyph_cache_t cache;
static const lv_font_fmt_txt_dsc_t font_dsc = {
#else
static lv_font_fmt_txt_dsc_t font_dsc = {
#endif
.glyph_bitmap = glyph_bitmap,
.glyph_dsc = glyph_dsc,
.cmaps = cmaps,
.kern_dsc = NULL,
.kern_scale = 0,
.cmap_num = 1,
.bpp = 1,
.kern_classes = 0,
.bitmap_format = 0,
#if LV_VERSION_CHECK(8, 0, 0)
.cache = &cache
#endif
};
/*-----------------
* PUBLIC FONT
*----------------*/
/*Initialize a public general font descriptor*/
#if LV_VERSION_CHECK(8, 0, 0)
const lv_font_t jetbrains_mono_extrabold_compressed = {
#else
lv_font_t jetbrains_mono_extrabold_compressed = {
#endif
.get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/
.get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/
.line_height = 61, /*The maximum line height required by the font*/
.base_line = 1, /*Baseline measured from the bottom of the line*/
#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0)
.subpx = LV_FONT_SUBPX_NONE,
#endif
#if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8
.underline_position = -12,
.underline_thickness = 4,
#endif
.dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
};
#endif /*#if JETBRAINS_MONO_EXTRABOLD_COMPRESSED*/

File diff suppressed because it is too large Load Diff

View File

@ -1,324 +0,0 @@
/*******************************************************************************
* Size: 48 px
* Bpp: 1
* Opts:
******************************************************************************/
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef LV_FONT_SYS_48
#define LV_FONT_SYS_48 1
#endif
#if LV_FONT_SYS_48
/*-----------------
* BITMAPS
*----------------*/
/*Store the image of the glyphs*/
static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
/* U+E902 "" */
0x0, 0x1, 0xff, 0x80, 0x0, 0x0, 0x1, 0xff,
0x80, 0x0, 0x0, 0x1, 0xff, 0x80, 0x0, 0x0,
0x1, 0xff, 0x80, 0x0, 0x0, 0x1, 0xff, 0x80,
0x0, 0x0, 0x3, 0xff, 0xc0, 0x0, 0x6, 0x7,
0xff, 0xe0, 0x60, 0xf, 0x8f, 0xff, 0xf1, 0xf0,
0xf, 0xff, 0xff, 0xff, 0xf0, 0x1f, 0xff, 0xff,
0xff, 0xf8, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x3f,
0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff,
0xfe, 0x7f, 0xff, 0x81, 0xff, 0xfe, 0x7f, 0xff,
0x0, 0xff, 0xfe, 0x3f, 0xfe, 0x0, 0x7f, 0xfc,
0x1f, 0xfc, 0x0, 0x3f, 0xf8, 0xf, 0xf8, 0x0,
0x1f, 0xf0, 0x7, 0xf8, 0x0, 0x1f, 0xe0, 0x7,
0xf8, 0x0, 0x1f, 0xe0, 0x7, 0xf8, 0x0, 0x1f,
0xe0, 0x7, 0xf8, 0x0, 0x1f, 0xe0, 0xf, 0xf8,
0x0, 0x1f, 0xf0, 0x1f, 0xfc, 0x0, 0x3f, 0xf8,
0x3f, 0xfe, 0x0, 0x7f, 0xfc, 0x7f, 0xff, 0x0,
0xff, 0xfe, 0x7f, 0xff, 0x81, 0xff, 0xfe, 0x7f,
0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
0xfc, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x1f, 0xff,
0xff, 0xff, 0xf8, 0xf, 0xff, 0xff, 0xff, 0xf0,
0xf, 0x8f, 0xff, 0xf1, 0xf0, 0x6, 0x7, 0xff,
0xe0, 0x60, 0x0, 0x3, 0xff, 0xc0, 0x0, 0x0,
0x1, 0xff, 0x80, 0x0, 0x0, 0x1, 0xff, 0x80,
0x0, 0x0, 0x1, 0xff, 0x80, 0x0, 0x0, 0x1,
0xff, 0x80, 0x0, 0x0, 0x1, 0xff, 0x80, 0x0,
/* U+E904 "" */
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x0,
0x0, 0x0, 0x0, 0x3, 0xf0, 0x0, 0x0, 0x0,
0x0, 0x1f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0xff,
0xc0, 0x0, 0x0, 0x0, 0x7, 0xff, 0x80, 0x0,
0x0, 0x7f, 0xff, 0xff, 0xff, 0x80, 0x1, 0xff,
0xff, 0xff, 0xfe, 0x0, 0x7, 0xff, 0xff, 0xff,
0xf8, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xe0, 0x0,
0x7f, 0xf8, 0xf, 0xff, 0x80, 0x1, 0xff, 0x80,
0x7, 0xfe, 0x0, 0x7, 0xfc, 0x0, 0xf, 0xf8,
0x0, 0x1f, 0xe0, 0x0, 0x1f, 0xe0, 0x0, 0x7f,
0x3, 0xf0, 0x3f, 0x80, 0x1, 0xf8, 0x3f, 0xf0,
0x7e, 0x0, 0xf, 0xc1, 0xff, 0xe0, 0xfc, 0x0,
0x7f, 0xf, 0xff, 0xc3, 0xf8, 0x3, 0xfc, 0x3f,
0xff, 0xf, 0xf0, 0x1f, 0xe1, 0xff, 0xfe, 0x1f,
0xe0, 0xff, 0x87, 0xff, 0xf8, 0x7f, 0xc7, 0xfe,
0x1f, 0xff, 0xe1, 0xff, 0x9f, 0xf8, 0x7f, 0xff,
0x87, 0xfe, 0x3f, 0xe1, 0xff, 0xfe, 0x1f, 0xf0,
0x7f, 0x87, 0xff, 0xf8, 0x7f, 0x80, 0xff, 0xf,
0xff, 0xc3, 0xfc, 0x1, 0xfc, 0x3f, 0xff, 0xf,
0xe0, 0x3, 0xf0, 0x7f, 0xf8, 0x3f, 0x0, 0x7,
0xe0, 0xff, 0xc1, 0xf8, 0x0, 0x1f, 0xc0, 0xfc,
0xf, 0xe0, 0x0, 0x7f, 0x80, 0x0, 0x7f, 0x80,
0x1, 0xff, 0x0, 0x3, 0xfe, 0x0, 0x7, 0xfe,
0x0, 0x1f, 0xf8, 0x0, 0x1f, 0xff, 0x3, 0xff,
0xe0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0x80, 0x1,
0xff, 0xff, 0xff, 0xfe, 0x0, 0x7, 0xff, 0xff,
0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xe0,
0x0, 0x0, 0x1f, 0xfe, 0x0, 0x0, 0x0, 0x0,
0x3f, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80,
0x0, 0x0, 0x0, 0x0, 0xfc, 0x0, 0x0, 0x0,
0x0, 0x1, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x3,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0,
/* U+E905 "" */
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x0,
0x0, 0x0, 0x0, 0x3, 0xf0, 0x0, 0x0, 0x0,
0x0, 0x1f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0xff,
0xc0, 0x0, 0x0, 0x0, 0x7, 0xff, 0x80, 0x0,
0x0, 0x7f, 0xff, 0xff, 0xff, 0x80, 0x1, 0xff,
0xff, 0xff, 0xfe, 0x0, 0x7, 0xff, 0xff, 0xff,
0xf8, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xe0, 0x0,
0x7f, 0xf8, 0xf, 0xff, 0x80, 0x1, 0xff, 0x80,
0x7, 0xfe, 0x0, 0x7, 0xfc, 0x0, 0xf, 0xf8,
0x0, 0x1f, 0xe0, 0x0, 0x1f, 0xe0, 0x0, 0x7f,
0x0, 0x0, 0x3f, 0x80, 0x1, 0xf8, 0x0, 0x0,
0x7e, 0x0, 0xf, 0xc0, 0x0, 0x0, 0xfc, 0x0,
0x7f, 0x0, 0x0, 0x3, 0xf8, 0x3, 0xfc, 0x0,
0x0, 0xf, 0xf0, 0x1f, 0xe0, 0x0, 0x0, 0x1f,
0xe0, 0xff, 0x80, 0x0, 0x0, 0x7f, 0xc7, 0xfe,
0x0, 0x0, 0x1, 0xff, 0x9f, 0xf8, 0x0, 0x0,
0x7, 0xfe, 0x3f, 0xe0, 0x0, 0x0, 0x1f, 0xf0,
0x7f, 0x80, 0x0, 0x0, 0x7f, 0x80, 0xff, 0x0,
0x0, 0x3, 0xfc, 0x1, 0xfc, 0x0, 0x0, 0xf,
0xe0, 0x3, 0xf0, 0x0, 0x0, 0x3f, 0x0, 0x7,
0xe0, 0x0, 0x1, 0xf8, 0x0, 0x1f, 0xc0, 0x0,
0xf, 0xe0, 0x0, 0x7f, 0x80, 0x0, 0x7f, 0x80,
0x1, 0xff, 0x0, 0x3, 0xfe, 0x0, 0x7, 0xfe,
0x0, 0x1f, 0xf8, 0x0, 0x1f, 0xff, 0x3, 0xff,
0xe0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0x80, 0x1,
0xff, 0xff, 0xff, 0xfe, 0x0, 0x7, 0xff, 0xff,
0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xe0,
0x0, 0x0, 0x1f, 0xfe, 0x0, 0x0, 0x0, 0x0,
0x3f, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80,
0x0, 0x0, 0x0, 0x0, 0xfc, 0x0, 0x0, 0x0,
0x0, 0x1, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x3,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0,
/* U+E906 "" */
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x0,
0x0, 0x0, 0x0, 0x3, 0xf0, 0x0, 0x0, 0x0,
0x0, 0x1f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0xff,
0xc0, 0x0, 0x0, 0x0, 0x7, 0xff, 0x80, 0x0,
0x0, 0x7f, 0xff, 0xff, 0xff, 0x80, 0x1, 0xff,
0xff, 0xff, 0xfe, 0x0, 0x7, 0xff, 0xff, 0xff,
0xf8, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xe0, 0x0,
0x7f, 0xff, 0x8f, 0xff, 0x80, 0x1, 0xff, 0xfe,
0x7, 0xfe, 0x0, 0x7, 0xff, 0xf8, 0xf, 0xf8,
0x0, 0x1f, 0xff, 0xe0, 0x1f, 0xe0, 0x0, 0x7f,
0xff, 0x80, 0x3f, 0x80, 0x1, 0xff, 0xfe, 0x0,
0x7e, 0x0, 0xf, 0xff, 0xf8, 0x0, 0xfc, 0x0,
0x7f, 0xff, 0xe0, 0x3, 0xf8, 0x3, 0xff, 0xff,
0x80, 0xf, 0xf0, 0x1f, 0xff, 0xfe, 0x0, 0x1f,
0xe0, 0xff, 0xff, 0xf8, 0x0, 0x7f, 0xc7, 0xff,
0xff, 0xe0, 0x1, 0xff, 0x9f, 0xff, 0xff, 0x80,
0x7, 0xfe, 0x3f, 0xff, 0xfe, 0x0, 0x1f, 0xf0,
0x7f, 0xff, 0xf8, 0x0, 0x7f, 0x80, 0xff, 0xff,
0xe0, 0x3, 0xfc, 0x1, 0xff, 0xff, 0x80, 0xf,
0xe0, 0x3, 0xff, 0xfe, 0x0, 0x3f, 0x0, 0x7,
0xff, 0xf8, 0x1, 0xf8, 0x0, 0x1f, 0xff, 0xe0,
0xf, 0xe0, 0x0, 0x7f, 0xff, 0x80, 0x7f, 0x80,
0x1, 0xff, 0xfe, 0x3, 0xfe, 0x0, 0x7, 0xff,
0xf8, 0x1f, 0xf8, 0x0, 0x1f, 0xff, 0xe3, 0xff,
0xe0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0x80, 0x1,
0xff, 0xff, 0xff, 0xfe, 0x0, 0x7, 0xff, 0xff,
0xff, 0xf8, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xe0,
0x0, 0x0, 0x1f, 0xfe, 0x0, 0x0, 0x0, 0x0,
0x3f, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80,
0x0, 0x0, 0x0, 0x0, 0xfc, 0x0, 0x0, 0x0,
0x0, 0x1, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x3,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0,
/* U+E907 "" */
0x0, 0x1, 0xe0, 0x0, 0x0, 0x0, 0x78, 0x0,
0x0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x7, 0x80,
0x0, 0x0, 0x1, 0xe0, 0x0, 0x8, 0x0, 0x78,
0x0, 0x47, 0x0, 0x0, 0x0, 0x3b, 0xe0, 0x0,
0x0, 0x1f, 0x7c, 0x0, 0x0, 0xf, 0x8f, 0x80,
0x0, 0x7, 0xc1, 0xc0, 0x0, 0x0, 0xe0, 0x20,
0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0x80,
0x1f, 0xff, 0xff, 0xe0, 0x7, 0xff, 0xff, 0xf8,
0x1, 0xff, 0xff, 0xfe, 0x0, 0x7f, 0xff, 0xff,
0x80, 0x1f, 0xff, 0xff, 0xe0, 0x7, 0xff, 0xff,
0xf8, 0x1, 0xff, 0xff, 0xfe, 0x0, 0x7f, 0xff,
0xff, 0x80, 0x1f, 0xff, 0xff, 0xe0, 0x7, 0xff,
0xff, 0xf8, 0x0, 0xff, 0xff, 0xfc, 0x0, 0x1f,
0xff, 0xfe, 0x0, 0x3, 0xff, 0xff, 0x0, 0x0,
0x7f, 0xff, 0x80, 0x0, 0xf, 0xff, 0xc0, 0x0,
0x1, 0xff, 0xe0, 0x0, 0x0, 0x7f, 0xf8, 0x0,
0x0, 0x1f, 0xfe, 0x0, 0x0, 0x7, 0xff, 0x80,
0x0, 0x1, 0xff, 0xe0, 0x0, 0x0, 0x7f, 0xf8,
0x0, 0x0, 0x1f, 0xfe, 0x0, 0x0, 0x7, 0xff,
0x80, 0x0, 0x1, 0xff, 0xe0, 0x0, 0x0, 0x7f,
0xf8, 0x0,
/* U+E90B "" */
0x0, 0x3, 0xc0, 0x0, 0x0, 0x1, 0xf8, 0x0,
0x2, 0x0, 0x7e, 0x0, 0x1, 0xc0, 0x1f, 0x80,
0x0, 0xf8, 0x7, 0xe0, 0x0, 0x1f, 0xf, 0xff,
0x0, 0x3, 0xe1, 0xff, 0xe0, 0x0, 0x7c, 0x3f,
0xfc, 0x0, 0xf, 0x87, 0xff, 0x80, 0x1, 0xf0,
0xff, 0xf0, 0x0, 0x7e, 0x1f, 0xfe, 0x0, 0x1f,
0xc3, 0xff, 0x80, 0x7, 0xf8, 0x7f, 0xe0, 0x3,
0xff, 0xf, 0xfc, 0x0, 0xff, 0xe1, 0xff, 0x0,
0x3f, 0xfc, 0x3f, 0xc0, 0xf, 0xff, 0x87, 0xf0,
0x3, 0xff, 0xf1, 0xfc, 0x0, 0xff, 0xfe, 0x3f,
0x0, 0x3f, 0xff, 0xc7, 0xc0, 0xf, 0xff, 0xf8,
0xf0, 0x3, 0xff, 0xfe, 0x1c, 0x0, 0xff, 0xff,
0xc3, 0x0, 0x3f, 0xff, 0xf8, 0x40, 0xf, 0xff,
0xff, 0x0, 0x3, 0xff, 0xff, 0xe0, 0x0, 0xff,
0xff, 0xfc, 0x0, 0x7f, 0xff, 0xff, 0x80, 0x3f,
0xff, 0xff, 0xf0, 0x1f, 0xff, 0xff, 0xfe, 0xf,
0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xf8,
0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x3,
0xe0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x3f, 0xc0,
0xe, 0x0, 0xf, 0xf0, 0x1, 0x0, 0x1, 0xf8,
0x0, 0x0, 0x0, 0x3c, 0x0, 0x0,
/* U+E90C "" */
0x0, 0x0, 0x3c, 0x0, 0x0, 0x1, 0x80, 0x7e,
0x1, 0x80, 0x3, 0xc0, 0x7e, 0x3, 0xc0, 0x7,
0xe0, 0x7e, 0x7, 0xe0, 0xf, 0xc0, 0x7e, 0x3,
0xf0, 0x1f, 0x83, 0xff, 0xc1, 0xf8, 0x3f, 0x7,
0xff, 0xe0, 0xf8, 0x3e, 0xf, 0xff, 0xf0, 0x7c,
0x7e, 0x1f, 0xff, 0xf8, 0x3c, 0x7c, 0x3f, 0xff,
0xfc, 0x3e, 0x78, 0x7f, 0xff, 0xfe, 0x1e, 0xf8,
0x7f, 0xff, 0xfe, 0x1e, 0xf8, 0x7f, 0xff, 0xfe,
0x1f, 0xf0, 0xff, 0xff, 0xff, 0xf, 0xf0, 0xff,
0xff, 0xff, 0xf, 0xf0, 0xff, 0xff, 0xff, 0xf,
0x0, 0xff, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff,
0xff, 0x0, 0x0, 0xff, 0xff, 0xff, 0x0, 0x0,
0xff, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0xff,
0x0, 0x0, 0xff, 0xff, 0xff, 0x0, 0x0, 0xff,
0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0xff, 0x0,
0x0, 0xff, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff,
0xff, 0x0, 0x0, 0xff, 0xff, 0xff, 0x0, 0x1,
0xff, 0xff, 0xff, 0x80, 0x3, 0xff, 0xff, 0xff,
0xc0, 0x7, 0xff, 0xff, 0xff, 0xe0, 0xf, 0xff,
0xff, 0xff, 0xf0, 0xf, 0xff, 0xff, 0xff, 0xf0,
0xf, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0,
0x0, 0x0, 0x0, 0x7e, 0x0, 0x0, 0x0, 0x0,
0x3c, 0x0, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
{.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
{.bitmap_index = 0, .adv_w = 768, .box_w = 40, .box_h = 40, .ofs_x = 4, .ofs_y = 0},
{.bitmap_index = 200, .adv_w = 768, .box_w = 46, .box_h = 46, .ofs_x = 1, .ofs_y = -3},
{.bitmap_index = 465, .adv_w = 768, .box_w = 46, .box_h = 46, .ofs_x = 1, .ofs_y = -3},
{.bitmap_index = 730, .adv_w = 768, .box_w = 46, .box_h = 46, .ofs_x = 1, .ofs_y = -3},
{.bitmap_index = 995, .adv_w = 768, .box_w = 34, .box_h = 40, .ofs_x = 7, .ofs_y = 0},
{.bitmap_index = 1165, .adv_w = 768, .box_w = 34, .box_h = 39, .ofs_x = 8, .ofs_y = 0},
{.bitmap_index = 1331, .adv_w = 768, .box_w = 40, .box_h = 39, .ofs_x = 4, .ofs_y = 0}
};
/*---------------------
* CHARACTER MAPPING
*--------------------*/
static const uint8_t glyph_id_ofs_list_0[] = {
0, 0, 1, 2, 3, 4, 0, 0,
0, 5, 6
};
/*Collect the unicode lists and glyph_id offsets*/
static const lv_font_fmt_txt_cmap_t cmaps[] =
{
{
.range_start = 59650, .range_length = 11, .glyph_id_start = 1,
.unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_0, .list_length = 11, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
}
};
/*--------------------
* ALL CUSTOM DATA
*--------------------*/
#if LV_VERSION_CHECK(8, 0, 0)
/*Store all the custom data of the font*/
static lv_font_fmt_txt_glyph_cache_t cache;
static const lv_font_fmt_txt_dsc_t font_dsc = {
#else
static lv_font_fmt_txt_dsc_t font_dsc = {
#endif
.glyph_bitmap = glyph_bitmap,
.glyph_dsc = glyph_dsc,
.cmaps = cmaps,
.kern_dsc = NULL,
.kern_scale = 0,
.cmap_num = 1,
.bpp = 1,
.kern_classes = 0,
.bitmap_format = 0,
#if LV_VERSION_CHECK(8, 0, 0)
.cache = &cache
#endif
};
/*-----------------
* PUBLIC FONT
*----------------*/
/*Initialize a public general font descriptor*/
#if LV_VERSION_CHECK(8, 0, 0)
const lv_font_t lv_font_sys_48 = {
#else
lv_font_t lv_font_sys_48 = {
#endif
.get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/
.get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/
.line_height = 46, /*The maximum line height required by the font*/
.base_line = 3, /*Baseline measured from the bottom of the line*/
#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0)
.subpx = LV_FONT_SUBPX_NONE,
#endif
#if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8
.underline_position = 0,
.underline_thickness = 0,
#endif
.dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
};
#endif /*#if LV_FONT_SYS_48*/

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 B

View File

@ -0,0 +1,52 @@
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_BATTERYICON
#define LV_ATTRIBUTE_IMG_BATTERYICON
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_BATTERYICON uint8_t batteryicon_map[] = {
0xff, 0xff, 0xff, 0xff, /*Color of index 0*/
0x6a, 0xfc, 0x6c, 0xff, /*Color of index 1*/
0xe0, 0x70,
0xe0, 0x70,
0x00, 0x00,
0x00, 0x00,
0x3f, 0xc0,
0x3f, 0xc0,
0x3f, 0xc0,
0x3f, 0xc0,
0x3f, 0xc0,
0x3f, 0xc0,
0x3f, 0xc0,
0x3f, 0xc0,
0x3f, 0xc0,
0x3f, 0xc0,
0x3f, 0xc0,
0x3f, 0xc0,
0x3f, 0xc0,
0x3f, 0xc0,
0x00, 0x00,
0x00, 0x00,
};
const lv_img_dsc_t batteryicon = {
{
LV_IMG_CF_INDEXED_1BIT,
0,
0,
12,
20,
},
48,
batteryicon_map,
};

View File

@ -1,56 +0,0 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CK_OS_BATTERY_005
#define LV_ATTRIBUTE_IMG_CK_OS_BATTERY_005
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_CK_OS_BATTERY_005 uint8_t ck_os_battery_005_map[] = {
0x04, 0x02, 0xcc, 0xff, /*Color of index 0*/
0x6c, 0xfe, 0x6c, 0xff, /*Color of index 1*/
0xfc, 0x00, 0x3f,
0xf8, 0x00, 0x1f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0x00, 0xff, 0x00,
0x00, 0xff, 0x00,
0x00, 0xff, 0x00,
0x00, 0xff, 0x00,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0x00, 0x00, 0x00,
0x00, 0x00, 0x00,
0x00, 0x00, 0x00,
0x00, 0x00, 0x00,
};
const lv_img_dsc_t ck_os_battery_005 = {
.header.always_zero = 0,
.header.w = 24,
.header.h = 32,
.data_size = 104,
.header.cf = LV_IMG_CF_INDEXED_1BIT,
.data = ck_os_battery_005_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,58 +0,0 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CK_OS_BATTERY_010
#define LV_ATTRIBUTE_IMG_CK_OS_BATTERY_010
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_CK_OS_BATTERY_010 uint8_t ck_os_battery_010_map[] = {
0x04, 0x02, 0xcc, 0xff, /*Color of index 0*/
0x6c, 0xfe, 0x6c, 0xff, /*Color of index 1*/
0x04, 0x7a, 0xf4, 0xff, /*Color of index 2*/
0xe4, 0xe6, 0xe4, 0xff, /*Color of index 3*/
0x55, 0x5f, 0xff, 0xff, 0xf5, 0x55, 0x55,
0x55, 0x7f, 0xff, 0xff, 0xfd, 0x55, 0x55,
0x55, 0xff, 0xff, 0xff, 0xff, 0x55, 0x55,
0x55, 0xff, 0xff, 0xff, 0xff, 0x55, 0x55,
0xff, 0xff, 0x55, 0x55, 0xff, 0xff, 0x55,
0xff, 0xff, 0x55, 0x55, 0xff, 0xff, 0x55,
0xff, 0xff, 0x55, 0x55, 0xff, 0xff, 0x55,
0xff, 0xff, 0x55, 0x55, 0xff, 0xff, 0x55,
0xff, 0x55, 0x55, 0x55, 0x55, 0xff, 0x55,
0xff, 0x55, 0x55, 0x55, 0x55, 0xff, 0x55,
0xff, 0x55, 0x55, 0x55, 0x55, 0xff, 0x55,
0xff, 0x55, 0x55, 0x55, 0x55, 0xff, 0x55,
0xff, 0x55, 0x55, 0x55, 0x55, 0xff, 0x55,
0xff, 0x55, 0x55, 0x55, 0x55, 0xff, 0x55,
0xff, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0xff, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0xff, 0x55, 0x55, 0x6a, 0xaa, 0xaa, 0xa9,
0xff, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa,
0xff, 0x55, 0x55, 0xaa, 0xa5, 0x5a, 0xaa,
0xff, 0x55, 0x55, 0xaa, 0xa5, 0x5a, 0xaa,
0xff, 0x55, 0x55, 0xaa, 0xa5, 0x5a, 0xaa,
0xff, 0x55, 0x55, 0xaa, 0xa5, 0x5a, 0xaa,
0xff, 0x55, 0x55, 0xaa, 0xa5, 0x5a, 0xaa,
0xff, 0x55, 0x55, 0xaa, 0xa5, 0x5a, 0xaa,
0xff, 0x50, 0x05, 0xaa, 0xaa, 0xaa, 0xaa,
0xff, 0x50, 0x05, 0xaa, 0xaa, 0xaa, 0xaa,
0xff, 0x55, 0x55, 0xaa, 0xa5, 0x5a, 0xaa,
0xff, 0x55, 0x55, 0xaa, 0xa5, 0x5a, 0xaa,
0xff, 0xff, 0xf5, 0xaa, 0xa5, 0x5a, 0xaa,
0xff, 0xff, 0xf5, 0xaa, 0xa5, 0x5a, 0xaa,
0xff, 0xff, 0xf5, 0xaa, 0xaa, 0xaa, 0xaa,
0xff, 0xff, 0xf5, 0x6a, 0xaa, 0xaa, 0xa9,
};
const lv_img_dsc_t ck_os_battery_010 = {
.header.always_zero = 0,
.header.w = 28,
.header.h = 32,
.data_size = 240,
.header.cf = LV_IMG_CF_INDEXED_2BIT,
.data = ck_os_battery_010_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1,58 +0,0 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CK_OS_BATTERY_020
#define LV_ATTRIBUTE_IMG_CK_OS_BATTERY_020
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_CK_OS_BATTERY_020 uint8_t ck_os_battery_020_map[] = {
0x04, 0x02, 0xcc, 0xff, /*Color of index 0*/
0x6c, 0xfe, 0x6c, 0xff, /*Color of index 1*/
0xe4, 0xe6, 0xe4, 0xff, /*Color of index 2*/
0xff, 0xff, 0xff, 0xff, /*Color of index 3*/
0x55, 0x5a, 0xaa, 0xaa, 0xa5, 0x55,
0x55, 0x6a, 0xaa, 0xaa, 0xa9, 0x55,
0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55,
0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55,
0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa,
0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa,
0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa,
0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x50, 0x00, 0x00, 0x05, 0xaa,
0xaa, 0x50, 0x00, 0x00, 0x05, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
};
const lv_img_dsc_t ck_os_battery_020 = {
.header.always_zero = 0,
.header.w = 24,
.header.h = 32,
.data_size = 208,
.header.cf = LV_IMG_CF_INDEXED_2BIT,
.data = ck_os_battery_020_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,58 +0,0 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CK_OS_BATTERY_030
#define LV_ATTRIBUTE_IMG_CK_OS_BATTERY_030
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_CK_OS_BATTERY_030 uint8_t ck_os_battery_030_map[] = {
0x04, 0x7a, 0xf4, 0xff, /*Color of index 0*/
0x6c, 0xfe, 0x6c, 0xff, /*Color of index 1*/
0xe4, 0xe6, 0xe4, 0xff, /*Color of index 2*/
0xff, 0xff, 0xff, 0xff, /*Color of index 3*/
0x55, 0x5a, 0xaa, 0xaa, 0xa5, 0x55,
0x55, 0x6a, 0xaa, 0xaa, 0xa9, 0x55,
0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55,
0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55,
0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa,
0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa,
0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa,
0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x50, 0x00, 0x00, 0x05, 0xaa,
0xaa, 0x50, 0x00, 0x00, 0x05, 0xaa,
0xaa, 0x50, 0x00, 0x00, 0x05, 0xaa,
0xaa, 0x50, 0x00, 0x00, 0x05, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
};
const lv_img_dsc_t ck_os_battery_030 = {
.header.always_zero = 0,
.header.w = 24,
.header.h = 32,
.data_size = 208,
.header.cf = LV_IMG_CF_INDEXED_2BIT,
.data = ck_os_battery_030_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,56 +0,0 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CK_OS_BATTERY_040
#define LV_ATTRIBUTE_IMG_CK_OS_BATTERY_040
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_CK_OS_BATTERY_040 uint8_t ck_os_battery_040_map[] = {
0x6c, 0xfe, 0x6c, 0xff, /*Color of index 0*/
0xe4, 0xe6, 0xe4, 0xff, /*Color of index 1*/
0x03, 0xff, 0xc0,
0x07, 0xff, 0xe0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0xff, 0x00, 0xff,
0xff, 0x00, 0xff,
0xff, 0x00, 0xff,
0xff, 0x00, 0xff,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xff, 0xff, 0xff,
0xff, 0xff, 0xff,
0xff, 0xff, 0xff,
0xff, 0xff, 0xff,
};
const lv_img_dsc_t ck_os_battery_040 = {
.header.always_zero = 0,
.header.w = 24,
.header.h = 32,
.data_size = 104,
.header.cf = LV_IMG_CF_INDEXED_1BIT,
.data = ck_os_battery_040_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,56 +0,0 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CK_OS_BATTERY_050
#define LV_ATTRIBUTE_IMG_CK_OS_BATTERY_050
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_CK_OS_BATTERY_050 uint8_t ck_os_battery_050_map[] = {
0x6c, 0xfe, 0x6c, 0xff, /*Color of index 0*/
0xe4, 0xe6, 0xe4, 0xff, /*Color of index 1*/
0x03, 0xff, 0xc0,
0x07, 0xff, 0xe0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0xff, 0x00, 0xff,
0xff, 0x00, 0xff,
0xff, 0x00, 0xff,
0xff, 0x00, 0xff,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xff, 0xff, 0xff,
0xff, 0xff, 0xff,
0xff, 0xff, 0xff,
0xff, 0xff, 0xff,
};
const lv_img_dsc_t ck_os_battery_050 = {
.header.always_zero = 0,
.header.w = 24,
.header.h = 32,
.data_size = 104,
.header.cf = LV_IMG_CF_INDEXED_1BIT,
.data = ck_os_battery_050_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,56 +0,0 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CK_OS_BATTERY_060
#define LV_ATTRIBUTE_IMG_CK_OS_BATTERY_060
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_CK_OS_BATTERY_060 uint8_t ck_os_battery_060_map[] = {
0x6c, 0xfe, 0x6c, 0xff, /*Color of index 0*/
0xe4, 0xe6, 0xe4, 0xff, /*Color of index 1*/
0x03, 0xff, 0xc0,
0x07, 0xff, 0xe0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0xff, 0x00, 0xff,
0xff, 0x00, 0xff,
0xff, 0x00, 0xff,
0xff, 0x00, 0xff,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xff, 0xff, 0xff,
0xff, 0xff, 0xff,
0xff, 0xff, 0xff,
0xff, 0xff, 0xff,
};
const lv_img_dsc_t ck_os_battery_060 = {
.header.always_zero = 0,
.header.w = 24,
.header.h = 32,
.data_size = 104,
.header.cf = LV_IMG_CF_INDEXED_1BIT,
.data = ck_os_battery_060_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,56 +0,0 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CK_OS_BATTERY_070
#define LV_ATTRIBUTE_IMG_CK_OS_BATTERY_070
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_CK_OS_BATTERY_070 uint8_t ck_os_battery_070_map[] = {
0x6c, 0xfe, 0x6c, 0xff, /*Color of index 0*/
0xe4, 0xe6, 0xe4, 0xff, /*Color of index 1*/
0x03, 0xff, 0xc0,
0x07, 0xff, 0xe0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0xff, 0x00, 0xff,
0xff, 0x00, 0xff,
0xff, 0x00, 0xff,
0xff, 0x00, 0xff,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xff, 0xff, 0xff,
0xff, 0xff, 0xff,
0xff, 0xff, 0xff,
0xff, 0xff, 0xff,
};
const lv_img_dsc_t ck_os_battery_070 = {
.header.always_zero = 0,
.header.w = 24,
.header.h = 32,
.data_size = 104,
.header.cf = LV_IMG_CF_INDEXED_1BIT,
.data = ck_os_battery_070_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,56 +0,0 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CK_OS_BATTERY_080
#define LV_ATTRIBUTE_IMG_CK_OS_BATTERY_080
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_CK_OS_BATTERY_080 uint8_t ck_os_battery_080_map[] = {
0x6c, 0xfe, 0x6c, 0xff, /*Color of index 0*/
0xe4, 0xe6, 0xe4, 0xff, /*Color of index 1*/
0x03, 0xff, 0xc0,
0x07, 0xff, 0xe0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0xff, 0x00, 0xff,
0xff, 0x00, 0xff,
0xff, 0x00, 0xff,
0xff, 0x00, 0xff,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xff, 0xff, 0xff,
0xff, 0xff, 0xff,
0xff, 0xff, 0xff,
0xff, 0xff, 0xff,
};
const lv_img_dsc_t ck_os_battery_080 = {
.header.always_zero = 0,
.header.w = 24,
.header.h = 32,
.data_size = 104,
.header.cf = LV_IMG_CF_INDEXED_1BIT,
.data = ck_os_battery_080_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,56 +0,0 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CK_OS_BATTERY_090
#define LV_ATTRIBUTE_IMG_CK_OS_BATTERY_090
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_CK_OS_BATTERY_090 uint8_t ck_os_battery_090_map[] = {
0x6c, 0xfe, 0x6c, 0xff, /*Color of index 0*/
0xe4, 0xe6, 0xe4, 0xff, /*Color of index 1*/
0x03, 0xff, 0xc0,
0x07, 0xff, 0xe0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0xff, 0x00, 0xff,
0xff, 0x00, 0xff,
0xff, 0x00, 0xff,
0xff, 0x00, 0xff,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xff, 0xff, 0xff,
0xff, 0xff, 0xff,
0xff, 0xff, 0xff,
0xff, 0xff, 0xff,
};
const lv_img_dsc_t ck_os_battery_090 = {
.header.always_zero = 0,
.header.w = 24,
.header.h = 32,
.data_size = 104,
.header.cf = LV_IMG_CF_INDEXED_1BIT,
.data = ck_os_battery_090_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,58 +0,0 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CK_OS_BATTERY_100
#define LV_ATTRIBUTE_IMG_CK_OS_BATTERY_100
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_CK_OS_BATTERY_100 uint8_t ck_os_battery_100_map[] = {
0x7c, 0xd2, 0x34, 0xff, /*Color of index 0*/
0xe4, 0xe6, 0xe4, 0xff, /*Color of index 1*/
0x6c, 0xfe, 0x6c, 0xff, /*Color of index 2*/
0xff, 0xff, 0xff, 0xff, /*Color of index 3*/
0xaa, 0xa5, 0x55, 0x55, 0x5a, 0xaa,
0xaa, 0x95, 0x55, 0x55, 0x56, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa,
0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55,
0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55,
0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55,
0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55,
0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55,
0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0x55,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0x55,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0x55,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0x55,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0x55,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0x55,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0x55,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0x55,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0x55,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0x55,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0x55,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0x55,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0x55,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0x55,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0x55,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0x55,
0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55,
0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
};
const lv_img_dsc_t ck_os_battery_100 = {
.header.always_zero = 0,
.header.w = 24,
.header.h = 32,
.data_size = 208,
.header.cf = LV_IMG_CF_INDEXED_2BIT,
.data = ck_os_battery_100_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,58 +0,0 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CK_OS_BATTERY_ERROR
#define LV_ATTRIBUTE_IMG_CK_OS_BATTERY_ERROR
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_CK_OS_BATTERY_ERROR uint8_t ck_os_battery_error_map[] = {
0x6c, 0xfe, 0x6c, 0xff, /*Color of index 0*/
0xc4, 0xc2, 0xc4, 0xff, /*Color of index 1*/
0xe4, 0xe6, 0xe4, 0xff, /*Color of index 2*/
0xff, 0xff, 0xff, 0xff, /*Color of index 3*/
0x00, 0x05, 0x55, 0x55, 0x50, 0x00,
0x00, 0x15, 0x55, 0x55, 0x54, 0x00,
0x00, 0x55, 0x55, 0x55, 0x55, 0x00,
0x00, 0x55, 0x55, 0x55, 0x55, 0x00,
0x55, 0x55, 0x00, 0x00, 0x55, 0x55,
0x55, 0x55, 0x00, 0x00, 0x55, 0x55,
0x55, 0x55, 0x00, 0x00, 0x55, 0x55,
0x55, 0x54, 0x00, 0x00, 0x15, 0x55,
0x55, 0x00, 0x0a, 0xa0, 0x00, 0x55,
0x55, 0x00, 0xaa, 0xaa, 0x00, 0x55,
0x55, 0x02, 0xaa, 0xaa, 0x80, 0x55,
0x55, 0x02, 0xaa, 0xaa, 0x80, 0x55,
0x55, 0x0a, 0xa8, 0x2a, 0xa0, 0x55,
0x55, 0x0a, 0xa0, 0x0a, 0xa0, 0x55,
0x55, 0x00, 0x00, 0x0a, 0xa0, 0x55,
0x55, 0x00, 0x00, 0x2a, 0xa0, 0x55,
0x55, 0x00, 0x02, 0xaa, 0x80, 0x55,
0x55, 0x00, 0x0a, 0xaa, 0x80, 0x55,
0x55, 0x00, 0x0a, 0xaa, 0x00, 0x55,
0x55, 0x00, 0x0a, 0xa0, 0x00, 0x55,
0x55, 0x00, 0x0a, 0xa0, 0x00, 0x55,
0x55, 0x00, 0x0a, 0xa0, 0x00, 0x55,
0x55, 0x00, 0x00, 0x00, 0x00, 0x55,
0x55, 0x00, 0x00, 0x00, 0x00, 0x55,
0x55, 0x00, 0x02, 0x80, 0x00, 0x55,
0x55, 0x00, 0x0a, 0xa0, 0x00, 0x55,
0x55, 0x00, 0x0a, 0xa0, 0x00, 0x55,
0x55, 0x00, 0x02, 0x80, 0x00, 0x55,
0x55, 0x55, 0x40, 0x01, 0x55, 0x55,
0x55, 0x55, 0x50, 0x05, 0x55, 0x55,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
};
const lv_img_dsc_t ck_os_battery_error = {
.header.always_zero = 0,
.header.w = 24,
.header.h = 32,
.data_size = 208,
.header.cf = LV_IMG_CF_INDEXED_2BIT,
.data = ck_os_battery_error_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -1,56 +0,0 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_005
#define LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_005
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_005 uint8_t ck_os_batterycharging_005_map[] = {
0x6c, 0xfe, 0x6c, 0xff, /*Color of index 0*/
0xe4, 0xe6, 0xe4, 0xff, /*Color of index 1*/
0x03, 0xff, 0xc0, 0x00,
0x07, 0xff, 0xe0, 0x00,
0x0f, 0xff, 0xf0, 0x00,
0x0f, 0xff, 0xf0, 0x00,
0xff, 0x00, 0xff, 0x00,
0xff, 0x00, 0xff, 0x00,
0xff, 0x00, 0xff, 0x00,
0xff, 0x00, 0xff, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x00, 0x00,
0xf0, 0x00, 0x00, 0x00,
0xf0, 0x00, 0x07, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x1f, 0x00,
0xf0, 0x00, 0x3e, 0x00,
0xf0, 0x00, 0x7e, 0x00,
0xf0, 0x00, 0xfc, 0x00,
0xf0, 0x01, 0xff, 0xf0,
0xf0, 0x03, 0xff, 0xf0,
0xf0, 0x03, 0xff, 0xf0,
0xf0, 0x03, 0xff, 0xe0,
0xf0, 0x00, 0x0f, 0xc0,
0xf0, 0x00, 0x1f, 0x80,
0xff, 0xff, 0x3f, 0x00,
0xff, 0xff, 0x3e, 0x00,
0xff, 0xff, 0x3c, 0x00,
0xff, 0xff, 0x38, 0x00,
};
const lv_img_dsc_t ck_os_batterycharging_005 = {
.header.always_zero = 0,
.header.w = 28,
.header.h = 32,
.data_size = 136,
.header.cf = LV_IMG_CF_INDEXED_1BIT,
.data = ck_os_batterycharging_005_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -1,58 +0,0 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_010
#define LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_010
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_010 uint8_t ck_os_batterycharging_010_map[] = {
0x04, 0x02, 0xcc, 0xff, /*Color of index 0*/
0x6c, 0xfe, 0x6c, 0xff, /*Color of index 1*/
0xe4, 0xe6, 0xe4, 0xff, /*Color of index 2*/
0xff, 0xff, 0xff, 0xff, /*Color of index 3*/
0x55, 0x5a, 0xaa, 0xaa, 0xa5, 0x55, 0x55,
0x55, 0x6a, 0xaa, 0xaa, 0xa9, 0x55, 0x55,
0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55,
0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55,
0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55,
0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55,
0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55,
0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0x6a, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x56, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x5a, 0xa9, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x6a, 0xa9, 0x55,
0xaa, 0x55, 0x55, 0x55, 0xaa, 0xa5, 0x55,
0xaa, 0x55, 0x55, 0x56, 0xaa, 0xaa, 0xaa,
0xaa, 0x55, 0x55, 0x5a, 0xaa, 0xaa, 0xaa,
0xaa, 0x50, 0x00, 0x5a, 0xaa, 0xaa, 0xaa,
0xaa, 0x50, 0x00, 0x5a, 0xaa, 0xaa, 0xa9,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xa5,
0xaa, 0x55, 0x55, 0x55, 0x56, 0xaa, 0x95,
0xaa, 0xaa, 0xaa, 0xaa, 0x5a, 0xaa, 0x55,
0xaa, 0xaa, 0xaa, 0xaa, 0x5a, 0xa9, 0x55,
0xaa, 0xaa, 0xaa, 0xaa, 0x5a, 0xa5, 0x55,
0xaa, 0xaa, 0xaa, 0xaa, 0x5a, 0x95, 0x55,
};
const lv_img_dsc_t ck_os_batterycharging_010 = {
.header.always_zero = 0,
.header.w = 28,
.header.h = 32,
.data_size = 240,
.header.cf = LV_IMG_CF_INDEXED_2BIT,
.data = ck_os_batterycharging_010_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -1,58 +0,0 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_020
#define LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_020
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_020 uint8_t ck_os_batterycharging_020_map[] = {
0x04, 0x02, 0xcc, 0xff, /*Color of index 0*/
0x6c, 0xfe, 0x6c, 0xff, /*Color of index 1*/
0xe4, 0xe6, 0xe4, 0xff, /*Color of index 2*/
0xff, 0xff, 0xff, 0xff, /*Color of index 3*/
0x55, 0x5a, 0xaa, 0xaa, 0xa5, 0x55, 0x55,
0x55, 0x6a, 0xaa, 0xaa, 0xa9, 0x55, 0x55,
0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55,
0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55,
0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55,
0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55,
0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55,
0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0x6a, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x56, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x5a, 0xa9, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x6a, 0xa9, 0x55,
0xaa, 0x55, 0x55, 0x55, 0xaa, 0xa5, 0x55,
0xaa, 0x55, 0x55, 0x56, 0xaa, 0xaa, 0xaa,
0xaa, 0x55, 0x55, 0x5a, 0xaa, 0xaa, 0xaa,
0xaa, 0x50, 0x00, 0x5a, 0xaa, 0xaa, 0xaa,
0xaa, 0x50, 0x00, 0x5a, 0xaa, 0xaa, 0xa9,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xa5,
0xaa, 0x55, 0x55, 0x55, 0x56, 0xaa, 0x95,
0xaa, 0xaa, 0xaa, 0xaa, 0x5a, 0xaa, 0x55,
0xaa, 0xaa, 0xaa, 0xaa, 0x5a, 0xa9, 0x55,
0xaa, 0xaa, 0xaa, 0xaa, 0x5a, 0xa5, 0x55,
0xaa, 0xaa, 0xaa, 0xaa, 0x5a, 0x95, 0x55,
};
const lv_img_dsc_t ck_os_batterycharging_020 = {
.header.always_zero = 0,
.header.w = 28,
.header.h = 32,
.data_size = 240,
.header.cf = LV_IMG_CF_INDEXED_2BIT,
.data = ck_os_batterycharging_020_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -1,58 +0,0 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_030
#define LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_030
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_030 uint8_t ck_os_batterycharging_030_map[] = {
0x04, 0x7a, 0xf4, 0xff, /*Color of index 0*/
0x6c, 0xfe, 0x6c, 0xff, /*Color of index 1*/
0xe4, 0xe6, 0xe4, 0xff, /*Color of index 2*/
0xff, 0xff, 0xff, 0xff, /*Color of index 3*/
0x55, 0x5a, 0xaa, 0xaa, 0xa5, 0x55, 0x55,
0x55, 0x6a, 0xaa, 0xaa, 0xa9, 0x55, 0x55,
0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55,
0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55,
0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55,
0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55,
0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55,
0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0x6a, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x56, 0xaa, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x5a, 0xa9, 0x55,
0xaa, 0x55, 0x55, 0x55, 0x6a, 0xa9, 0x55,
0xaa, 0x55, 0x55, 0x55, 0xaa, 0xa5, 0x55,
0xaa, 0x50, 0x00, 0x56, 0xaa, 0xaa, 0xaa,
0xaa, 0x50, 0x00, 0x5a, 0xaa, 0xaa, 0xaa,
0xaa, 0x50, 0x00, 0x5a, 0xaa, 0xaa, 0xaa,
0xaa, 0x50, 0x00, 0x5a, 0xaa, 0xaa, 0xa9,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xa5,
0xaa, 0x55, 0x55, 0x55, 0x56, 0xaa, 0x95,
0xaa, 0xaa, 0xaa, 0xaa, 0x5a, 0xaa, 0x55,
0xaa, 0xaa, 0xaa, 0xaa, 0x5a, 0xa9, 0x55,
0xaa, 0xaa, 0xaa, 0xaa, 0x5a, 0xa5, 0x55,
0xaa, 0xaa, 0xaa, 0xaa, 0x5a, 0x95, 0x55,
};
const lv_img_dsc_t ck_os_batterycharging_030 = {
.header.always_zero = 0,
.header.w = 28,
.header.h = 32,
.data_size = 240,
.header.cf = LV_IMG_CF_INDEXED_2BIT,
.data = ck_os_batterycharging_030_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,56 +0,0 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_040
#define LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_040
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_040 uint8_t ck_os_batterycharging_040_map[] = {
0x6c, 0xfe, 0x6c, 0xff, /*Color of index 0*/
0xe4, 0xe6, 0xe4, 0xff, /*Color of index 1*/
0x03, 0xff, 0xc0, 0x00,
0x07, 0xff, 0xe0, 0x00,
0x0f, 0xff, 0xf0, 0x00,
0x0f, 0xff, 0xf0, 0x00,
0xff, 0x00, 0xff, 0x00,
0xff, 0x00, 0xff, 0x00,
0xff, 0x00, 0xff, 0x00,
0xff, 0x00, 0xff, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x00, 0x00,
0xf0, 0x00, 0x00, 0x00,
0xf0, 0x00, 0x07, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x1f, 0x00,
0xf0, 0x00, 0x3e, 0x00,
0xf3, 0xf8, 0x7e, 0x00,
0xf3, 0xf0, 0xfc, 0x00,
0xf3, 0xf1, 0xff, 0xf0,
0xf3, 0xf3, 0xff, 0xf0,
0xf3, 0xf3, 0xff, 0xf0,
0xf3, 0xf3, 0xff, 0xe0,
0xf0, 0x00, 0x0f, 0xc0,
0xf0, 0x00, 0x1f, 0x80,
0xff, 0xff, 0x3f, 0x00,
0xff, 0xff, 0x3e, 0x00,
0xff, 0xff, 0x3c, 0x00,
0xff, 0xff, 0x38, 0x00,
};
const lv_img_dsc_t ck_os_batterycharging_040 = {
.header.always_zero = 0,
.header.w = 28,
.header.h = 32,
.data_size = 136,
.header.cf = LV_IMG_CF_INDEXED_1BIT,
.data = ck_os_batterycharging_040_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -1,56 +0,0 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_050
#define LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_050
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_050 uint8_t ck_os_batterycharging_050_map[] = {
0x6c, 0xfe, 0x6c, 0xff, /*Color of index 0*/
0xe4, 0xe6, 0xe4, 0xff, /*Color of index 1*/
0x03, 0xff, 0xc0, 0x00,
0x07, 0xff, 0xe0, 0x00,
0x0f, 0xff, 0xf0, 0x00,
0x0f, 0xff, 0xf0, 0x00,
0xff, 0x00, 0xff, 0x00,
0xff, 0x00, 0xff, 0x00,
0xff, 0x00, 0xff, 0x00,
0xff, 0x00, 0xff, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x00, 0x00,
0xf0, 0x00, 0x00, 0x00,
0xf0, 0x00, 0x07, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf3, 0xfe, 0x1f, 0x00,
0xf3, 0xfc, 0x3e, 0x00,
0xf3, 0xf8, 0x7e, 0x00,
0xf3, 0xf0, 0xfc, 0x00,
0xf3, 0xf1, 0xff, 0xf0,
0xf3, 0xf3, 0xff, 0xf0,
0xf3, 0xf3, 0xff, 0xf0,
0xf3, 0xf3, 0xff, 0xe0,
0xf0, 0x00, 0x0f, 0xc0,
0xf0, 0x00, 0x1f, 0x80,
0xff, 0xff, 0x3f, 0x00,
0xff, 0xff, 0x3e, 0x00,
0xff, 0xff, 0x3c, 0x00,
0xff, 0xff, 0x38, 0x00,
};
const lv_img_dsc_t ck_os_batterycharging_050 = {
.header.always_zero = 0,
.header.w = 28,
.header.h = 32,
.data_size = 136,
.header.cf = LV_IMG_CF_INDEXED_1BIT,
.data = ck_os_batterycharging_050_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,56 +0,0 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_060
#define LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_060
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_060 uint8_t ck_os_batterycharging_060_map[] = {
0x6c, 0xfe, 0x6c, 0xff, /*Color of index 0*/
0xe4, 0xe6, 0xe4, 0xff, /*Color of index 1*/
0x03, 0xff, 0xc0, 0x00,
0x07, 0xff, 0xe0, 0x00,
0x0f, 0xff, 0xf0, 0x00,
0x0f, 0xff, 0xf0, 0x00,
0xff, 0x00, 0xff, 0x00,
0xff, 0x00, 0xff, 0x00,
0xff, 0x00, 0xff, 0x00,
0xff, 0x00, 0xff, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x00, 0x00,
0xf0, 0x00, 0x00, 0x00,
0xf3, 0xff, 0x87, 0x00,
0xf3, 0xff, 0x0f, 0x00,
0xf3, 0xfe, 0x1f, 0x00,
0xf3, 0xfc, 0x3e, 0x00,
0xf3, 0xf8, 0x7e, 0x00,
0xf3, 0xf0, 0xfc, 0x00,
0xf3, 0xf1, 0xff, 0xf0,
0xf3, 0xf3, 0xff, 0xf0,
0xf3, 0xf3, 0xff, 0xf0,
0xf3, 0xf3, 0xff, 0xe0,
0xf0, 0x00, 0x0f, 0xc0,
0xf0, 0x00, 0x1f, 0x80,
0xff, 0xff, 0x3f, 0x00,
0xff, 0xff, 0x3e, 0x00,
0xff, 0xff, 0x3c, 0x00,
0xff, 0xff, 0x38, 0x00,
};
const lv_img_dsc_t ck_os_batterycharging_060 = {
.header.always_zero = 0,
.header.w = 28,
.header.h = 32,
.data_size = 136,
.header.cf = LV_IMG_CF_INDEXED_1BIT,
.data = ck_os_batterycharging_060_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,56 +0,0 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_070
#define LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_070
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_070 uint8_t ck_os_batterycharging_070_map[] = {
0x6c, 0xfe, 0x6c, 0xff, /*Color of index 0*/
0xe4, 0xe6, 0xe4, 0xff, /*Color of index 1*/
0x03, 0xff, 0xc0, 0x00,
0x07, 0xff, 0xe0, 0x00,
0x0f, 0xff, 0xf0, 0x00,
0x0f, 0xff, 0xf0, 0x00,
0xff, 0x00, 0xff, 0x00,
0xff, 0x00, 0xff, 0x00,
0xff, 0x00, 0xff, 0x00,
0xff, 0x00, 0xff, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf0, 0x00, 0x0f, 0x00,
0xf3, 0xff, 0xc0, 0x00,
0xf3, 0xff, 0xc0, 0x00,
0xf3, 0xff, 0x87, 0x00,
0xf3, 0xff, 0x0f, 0x00,
0xf3, 0xfe, 0x1f, 0x00,
0xf3, 0xfc, 0x3e, 0x00,
0xf3, 0xf8, 0x7e, 0x00,
0xf3, 0xf0, 0xfc, 0x00,
0xf3, 0xf1, 0xff, 0xf0,
0xf3, 0xf3, 0xff, 0xf0,
0xf3, 0xf3, 0xff, 0xf0,
0xf3, 0xf3, 0xff, 0xe0,
0xf0, 0x00, 0x0f, 0xc0,
0xf0, 0x00, 0x1f, 0x80,
0xff, 0xff, 0x3f, 0x00,
0xff, 0xff, 0x3e, 0x00,
0xff, 0xff, 0x3c, 0x00,
0xff, 0xff, 0x38, 0x00,
};
const lv_img_dsc_t ck_os_batterycharging_070 = {
.header.always_zero = 0,
.header.w = 28,
.header.h = 32,
.data_size = 136,
.header.cf = LV_IMG_CF_INDEXED_1BIT,
.data = ck_os_batterycharging_070_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,58 +0,0 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_080
#define LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_080
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_080 uint8_t ck_os_batterycharging_080_map[] = {
0x7c, 0xd2, 0x34, 0xff, /*Color of index 0*/
0xe4, 0xe6, 0xe4, 0xff, /*Color of index 1*/
0x6c, 0xfe, 0x6c, 0xff, /*Color of index 2*/
0xff, 0xff, 0xff, 0xff, /*Color of index 3*/
0xaa, 0xa5, 0x55, 0x55, 0x5a, 0xaa, 0xaa,
0xaa, 0x95, 0x55, 0x55, 0x56, 0xaa, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa,
0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa,
0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa,
0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa,
0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa,
0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0xaa,
0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0xaa,
0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0xaa,
0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0xaa,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0x55, 0xaa,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0x55, 0xaa,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0xaa, 0xaa,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0xaa, 0xaa,
0x55, 0xa0, 0x00, 0x00, 0x2a, 0x95, 0xaa,
0x55, 0xa0, 0x00, 0x00, 0xaa, 0x55, 0xaa,
0x55, 0xa0, 0x00, 0x02, 0xa9, 0x55, 0xaa,
0x55, 0xa0, 0x00, 0x0a, 0xa5, 0x56, 0xaa,
0x55, 0xa0, 0x00, 0x2a, 0x95, 0x56, 0xaa,
0x55, 0xa0, 0x00, 0xaa, 0x55, 0x5a, 0xaa,
0x55, 0xa0, 0x00, 0xa9, 0x55, 0x55, 0x55,
0x55, 0xa0, 0x00, 0xa5, 0x55, 0x55, 0x55,
0x55, 0xa0, 0x00, 0xa5, 0x55, 0x55, 0x55,
0x55, 0xa0, 0x00, 0xa5, 0x55, 0x55, 0x56,
0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x5a,
0x55, 0xaa, 0xaa, 0xaa, 0xa9, 0x55, 0x6a,
0x55, 0x55, 0x55, 0x55, 0xa5, 0x55, 0xaa,
0x55, 0x55, 0x55, 0x55, 0xa5, 0x56, 0xaa,
0x55, 0x55, 0x55, 0x55, 0xa5, 0x5a, 0xaa,
0x55, 0x55, 0x55, 0x55, 0xa5, 0x6a, 0xaa,
};
const lv_img_dsc_t ck_os_batterycharging_080 = {
.header.always_zero = 0,
.header.w = 28,
.header.h = 32,
.data_size = 240,
.header.cf = LV_IMG_CF_INDEXED_2BIT,
.data = ck_os_batterycharging_080_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,58 +0,0 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_090
#define LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_090
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_090 uint8_t ck_os_batterycharging_090_map[] = {
0x7c, 0xd2, 0x34, 0xff, /*Color of index 0*/
0xe4, 0xe6, 0xe4, 0xff, /*Color of index 1*/
0x6c, 0xfe, 0x6c, 0xff, /*Color of index 2*/
0xff, 0xff, 0xff, 0xff, /*Color of index 3*/
0xaa, 0xa5, 0x55, 0x55, 0x5a, 0xaa, 0xaa,
0xaa, 0x95, 0x55, 0x55, 0x56, 0xaa, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa,
0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa,
0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa,
0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa,
0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa,
0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa,
0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0xaa,
0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0xaa,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0x55, 0xaa,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0x55, 0xaa,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0x55, 0xaa,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0x55, 0xaa,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0xaa, 0xaa,
0x55, 0xa0, 0x00, 0x00, 0x0a, 0xaa, 0xaa,
0x55, 0xa0, 0x00, 0x00, 0x2a, 0x95, 0xaa,
0x55, 0xa0, 0x00, 0x00, 0xaa, 0x55, 0xaa,
0x55, 0xa0, 0x00, 0x02, 0xa9, 0x55, 0xaa,
0x55, 0xa0, 0x00, 0x0a, 0xa5, 0x56, 0xaa,
0x55, 0xa0, 0x00, 0x2a, 0x95, 0x56, 0xaa,
0x55, 0xa0, 0x00, 0xaa, 0x55, 0x5a, 0xaa,
0x55, 0xa0, 0x00, 0xa9, 0x55, 0x55, 0x55,
0x55, 0xa0, 0x00, 0xa5, 0x55, 0x55, 0x55,
0x55, 0xa0, 0x00, 0xa5, 0x55, 0x55, 0x55,
0x55, 0xa0, 0x00, 0xa5, 0x55, 0x55, 0x56,
0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x5a,
0x55, 0xaa, 0xaa, 0xaa, 0xa9, 0x55, 0x6a,
0x55, 0x55, 0x55, 0x55, 0xa5, 0x55, 0xaa,
0x55, 0x55, 0x55, 0x55, 0xa5, 0x56, 0xaa,
0x55, 0x55, 0x55, 0x55, 0xa5, 0x5a, 0xaa,
0x55, 0x55, 0x55, 0x55, 0xa5, 0x6a, 0xaa,
};
const lv_img_dsc_t ck_os_batterycharging_090 = {
.header.always_zero = 0,
.header.w = 28,
.header.h = 32,
.data_size = 240,
.header.cf = LV_IMG_CF_INDEXED_2BIT,
.data = ck_os_batterycharging_090_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -1,56 +0,0 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_100
#define LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_100
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_CK_OS_BATTERYCHARGING_100 uint8_t ck_os_batterycharging_100_map[] = {
0x6c, 0xfe, 0x6c, 0xff, /*Color of index 0*/
0xe4, 0xe6, 0xe4, 0xff, /*Color of index 1*/
0x03, 0xff, 0xc0,
0x07, 0xff, 0xe0,
0x0f, 0xff, 0xf0,
0x0f, 0xff, 0xf0,
0xff, 0x00, 0xff,
0xff, 0x00, 0xff,
0xff, 0x00, 0xff,
0xff, 0x00, 0xff,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x07, 0x0f,
0xf0, 0x0f, 0x0f,
0xf0, 0x1f, 0x0f,
0xf0, 0x3e, 0x0f,
0xf0, 0x7e, 0x0f,
0xf0, 0xfc, 0x0f,
0xf1, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0xcf,
0xf3, 0xff, 0x8f,
0xf0, 0x3f, 0x0f,
0xf0, 0x7e, 0x0f,
0xf0, 0x7c, 0x0f,
0xf0, 0xf8, 0x0f,
0xf0, 0xf0, 0x0f,
0xf0, 0xe0, 0x0f,
0xf0, 0x00, 0x0f,
0xf0, 0x00, 0x0f,
0xff, 0xff, 0xff,
0xff, 0xff, 0xff,
0xff, 0xff, 0xff,
0xff, 0xff, 0xff,
};
const lv_img_dsc_t ck_os_batterycharging_100 = {
.header.always_zero = 0,
.header.w = 24,
.header.h = 32,
.data_size = 104,
.header.cf = LV_IMG_CF_INDEXED_1BIT,
.data = ck_os_batterycharging_100_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -26,7 +26,6 @@ static void theme_apply(lv_obj_t* obj, lv_theme_style_t name);
**********************/ **********************/
static lv_theme_t theme; static lv_theme_t theme;
static lv_style_t style_pad;
static lv_style_t style_circle; static lv_style_t style_circle;
static lv_style_t style_bg; static lv_style_t style_bg;
@ -77,12 +76,6 @@ static void style_init_reset(lv_style_t* style) {
static void basic_init(void) { static void basic_init(void) {
style_init_reset(&style_pad);
lv_style_set_pad_top(&style_pad, LV_STATE_DEFAULT, LV_VER_RES / 30);
lv_style_set_pad_bottom(&style_pad, LV_STATE_DEFAULT, LV_VER_RES / 30);
lv_style_set_pad_left(&style_pad, LV_STATE_DEFAULT, LV_VER_RES / 40);
lv_style_set_pad_right(&style_pad, LV_STATE_DEFAULT, LV_VER_RES / 40);
style_init_reset(&style_circle); style_init_reset(&style_circle);
lv_style_set_radius(&style_circle, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); lv_style_set_radius(&style_circle, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
@ -113,9 +106,9 @@ static void basic_init(void) {
style_init_reset(&style_btn); style_init_reset(&style_btn);
lv_style_set_radius(&style_btn, LV_STATE_DEFAULT, 10); lv_style_set_radius(&style_btn, LV_STATE_DEFAULT, 10);
lv_style_set_bg_opa(&style_btn, LV_STATE_DEFAULT, LV_OPA_COVER); lv_style_set_bg_opa(&style_btn, LV_STATE_DEFAULT, LV_OPA_COVER);
lv_style_set_bg_color(&style_btn, LV_STATE_DEFAULT, lv_color_hex(0x2F3540)); lv_style_set_bg_color(&style_btn, LV_STATE_DEFAULT, LV_PINETIME_BLUE);
lv_style_set_bg_color(&style_btn, LV_STATE_CHECKED, LV_COLOR_GREEN); lv_style_set_bg_color(&style_btn, LV_STATE_CHECKED, LV_COLOR_MAKE(0x0, 0xb0, 0x0));
lv_style_set_bg_color(&style_btn, LV_STATE_DISABLED, lv_color_hex(0x2F3540)); lv_style_set_bg_color(&style_btn, LV_STATE_DISABLED, LV_PINETIME_BLUE);
lv_style_set_bg_color(&style_btn, LV_STATE_DISABLED | LV_STATE_CHECKED, lv_color_hex3(0x888)); lv_style_set_bg_color(&style_btn, LV_STATE_DISABLED | LV_STATE_CHECKED, lv_color_hex3(0x888));
lv_style_set_border_color(&style_btn, LV_STATE_DEFAULT, theme.color_primary); lv_style_set_border_color(&style_btn, LV_STATE_DEFAULT, theme.color_primary);
lv_style_set_border_width(&style_btn, LV_STATE_DEFAULT, 0); lv_style_set_border_width(&style_btn, LV_STATE_DEFAULT, 0);
@ -166,7 +159,7 @@ static void basic_init(void) {
style_init_reset(&style_scrollbar); style_init_reset(&style_scrollbar);
lv_style_set_bg_opa(&style_scrollbar, LV_STATE_DEFAULT, LV_OPA_COVER); lv_style_set_bg_opa(&style_scrollbar, LV_STATE_DEFAULT, LV_OPA_COVER);
lv_style_set_radius(&style_scrollbar, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); lv_style_set_radius(&style_scrollbar, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
lv_style_set_bg_color(&style_scrollbar, LV_STATE_DEFAULT, LV_PINETIME_LIGHT_GRAY); lv_style_set_bg_color(&style_scrollbar, LV_STATE_DEFAULT, LV_COLOR_WHITE);
lv_style_set_size(&style_scrollbar, LV_STATE_DEFAULT, LV_HOR_RES / 80); lv_style_set_size(&style_scrollbar, LV_STATE_DEFAULT, LV_HOR_RES / 80);
lv_style_set_pad_right(&style_scrollbar, LV_STATE_DEFAULT, LV_HOR_RES / 60); lv_style_set_pad_right(&style_scrollbar, LV_STATE_DEFAULT, LV_HOR_RES / 60);
@ -188,10 +181,13 @@ static void basic_init(void) {
lv_style_set_pad_inner(&style_list_btn, LV_STATE_DEFAULT, LV_HOR_RES / 50); lv_style_set_pad_inner(&style_list_btn, LV_STATE_DEFAULT, LV_HOR_RES / 50);
style_init_reset(&style_ddlist_list); style_init_reset(&style_ddlist_list);
// Causes lag unfortunately, so we'll have to live with the selected item overflowing the corner
//lv_style_set_clip_corner(&style_ddlist_list, LV_STATE_DEFAULT, true);
lv_style_set_text_line_space(&style_ddlist_list, LV_STATE_DEFAULT, LV_VER_RES / 25); lv_style_set_text_line_space(&style_ddlist_list, LV_STATE_DEFAULT, LV_VER_RES / 25);
lv_style_set_shadow_width(&style_ddlist_list, LV_STATE_DEFAULT, LV_VER_RES / 20); lv_style_set_shadow_width(&style_ddlist_list, LV_STATE_DEFAULT, LV_VER_RES / 20);
lv_style_set_shadow_color(&style_ddlist_list, LV_STATE_DEFAULT, LV_PINETIME_GRAY); lv_style_set_shadow_color(&style_ddlist_list, LV_STATE_DEFAULT, LV_COLOR_MAKE(0xb0, 0xb0, 0xb0));
lv_style_set_bg_color(&style_ddlist_list, LV_STATE_DEFAULT, LV_PINETIME_GRAY); lv_style_set_bg_color(&style_ddlist_list, LV_STATE_DEFAULT, LV_COLOR_MAKE(0xb0, 0xb0, 0xb0));
lv_style_set_pad_all(&style_ddlist_list, LV_STATE_DEFAULT, 20);
style_init_reset(&style_ddlist_selected); style_init_reset(&style_ddlist_selected);
lv_style_set_bg_opa(&style_ddlist_selected, LV_STATE_DEFAULT, LV_OPA_COVER); lv_style_set_bg_opa(&style_ddlist_selected, LV_STATE_DEFAULT, LV_OPA_COVER);
@ -204,7 +200,7 @@ static void basic_init(void) {
style_init_reset(&style_sw_indic); style_init_reset(&style_sw_indic);
lv_style_set_bg_opa(&style_sw_indic, LV_STATE_DEFAULT, LV_OPA_COVER); lv_style_set_bg_opa(&style_sw_indic, LV_STATE_DEFAULT, LV_OPA_COVER);
lv_style_set_bg_color(&style_sw_indic, LV_STATE_DEFAULT, LV_COLOR_GREEN); lv_style_set_bg_color(&style_sw_indic, LV_STATE_DEFAULT, LV_COLOR_MAKE(0x0, 0xb0, 0x0));
style_init_reset(&style_sw_knob); style_init_reset(&style_sw_knob);
lv_style_set_bg_opa(&style_sw_knob, LV_STATE_DEFAULT, LV_OPA_COVER); lv_style_set_bg_opa(&style_sw_knob, LV_STATE_DEFAULT, LV_OPA_COVER);
@ -237,7 +233,7 @@ static void basic_init(void) {
lv_style_set_line_rounded(&style_arc_indic, LV_STATE_DEFAULT, true); lv_style_set_line_rounded(&style_arc_indic, LV_STATE_DEFAULT, true);
style_init_reset(&style_arc_bg); style_init_reset(&style_arc_bg);
lv_style_set_line_color(&style_arc_bg, LV_STATE_DEFAULT, LV_PINETIME_GRAY); lv_style_set_line_color(&style_arc_bg, LV_STATE_DEFAULT, LV_COLOR_MAKE(0xb0, 0xb0, 0xb0));
lv_style_set_line_width(&style_arc_bg, LV_STATE_DEFAULT, LV_DPX(25)); lv_style_set_line_width(&style_arc_bg, LV_STATE_DEFAULT, LV_DPX(25));
lv_style_set_line_rounded(&style_arc_bg, LV_STATE_DEFAULT, true); lv_style_set_line_rounded(&style_arc_bg, LV_STATE_DEFAULT, true);
lv_style_set_pad_all(&style_arc_bg, LV_STATE_DEFAULT, LV_DPX(5)); lv_style_set_pad_all(&style_arc_bg, LV_STATE_DEFAULT, LV_DPX(5));
@ -245,7 +241,7 @@ static void basic_init(void) {
lv_style_reset(&style_arc_knob); lv_style_reset(&style_arc_knob);
lv_style_set_radius(&style_arc_knob, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); lv_style_set_radius(&style_arc_knob, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
lv_style_set_bg_opa(&style_arc_knob, LV_STATE_DEFAULT, LV_OPA_COVER); lv_style_set_bg_opa(&style_arc_knob, LV_STATE_DEFAULT, LV_OPA_COVER);
lv_style_set_bg_color(&style_arc_knob, LV_STATE_DEFAULT, LV_PINETIME_LIGHT_GRAY); lv_style_set_bg_color(&style_arc_knob, LV_STATE_DEFAULT, LV_COLOR_WHITE);
lv_style_set_pad_all(&style_arc_knob, LV_STATE_DEFAULT, LV_DPX(5)); lv_style_set_pad_all(&style_arc_knob, LV_STATE_DEFAULT, LV_DPX(5));
style_init_reset(&style_table_cell); style_init_reset(&style_table_cell);
@ -479,13 +475,11 @@ static void theme_apply(lv_obj_t* obj, lv_theme_style_t name) {
lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_MAIN); lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_MAIN);
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_MAIN); list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_MAIN);
_lv_style_list_add_style(list, &style_btn); _lv_style_list_add_style(list, &style_btn);
_lv_style_list_add_style(list, &style_pad);
lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_LIST); lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_LIST);
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_LIST); list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_LIST);
_lv_style_list_add_style(list, &style_box); _lv_style_list_add_style(list, &style_box);
_lv_style_list_add_style(list, &style_ddlist_list); _lv_style_list_add_style(list, &style_ddlist_list);
_lv_style_list_add_style(list, &style_pad);
lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_SELECTED); lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_SELECTED);
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_SELECTED); list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_SELECTED);

View File

@ -23,7 +23,7 @@ extern "C" {
#define LV_PINETIME_LIGHT lv_color_hex(0xf3f8fe) #define LV_PINETIME_LIGHT lv_color_hex(0xf3f8fe)
#define LV_PINETIME_GRAY lv_color_hex(0x8a8a8a) #define LV_PINETIME_GRAY lv_color_hex(0x8a8a8a)
#define LV_PINETIME_LIGHT_GRAY lv_color_hex(0xc4c4c4) #define LV_PINETIME_LIGHT_GRAY lv_color_hex(0xc4c4c4)
#define LV_PINETIME_BLUE lv_color_hex(0x2f3540) #define LV_PINETIME_BLUE lv_color_hex(0x5d697e)
#define LV_PINETIME_GREEN lv_color_hex(0x4cb242) #define LV_PINETIME_GREEN lv_color_hex(0x4cb242)
#define LV_PINETIME_RED lv_color_hex(0xd51732) #define LV_PINETIME_RED lv_color_hex(0xd51732)

View File

@ -40,7 +40,7 @@ Alarm::Alarm(DisplayApp* app,
time = lv_label_create(lv_scr_act(), nullptr); time = lv_label_create(lv_scr_act(), nullptr);
lv_obj_set_style_local_text_font(time, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_76); lv_obj_set_style_local_text_font(time, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_76);
lv_obj_set_style_local_text_color(time, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY); lv_obj_set_style_local_text_color(time, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0xb0, 0xb0, 0xb0));
alarmHours = alarmController.Hours(); alarmHours = alarmController.Hours();
alarmMinutes = alarmController.Minutes(); alarmMinutes = alarmController.Minutes();
@ -50,7 +50,7 @@ Alarm::Alarm(DisplayApp* app,
lblampm = lv_label_create(lv_scr_act(), nullptr); lblampm = lv_label_create(lv_scr_act(), nullptr);
lv_obj_set_style_local_text_font(lblampm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20); lv_obj_set_style_local_text_font(lblampm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20);
lv_obj_set_style_local_text_color(lblampm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY); lv_obj_set_style_local_text_color(lblampm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0xb0, 0xb0, 0xb0));
lv_label_set_text_static(lblampm, " "); lv_label_set_text_static(lblampm, " ");
lv_label_set_align(lblampm, LV_LABEL_ALIGN_CENTER); lv_label_set_align(lblampm, LV_LABEL_ALIGN_CENTER);
lv_obj_align(lblampm, lv_scr_act(), LV_ALIGN_CENTER, 0, 30); lv_obj_align(lblampm, lv_scr_act(), LV_ALIGN_CENTER, 0, 30);
@ -303,7 +303,7 @@ void Alarm::ShowInfo() {
lv_label_set_text_fmt( lv_label_set_text_fmt(
txtMessage, "Time to\nalarm:\n%2lu Days\n%2lu Hours\n%2lu Minutes\n%2lu Seconds", daysToAlarm, hrsToAlarm, minToAlarm, secToAlarm); txtMessage, "Time to\nalarm:\n%2lu Days\n%2lu Hours\n%2lu Minutes\n%2lu Seconds", daysToAlarm, hrsToAlarm, minToAlarm, secToAlarm);
} else { } else {
lv_label_set_text(txtMessage, "Alarm\nis not\nset."); lv_label_set_text_static(txtMessage, "Alarm\nis not\nset.");
} }
} }
@ -317,13 +317,13 @@ void Alarm::SetRecurButtonState() {
using Pinetime::Controllers::AlarmController; using Pinetime::Controllers::AlarmController;
switch (alarmController.Recurrence()) { switch (alarmController.Recurrence()) {
case AlarmController::RecurType::None: case AlarmController::RecurType::None:
lv_label_set_text(txtRecur, "ONCE"); lv_label_set_text_static(txtRecur, "ONCE");
break; break;
case AlarmController::RecurType::Daily: case AlarmController::RecurType::Daily:
lv_label_set_text(txtRecur, "DAILY"); lv_label_set_text_static(txtRecur, "DAILY");
break; break;
case AlarmController::RecurType::Weekdays: case AlarmController::RecurType::Weekdays:
lv_label_set_text(txtRecur, "MON-FRI"); lv_label_set_text_static(txtRecur, "MON-FRI");
} }
} }

View File

@ -1,23 +1,34 @@
#include "displayapp/screens/BatteryIcon.h" #include "displayapp/screens/BatteryIcon.h"
#include <cstdint> #include <cstdint>
#include "displayapp/screens/Symbols.h" #include "displayapp/screens/Symbols.h"
#include "displayapp/icons/battery/batteryicon.c"
using namespace Pinetime::Applications::Screens; using namespace Pinetime::Applications::Screens;
const char* BatteryIcon::GetBatteryIcon(uint8_t batteryPercent) { void BatteryIcon::Create(lv_obj_t* parent) {
if (batteryPercent > 87) batteryImg = lv_img_create(parent, nullptr);
return Symbols::batteryFull; lv_img_set_src(batteryImg, &batteryicon);
if (batteryPercent > 62) lv_obj_set_style_local_image_recolor(batteryImg, LV_IMG_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK);
return Symbols::batteryThreeQuarter;
if (batteryPercent > 37) batteryJuice = lv_obj_create(batteryImg, nullptr);
return Symbols::batteryHalf; lv_obj_set_width(batteryJuice, 8);
if (batteryPercent > 12) lv_obj_align(batteryJuice, nullptr, LV_ALIGN_IN_BOTTOM_RIGHT, -2, -2);
return Symbols::batteryOneQuarter; lv_obj_set_style_local_radius(batteryJuice, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, 0);
return Symbols::batteryEmpty;
} }
const char* BatteryIcon::GetUnknownIcon() { lv_obj_t* BatteryIcon::GetObject() {
return Symbols::batteryEmpty; return batteryImg;
}
void BatteryIcon::SetBatteryPercentage(uint8_t percentage) {
lv_obj_set_height(batteryJuice, percentage * 14 / 100);
lv_obj_realign(batteryJuice);
}
void BatteryIcon::SetColor(lv_color_t color) {
lv_obj_set_style_local_image_recolor(batteryImg, LV_IMG_PART_MAIN, LV_STATE_DEFAULT, color);
lv_obj_set_style_local_image_recolor_opa(batteryImg, LV_IMG_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_COVER);
lv_obj_set_style_local_bg_color(batteryJuice, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, color);
} }
const char* BatteryIcon::GetPlugIcon(bool isCharging) { const char* BatteryIcon::GetPlugIcon(bool isCharging) {

View File

@ -1,15 +1,24 @@
#pragma once #pragma once
#include <cstdint> #include <cstdint>
#include <lvgl/src/lv_core/lv_obj.h>
namespace Pinetime { namespace Pinetime {
namespace Applications { namespace Applications {
namespace Screens { namespace Screens {
class BatteryIcon { class BatteryIcon {
public: public:
void Create(lv_obj_t* parent);
void SetColor(lv_color_t);
void SetBatteryPercentage(uint8_t percentage);
lv_obj_t* GetObject();
static const char* GetUnknownIcon(); static const char* GetUnknownIcon();
static const char* GetBatteryIcon(uint8_t batteryPercent);
static const char* GetPlugIcon(bool isCharging); static const char* GetPlugIcon(bool isCharging);
private:
lv_obj_t* batteryImg;
lv_obj_t* batteryJuice;
}; };
} }
} }
} }

View File

@ -33,17 +33,11 @@ BatteryInfo::BatteryInfo(Pinetime::Applications::DisplayApp* app, Pinetime::Cont
lv_obj_align(percent, nullptr, LV_ALIGN_CENTER, 0, -60); lv_obj_align(percent, nullptr, LV_ALIGN_CENTER, 0, -60);
voltage = lv_label_create(lv_scr_act(), nullptr); voltage = lv_label_create(lv_scr_act(), nullptr);
lv_obj_set_style_local_text_color(voltage, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0xC6A600)); lv_obj_set_style_local_text_color(voltage, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0xff, 0xb0, 0x0));
lv_label_set_text_fmt(voltage, "%1i.%02i volts", batteryVoltage / 1000, batteryVoltage % 1000 / 10); lv_label_set_text_fmt(voltage, "%1i.%02i volts", batteryVoltage / 1000, batteryVoltage % 1000 / 10);
lv_label_set_align(voltage, LV_LABEL_ALIGN_CENTER); lv_label_set_align(voltage, LV_LABEL_ALIGN_CENTER);
lv_obj_align(voltage, nullptr, LV_ALIGN_CENTER, 0, 95); lv_obj_align(voltage, nullptr, LV_ALIGN_CENTER, 0, 95);
lv_obj_t* backgroundLabel = lv_label_create(lv_scr_act(), nullptr);
lv_label_set_long_mode(backgroundLabel, LV_LABEL_LONG_CROP);
lv_obj_set_size(backgroundLabel, 240, 240);
lv_obj_set_pos(backgroundLabel, 0, 0);
lv_label_set_text_static(backgroundLabel, "");
taskRefresh = lv_task_create(RefreshTaskCallback, 5000, LV_TASK_PRIO_MID, this); taskRefresh = lv_task_create(RefreshTaskCallback, 5000, LV_TASK_PRIO_MID, this);
Refresh(); Refresh();
} }
@ -68,7 +62,7 @@ void BatteryInfo::Refresh() {
lv_obj_set_style_local_bg_color(charging_bar, LV_BAR_PART_INDIC, LV_STATE_DEFAULT, LV_COLOR_YELLOW); lv_obj_set_style_local_bg_color(charging_bar, LV_BAR_PART_INDIC, LV_STATE_DEFAULT, LV_COLOR_YELLOW);
lv_label_set_text_static(status, "Battery low"); lv_label_set_text_static(status, "Battery low");
} else { } else {
lv_obj_set_style_local_bg_color(charging_bar, LV_BAR_PART_INDIC, LV_STATE_DEFAULT, LV_COLOR_GREEN); lv_obj_set_style_local_bg_color(charging_bar, LV_BAR_PART_INDIC, LV_STATE_DEFAULT, LV_COLOR_MAKE(0x0, 0xb0, 0x0));
lv_label_set_text_static(status, "Discharging"); lv_label_set_text_static(status, "Discharging");
} }

View File

@ -2,11 +2,7 @@
#include "displayapp/screens/Symbols.h" #include "displayapp/screens/Symbols.h"
using namespace Pinetime::Applications::Screens; using namespace Pinetime::Applications::Screens;
const char* BleIcon::GetIcon(bool isRadioEnabled, bool isConnected) { const char* BleIcon::GetIcon(bool isConnected) {
if(!isRadioEnabled) {
return Symbols::airplane;
}
if (isConnected) { if (isConnected) {
return Symbols::bluetooth; return Symbols::bluetooth;
} }

View File

@ -7,7 +7,7 @@ namespace Pinetime {
namespace Screens { namespace Screens {
class BleIcon { class BleIcon {
public: public:
static const char* GetIcon(bool isRadioEnabled, bool isConnected); static const char* GetIcon(bool isConnected);
}; };
} }
} }

View File

@ -11,7 +11,7 @@
#include "displayapp/screens/WatchFaceDigital.h" #include "displayapp/screens/WatchFaceDigital.h"
#include "displayapp/screens/WatchFaceTerminal.h" #include "displayapp/screens/WatchFaceTerminal.h"
#include "displayapp/screens/WatchFaceAnalog.h" #include "displayapp/screens/WatchFaceAnalog.h"
#include "displayapp/screens/PineTimeStyle.h" #include "displayapp/screens/WatchFacePineTimeStyle.h"
using namespace Pinetime::Applications::Screens; using namespace Pinetime::Applications::Screens;
@ -40,7 +40,7 @@ Clock::Clock(DisplayApp* app,
return WatchFaceAnalogScreen(); return WatchFaceAnalogScreen();
break; break;
case 2: case 2:
return PineTimeStyleScreen(); return WatchFacePineTimeStyleScreen();
break; break;
case 3: case 3:
return WatchFaceTerminalScreen(); return WatchFaceTerminalScreen();
@ -79,8 +79,8 @@ std::unique_ptr<Screen> Clock::WatchFaceAnalogScreen() {
app, dateTimeController, batteryController, bleController, notificatioManager, settingsController); app, dateTimeController, batteryController, bleController, notificatioManager, settingsController);
} }
std::unique_ptr<Screen> Clock::PineTimeStyleScreen() { std::unique_ptr<Screen> Clock::WatchFacePineTimeStyleScreen() {
return std::make_unique<Screens::PineTimeStyle>( return std::make_unique<Screens::WatchFacePineTimeStyle>(
app, dateTimeController, batteryController, bleController, notificatioManager, settingsController, motionController); app, dateTimeController, batteryController, bleController, notificatioManager, settingsController, motionController);
} }

View File

@ -46,7 +46,7 @@ namespace Pinetime {
std::unique_ptr<Screen> screen; std::unique_ptr<Screen> screen;
std::unique_ptr<Screen> WatchFaceDigitalScreen(); std::unique_ptr<Screen> WatchFaceDigitalScreen();
std::unique_ptr<Screen> WatchFaceAnalogScreen(); std::unique_ptr<Screen> WatchFaceAnalogScreen();
std::unique_ptr<Screen> PineTimeStyleScreen(); std::unique_ptr<Screen> WatchFacePineTimeStyleScreen();
std::unique_ptr<Screen> WatchFaceTerminalScreen(); std::unique_ptr<Screen> WatchFaceTerminalScreen();
}; };
} }

View File

@ -8,26 +8,19 @@ using namespace Pinetime::Applications::Screens;
FirmwareUpdate::FirmwareUpdate(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::Ble& bleController) FirmwareUpdate::FirmwareUpdate(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::Ble& bleController)
: Screen(app), bleController {bleController} { : Screen(app), bleController {bleController} {
lv_obj_t* backgroundLabel = lv_label_create(lv_scr_act(), nullptr);
lv_label_set_long_mode(backgroundLabel, LV_LABEL_LONG_CROP);
lv_obj_set_size(backgroundLabel, 240, 240);
lv_obj_set_pos(backgroundLabel, 0, 0);
lv_label_set_text_static(backgroundLabel, "");
titleLabel = lv_label_create(lv_scr_act(), nullptr); titleLabel = lv_label_create(lv_scr_act(), nullptr);
lv_label_set_text(titleLabel, "Firmware update"); lv_label_set_text_static(titleLabel, "Firmware update");
lv_obj_set_auto_realign(titleLabel, true);
lv_obj_align(titleLabel, nullptr, LV_ALIGN_IN_TOP_MID, 0, 50); lv_obj_align(titleLabel, nullptr, LV_ALIGN_IN_TOP_MID, 0, 50);
bar1 = lv_bar_create(lv_scr_act(), nullptr); bar1 = lv_bar_create(lv_scr_act(), nullptr);
lv_obj_set_size(bar1, 200, 30); lv_obj_set_size(bar1, 200, 30);
lv_obj_align(bar1, nullptr, LV_ALIGN_CENTER, 0, 0); lv_obj_align(bar1, nullptr, LV_ALIGN_CENTER, 0, 0);
lv_bar_set_anim_time(bar1, 10); lv_bar_set_range(bar1, 0, 1000);
lv_bar_set_range(bar1, 0, 100);
lv_bar_set_value(bar1, 0, LV_ANIM_OFF); lv_bar_set_value(bar1, 0, LV_ANIM_OFF);
percentLabel = lv_label_create(lv_scr_act(), nullptr); percentLabel = lv_label_create(lv_scr_act(), nullptr);
lv_label_set_text(percentLabel, "Waiting..."); lv_label_set_text_static(percentLabel, "Waiting...");
lv_label_set_recolor(percentLabel, true);
lv_obj_set_auto_realign(percentLabel, true); lv_obj_set_auto_realign(percentLabel, true);
lv_obj_align(percentLabel, bar1, LV_ALIGN_OUT_TOP_MID, 0, 60); lv_obj_align(percentLabel, bar1, LV_ALIGN_OUT_TOP_MID, 0, 60);
taskRefresh = lv_task_create(RefreshTaskCallback, LV_DISP_DEF_REFR_PERIOD, LV_TASK_PRIO_MID, this); taskRefresh = lv_task_create(RefreshTaskCallback, LV_DISP_DEF_REFR_PERIOD, LV_TASK_PRIO_MID, this);
@ -55,8 +48,9 @@ void FirmwareUpdate::Refresh() {
} }
break; break;
case Pinetime::Controllers::Ble::FirmwareUpdateStates::Running: case Pinetime::Controllers::Ble::FirmwareUpdateStates::Running:
if (state != States::Running) if (state != States::Running) {
state = States::Running; state = States::Running;
}
DisplayProgression(); DisplayProgression();
break; break;
case Pinetime::Controllers::Ble::FirmwareUpdateStates::Validated: case Pinetime::Controllers::Ble::FirmwareUpdateStates::Validated:
@ -78,23 +72,21 @@ void FirmwareUpdate::Refresh() {
} }
void FirmwareUpdate::DisplayProgression() const { void FirmwareUpdate::DisplayProgression() const {
float current = bleController.FirmwareUpdateCurrentBytes() / 1024.0f; const uint32_t current = bleController.FirmwareUpdateCurrentBytes();
float total = bleController.FirmwareUpdateTotalBytes() / 1024.0f; const uint32_t total = bleController.FirmwareUpdateTotalBytes();
int16_t pc = (current / total) * 100.0f; const int16_t permille = current / (total / 1000);
sprintf(percentStr, "%d %%", pc);
lv_label_set_text(percentLabel, percentStr);
lv_bar_set_value(bar1, pc, LV_ANIM_OFF); lv_label_set_text_fmt(percentLabel, "%d %%", permille / 10);
lv_bar_set_value(bar1, permille, LV_ANIM_OFF);
} }
void FirmwareUpdate::UpdateValidated() { void FirmwareUpdate::UpdateValidated() {
lv_label_set_recolor(percentLabel, true); lv_label_set_text_static(percentLabel, "#00ff00 Image Ok!#");
lv_label_set_text(percentLabel, "#00ff00 Image Ok!#");
} }
void FirmwareUpdate::UpdateError() { void FirmwareUpdate::UpdateError() {
lv_label_set_recolor(percentLabel, true); lv_label_set_text_static(percentLabel, "#ff0000 Error!#");
lv_label_set_text(percentLabel, "#ff0000 Error!#");
startTime = xTaskGetTickCount(); startTime = xTaskGetTickCount();
} }

View File

@ -24,7 +24,6 @@ namespace Pinetime {
lv_obj_t* bar1; lv_obj_t* bar1;
lv_obj_t* percentLabel; lv_obj_t* percentLabel;
lv_obj_t* titleLabel; lv_obj_t* titleLabel;
mutable char percentStr[10];
States state = States::Idle; States state = States::Idle;

View File

@ -7,11 +7,10 @@
using namespace Pinetime::Applications::Screens; using namespace Pinetime::Applications::Screens;
namespace { namespace {
static void ButtonEventHandler(lv_obj_t* obj, lv_event_t event) { void ButtonEventHandler(lv_obj_t* obj, lv_event_t event) {
FirmwareValidation* screen = static_cast<FirmwareValidation*>(obj->user_data); auto* screen = static_cast<FirmwareValidation*>(obj->user_data);
screen->OnButtonEvent(obj, event); screen->OnButtonEvent(obj, event);
} }
} }
FirmwareValidation::FirmwareValidation(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::FirmwareValidator& validator) FirmwareValidation::FirmwareValidation(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::FirmwareValidator& validator)
@ -33,16 +32,16 @@ FirmwareValidation::FirmwareValidation(Pinetime::Applications::DisplayApp* app,
lv_obj_set_width(labelIsValidated, 240); lv_obj_set_width(labelIsValidated, 240);
if (validator.IsValidated()) if (validator.IsValidated())
lv_label_set_text(labelIsValidated, "You have already\n#00ff00 validated# this firmware#"); lv_label_set_text_static(labelIsValidated, "You have already\n#00ff00 validated# this firmware#");
else { else {
lv_label_set_text(labelIsValidated, "Please #00ff00 Validate# this version or\n#ff0000 Reset# to rollback to the previous version."); lv_label_set_text_static(labelIsValidated, "Please #00ff00 Validate# this version or\n#ff0000 Reset# to rollback to the previous version.");
buttonValidate = lv_btn_create(lv_scr_act(), nullptr); buttonValidate = lv_btn_create(lv_scr_act(), nullptr);
buttonValidate->user_data = this; buttonValidate->user_data = this;
lv_obj_set_size(buttonValidate, 115, 50); lv_obj_set_size(buttonValidate, 115, 50);
lv_obj_align(buttonValidate, NULL, LV_ALIGN_IN_BOTTOM_LEFT, 0, 0); lv_obj_align(buttonValidate, NULL, LV_ALIGN_IN_BOTTOM_LEFT, 0, 0);
lv_obj_set_event_cb(buttonValidate, ButtonEventHandler); lv_obj_set_event_cb(buttonValidate, ButtonEventHandler);
lv_obj_set_style_local_bg_color(buttonValidate, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x009900)); lv_obj_set_style_local_bg_color(buttonValidate, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0x0, 0xb0, 0x0));
labelButtonValidate = lv_label_create(buttonValidate, nullptr); labelButtonValidate = lv_label_create(buttonValidate, nullptr);
lv_label_set_text_static(labelButtonValidate, "Validate"); lv_label_set_text_static(labelButtonValidate, "Validate");
@ -51,7 +50,7 @@ FirmwareValidation::FirmwareValidation(Pinetime::Applications::DisplayApp* app,
buttonReset->user_data = this; buttonReset->user_data = this;
lv_obj_set_size(buttonReset, 115, 50); lv_obj_set_size(buttonReset, 115, 50);
lv_obj_align(buttonReset, nullptr, LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0); lv_obj_align(buttonReset, nullptr, LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0);
lv_obj_set_style_local_bg_color(buttonReset, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x990000)); lv_obj_set_style_local_bg_color(buttonReset, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0xb0, 0x0, 0x0));
lv_obj_set_event_cb(buttonReset, ButtonEventHandler); lv_obj_set_event_cb(buttonReset, ButtonEventHandler);
labelButtonReset = lv_label_create(buttonReset, nullptr); labelButtonReset = lv_label_create(buttonReset, nullptr);

View File

@ -45,7 +45,7 @@ FlashLight::FlashLight(Pinetime::Applications::DisplayApp* app,
lv_label_set_long_mode(backgroundAction, LV_LABEL_LONG_CROP); lv_label_set_long_mode(backgroundAction, LV_LABEL_LONG_CROP);
lv_obj_set_size(backgroundAction, 240, 240); lv_obj_set_size(backgroundAction, 240, 240);
lv_obj_set_pos(backgroundAction, 0, 0); lv_obj_set_pos(backgroundAction, 0, 0);
lv_label_set_text(backgroundAction, ""); lv_label_set_text_static(backgroundAction, "");
lv_obj_set_click(backgroundAction, true); lv_obj_set_click(backgroundAction, true);
backgroundAction->user_data = this; backgroundAction->user_data = this;
lv_obj_set_event_cb(backgroundAction, event_handler); lv_obj_set_event_cb(backgroundAction, event_handler);
@ -63,11 +63,11 @@ FlashLight::~FlashLight() {
void FlashLight::SetColors() { void FlashLight::SetColors() {
if (isOn) { if (isOn) {
lv_obj_set_style_local_bg_color(lv_scr_act(), LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE); lv_obj_set_style_local_bg_color(lv_scr_act(), LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE);
lv_obj_set_style_local_text_color(flashLight, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY); lv_obj_set_style_local_text_color(flashLight, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0xb0, 0xb0, 0xb0));
for (auto & i : indicators) { for (auto & i : indicators) {
lv_obj_set_style_local_bg_color(i, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY); lv_obj_set_style_local_bg_color(i, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0xb0, 0xb0, 0xb0));
lv_obj_set_style_local_bg_color(i, LV_OBJ_PART_MAIN, LV_STATE_DISABLED, LV_COLOR_WHITE); lv_obj_set_style_local_bg_color(i, LV_OBJ_PART_MAIN, LV_STATE_DISABLED, LV_COLOR_WHITE);
lv_obj_set_style_local_border_color(i, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY); lv_obj_set_style_local_border_color(i, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0xb0, 0xb0, 0xb0));
} }
} else { } else {
lv_obj_set_style_local_bg_color(lv_scr_act(), LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); lv_obj_set_style_local_bg_color(lv_scr_act(), LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK);

View File

@ -21,8 +21,8 @@ namespace {
return ""; return "";
} }
static void btnStartStopEventHandler(lv_obj_t* obj, lv_event_t event) { void btnStartStopEventHandler(lv_obj_t* obj, lv_event_t event) {
HeartRate* screen = static_cast<HeartRate*>(obj->user_data); auto* screen = static_cast<HeartRate*>(obj->user_data);
screen->OnStartStopEvent(event); screen->OnStartStopEvent(event);
} }
} }
@ -37,20 +37,20 @@ HeartRate::HeartRate(Pinetime::Applications::DisplayApp* app,
lv_obj_set_style_local_text_font(label_hr, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_76); lv_obj_set_style_local_text_font(label_hr, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_76);
if (isHrRunning) if (isHrRunning)
lv_obj_set_style_local_text_color(label_hr, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GREEN); lv_obj_set_style_local_text_color(label_hr, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0x0, 0xb0, 0x0));
else else
lv_obj_set_style_local_text_color(label_hr, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY); lv_obj_set_style_local_text_color(label_hr, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0xb0, 0xb0, 0xb0));
lv_label_set_text(label_hr, "000"); lv_label_set_text_static(label_hr, "000");
lv_obj_align(label_hr, nullptr, LV_ALIGN_CENTER, 0, -40); lv_obj_align(label_hr, nullptr, LV_ALIGN_CENTER, 0, -40);
label_bpm = lv_label_create(lv_scr_act(), nullptr); label_bpm = lv_label_create(lv_scr_act(), nullptr);
lv_label_set_text(label_bpm, "Heart rate BPM"); lv_label_set_text_static(label_bpm, "Heart rate BPM");
lv_obj_align(label_bpm, label_hr, LV_ALIGN_OUT_TOP_MID, 0, -20); lv_obj_align(label_bpm, label_hr, LV_ALIGN_OUT_TOP_MID, 0, -20);
label_status = lv_label_create(lv_scr_act(), nullptr); label_status = lv_label_create(lv_scr_act(), nullptr);
lv_obj_set_style_local_text_color(label_status, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x222222)); lv_obj_set_style_local_text_color(label_status, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY);
lv_label_set_text(label_status, ToString(Pinetime::Controllers::HeartRateController::States::NotEnoughData)); lv_label_set_text_static(label_status, ToString(Pinetime::Controllers::HeartRateController::States::NotEnoughData));
lv_obj_align(label_status, label_hr, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); lv_obj_align(label_status, label_hr, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
@ -81,13 +81,13 @@ void HeartRate::Refresh() {
case Controllers::HeartRateController::States::NoTouch: case Controllers::HeartRateController::States::NoTouch:
case Controllers::HeartRateController::States::NotEnoughData: case Controllers::HeartRateController::States::NotEnoughData:
// case Controllers::HeartRateController::States::Stopped: // case Controllers::HeartRateController::States::Stopped:
lv_label_set_text(label_hr, "000"); lv_label_set_text_static(label_hr, "000");
break; break;
default: default:
lv_label_set_text_fmt(label_hr, "%03d", heartRateController.HeartRate()); lv_label_set_text_fmt(label_hr, "%03d", heartRateController.HeartRate());
} }
lv_label_set_text(label_status, ToString(state)); lv_label_set_text_static(label_status, ToString(state));
lv_obj_align(label_status, label_hr, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); lv_obj_align(label_status, label_hr, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
} }
@ -97,19 +97,19 @@ void HeartRate::OnStartStopEvent(lv_event_t event) {
heartRateController.Start(); heartRateController.Start();
UpdateStartStopButton(heartRateController.State() != Controllers::HeartRateController::States::Stopped); UpdateStartStopButton(heartRateController.State() != Controllers::HeartRateController::States::Stopped);
systemTask.PushMessage(Pinetime::System::Messages::DisableSleeping); systemTask.PushMessage(Pinetime::System::Messages::DisableSleeping);
lv_obj_set_style_local_text_color(label_hr, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GREEN); lv_obj_set_style_local_text_color(label_hr, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0x0, 0xb0, 0x0));
} else { } else {
heartRateController.Stop(); heartRateController.Stop();
UpdateStartStopButton(heartRateController.State() != Controllers::HeartRateController::States::Stopped); UpdateStartStopButton(heartRateController.State() != Controllers::HeartRateController::States::Stopped);
systemTask.PushMessage(Pinetime::System::Messages::EnableSleeping); systemTask.PushMessage(Pinetime::System::Messages::EnableSleeping);
lv_obj_set_style_local_text_color(label_hr, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY); lv_obj_set_style_local_text_color(label_hr, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0xb0, 0xb0, 0xb0));
} }
} }
} }
void HeartRate::UpdateStartStopButton(bool isRunning) { void HeartRate::UpdateStartStopButton(bool isRunning) {
if (isRunning) if (isRunning)
lv_label_set_text(label_startStop, "Stop"); lv_label_set_text_static(label_startStop, "Stop");
else else
lv_label_set_text(label_startStop, "Start"); lv_label_set_text_static(label_startStop, "Start");
} }

View File

@ -26,7 +26,7 @@ bool InfiniPaint::OnTouchEvent(Pinetime::Applications::TouchEvents event) {
selectColor = LV_COLOR_MAGENTA; selectColor = LV_COLOR_MAGENTA;
break; break;
case 1: case 1:
selectColor = LV_COLOR_GREEN; selectColor = LV_COLOR_MAKE(0x0, 0xb0, 0x0);
break; break;
case 2: case 2:
selectColor = LV_COLOR_WHITE; selectColor = LV_COLOR_WHITE;

View File

@ -27,7 +27,7 @@ Label::Label(uint8_t screenID, uint8_t numScreens, Pinetime::Applications::Displ
pageIndicator = lv_line_create(lv_scr_act(), NULL); pageIndicator = lv_line_create(lv_scr_act(), NULL);
lv_obj_set_style_local_line_width(pageIndicator, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, 3); lv_obj_set_style_local_line_width(pageIndicator, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, 3);
lv_obj_set_style_local_line_color(pageIndicator, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY); lv_obj_set_style_local_line_color(pageIndicator, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0xb0, 0xb0, 0xb0));
lv_obj_set_style_local_line_rounded(pageIndicator, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, true); lv_obj_set_style_local_line_rounded(pageIndicator, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, true);
lv_line_set_points(pageIndicator, pageIndicatorPoints, 2); lv_line_set_points(pageIndicator, pageIndicatorPoints, 2);
} }

View File

@ -5,11 +5,10 @@
using namespace Pinetime::Applications::Screens; using namespace Pinetime::Applications::Screens;
namespace { namespace {
static void ButtonEventHandler(lv_obj_t* obj, lv_event_t event) { void ButtonEventHandler(lv_obj_t* obj, lv_event_t event) {
List* screen = static_cast<List*>(obj->user_data); auto* screen = static_cast<List*>(obj->user_data);
screen->OnButtonEvent(obj, event); screen->OnButtonEvent(obj, event);
} }
} }
List::List(uint8_t screenID, List::List(uint8_t screenID,
@ -45,7 +44,7 @@ List::List(uint8_t screenID,
pageIndicator = lv_line_create(lv_scr_act(), NULL); pageIndicator = lv_line_create(lv_scr_act(), NULL);
lv_obj_set_style_local_line_width(pageIndicator, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, 3); lv_obj_set_style_local_line_width(pageIndicator, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, 3);
lv_obj_set_style_local_line_color(pageIndicator, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY); lv_obj_set_style_local_line_color(pageIndicator, LV_LINE_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_MAKE(0xb0, 0xb0, 0xb0));
lv_line_set_points(pageIndicator, pageIndicatorPoints, 2); lv_line_set_points(pageIndicator, pageIndicatorPoints, 2);
} }
@ -68,7 +67,7 @@ List::List(uint8_t screenID,
if (applications[i].application != Apps::None) { if (applications[i].application != Apps::None) {
itemApps[i] = lv_btn_create(container1, nullptr); itemApps[i] = lv_btn_create(container1, nullptr);
lv_obj_set_style_local_bg_opa(itemApps[i], LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_20); lv_obj_set_style_local_bg_opa(itemApps[i], LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_50);
lv_obj_set_style_local_radius(itemApps[i], LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 57); lv_obj_set_style_local_radius(itemApps[i], LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 57);
lv_obj_set_style_local_bg_color(itemApps[i], LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_AQUA); lv_obj_set_style_local_bg_color(itemApps[i], LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_AQUA);
@ -86,12 +85,6 @@ List::List(uint8_t screenID,
lv_label_set_text_fmt(labelBt, " %s", applications[i].name); lv_label_set_text_fmt(labelBt, " %s", applications[i].name);
} }
} }
lv_obj_t* backgroundLabel = lv_label_create(lv_scr_act(), nullptr);
lv_label_set_long_mode(backgroundLabel, LV_LABEL_LONG_CROP);
lv_obj_set_size(backgroundLabel, LV_HOR_RES, LV_VER_RES);
lv_obj_set_pos(backgroundLabel, 0, 0);
lv_label_set_text_static(backgroundLabel, "");
} }
List::~List() { List::~List() {

Some files were not shown because too many files have changed in this diff Show More