summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--README.md3
-rw-r--r--doc/gettingStarted/dfuFile.pngbin0 -> 17987 bytes
-rw-r--r--doc/gettingStarted/gadgetbridge0.jpgbin0 -> 37874 bytes
-rw-r--r--doc/gettingStarted/gadgetbridge1.jpgbin0 -> 43398 bytes
-rw-r--r--doc/gettingStarted/gadgetbridge2.jpgbin0 -> 29721 bytes
-rw-r--r--doc/gettingStarted/gadgetbridge3.jpgbin0 -> 42135 bytes
-rw-r--r--doc/gettingStarted/gadgetbridge4.jpgbin0 -> 30844 bytes
-rw-r--r--doc/gettingStarted/gadgetbridge5.jpgbin0 -> 33515 bytes
-rw-r--r--doc/gettingStarted/gettingStarted.md101
-rw-r--r--doc/gettingStarted/imageFile.pngbin0 -> 37523 bytes
-rw-r--r--doc/gettingStarted/nrfconnect0.jpgbin0 -> 33306 bytes
-rw-r--r--doc/gettingStarted/nrfconnect1.jpgbin0 -> 76803 bytes
-rw-r--r--doc/gettingStarted/nrfconnect2.jpgbin0 -> 50510 bytes
-rw-r--r--doc/gettingStarted/nrfconnect3.jpgbin0 -> 34187 bytes
-rw-r--r--doc/gettingStarted/nrfconnectcts0.jpgbin0 -> 42101 bytes
-rw-r--r--doc/gettingStarted/nrfconnectcts1.jpgbin0 -> 40193 bytes
-rw-r--r--src/components/battery/BatteryController.cpp3
-rw-r--r--src/components/battery/BatteryController.h2
-rw-r--r--src/components/ble/AlertNotificationClient.cpp10
-rw-r--r--src/components/ble/AlertNotificationClient.h14
-rw-r--r--src/components/ble/AlertNotificationService.cpp13
-rw-r--r--src/components/ble/AlertNotificationService.h10
-rw-r--r--src/components/ble/BatteryInformationService.h4
-rw-r--r--src/components/ble/BleController.cpp2
-rw-r--r--src/components/ble/BleController.h3
-rw-r--r--src/components/ble/CurrentTimeClient.cpp3
-rw-r--r--src/components/ble/CurrentTimeClient.h10
-rw-r--r--src/components/ble/CurrentTimeService.h4
-rw-r--r--src/components/ble/DeviceInformationService.h9
-rw-r--r--src/components/ble/DfuService.cpp4
-rw-r--r--src/components/ble/DfuService.h4
-rw-r--r--src/components/ble/ImmediateAlertService.cpp6
-rw-r--r--src/components/ble/ImmediateAlertService.h4
-rw-r--r--src/components/ble/MusicService.cpp2
-rw-r--r--src/components/ble/MusicService.h7
-rw-r--r--src/components/ble/NimbleController.cpp24
-rw-r--r--src/components/ble/NimbleController.h23
-rw-r--r--src/components/ble/NotificationManager.cpp2
-rw-r--r--src/components/ble/NotificationManager.h4
-rw-r--r--src/components/ble/ServiceDiscovery.cpp4
-rw-r--r--src/components/ble/ServiceDiscovery.h6
-rw-r--r--src/components/brightness/BrightnessController.cpp2
-rw-r--r--src/components/firmwarevalidator/FirmwareValidator.cpp6
-rw-r--r--src/components/gfx/Gfx.cpp5
-rw-r--r--src/components/gfx/Gfx.h8
-rw-r--r--src/displayapp/DisplayApp.cpp29
-rw-r--r--src/displayapp/DisplayApp.h36
-rw-r--r--src/displayapp/LittleVgl.cpp14
-rw-r--r--src/displayapp/LittleVgl.h11
-rw-r--r--src/displayapp/fonts/Readme.md2
-rw-r--r--src/displayapp/fonts/jetbrains_mono_bold_20.c833
-rw-r--r--src/displayapp/screens/ApplicationList.cpp9
-rw-r--r--src/displayapp/screens/ApplicationList.h7
-rw-r--r--src/displayapp/screens/BatteryIcon.cpp1
-rw-r--r--src/displayapp/screens/BatteryIcon.h2
-rw-r--r--src/displayapp/screens/Brightness.cpp2
-rw-r--r--src/displayapp/screens/Brightness.h5
-rw-r--r--src/displayapp/screens/Clock.cpp15
-rw-r--r--src/displayapp/screens/Clock.h20
-rw-r--r--src/displayapp/screens/DropDownDemo.cpp4
-rw-r--r--src/displayapp/screens/DropDownDemo.h6
-rw-r--r--src/displayapp/screens/FirmwareUpdate.cpp3
-rw-r--r--src/displayapp/screens/FirmwareUpdate.h11
-rw-r--r--src/displayapp/screens/FirmwareValidation.cpp8
-rw-r--r--src/displayapp/screens/FirmwareValidation.h5
-rw-r--r--src/displayapp/screens/Gauge.cpp1
-rw-r--r--src/displayapp/screens/Gauge.h4
-rw-r--r--src/displayapp/screens/InfiniPaint.cpp3
-rw-r--r--src/displayapp/screens/InfiniPaint.h23
-rw-r--r--src/displayapp/screens/Label.cpp1
-rw-r--r--src/displayapp/screens/Label.h1
-rw-r--r--src/displayapp/screens/Meter.cpp2
-rw-r--r--src/displayapp/screens/Meter.h6
-rw-r--r--src/displayapp/screens/Modal.cpp2
-rw-r--r--src/displayapp/screens/Modal.h7
-rw-r--r--src/displayapp/screens/Music.cpp8
-rw-r--r--src/displayapp/screens/Music.h20
-rw-r--r--src/displayapp/screens/Notifications.cpp4
-rw-r--r--src/displayapp/screens/Notifications.h9
-rw-r--r--src/displayapp/screens/ScreenList.h6
-rw-r--r--src/displayapp/screens/SystemInfo.cpp14
-rw-r--r--src/displayapp/screens/SystemInfo.h21
-rw-r--r--src/displayapp/screens/Tab.cpp67
-rw-r--r--src/displayapp/screens/Tab.h23
-rw-r--r--src/displayapp/screens/Tile.cpp8
-rw-r--r--src/displayapp/screens/Tile.h8
-rw-r--r--src/drivers/BufferProvider.h1
-rw-r--r--src/drivers/Cst816s.cpp7
-rw-r--r--src/drivers/Cst816s.h1
-rw-r--r--src/drivers/DebugPins.cpp2
-rw-r--r--src/drivers/InternalFlash.cpp2
-rw-r--r--src/drivers/Spi.cpp2
-rw-r--r--src/drivers/Spi.h6
-rw-r--r--src/drivers/SpiMaster.cpp6
-rw-r--r--src/drivers/SpiMaster.h10
-rw-r--r--src/drivers/SpiNorFlash.cpp2
-rw-r--r--src/drivers/SpiNorFlash.h1
-rw-r--r--src/drivers/St7789.cpp2
-rw-r--r--src/drivers/St7789.h1
-rw-r--r--src/drivers/TwiMaster.cpp6
-rw-r--r--src/drivers/TwiMaster.h4
-rw-r--r--src/drivers/Watchdog.cpp4
-rw-r--r--src/drivers/Watchdog.h1
-rw-r--r--src/logging/NrfLogger.cpp7
-rw-r--r--src/logging/NrfLogger.h3
-rw-r--r--src/main.cpp54
-rw-r--r--src/main.h1
-rw-r--r--src/systemtask/SystemTask.cpp44
-rw-r--r--src/systemtask/SystemTask.h20
110 files changed, 1086 insertions, 665 deletions
diff --git a/.gitignore b/.gitignore
index e1d954b..8d416f8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,7 @@ CMakeFiles/
**/CMakeCache.txt
cmake_install.cmake
Makefile
+build/
# Resulting binary files
*.a
diff --git a/README.md b/README.md
index 0608c9a..e1819d0 100644
--- a/README.md
+++ b/README.md
@@ -47,6 +47,9 @@ As of now, here is the list of achievements of this project:
## Documentation
+### Getting started
+ - [Flash, upgrade (OTA), time synchronization,...](doc/gettingStarted/gettingStarted.md)
+
### Develop
- [Generate the fonts and symbols](src/displayapp/fonts/Readme.md)
diff --git a/doc/gettingStarted/dfuFile.png b/doc/gettingStarted/dfuFile.png
new file mode 100644
index 0000000..f6d112e
--- /dev/null
+++ b/doc/gettingStarted/dfuFile.png
Binary files differ
diff --git a/doc/gettingStarted/gadgetbridge0.jpg b/doc/gettingStarted/gadgetbridge0.jpg
new file mode 100644
index 0000000..7ea2e3c
--- /dev/null
+++ b/doc/gettingStarted/gadgetbridge0.jpg
Binary files differ
diff --git a/doc/gettingStarted/gadgetbridge1.jpg b/doc/gettingStarted/gadgetbridge1.jpg
new file mode 100644
index 0000000..470b0b3
--- /dev/null
+++ b/doc/gettingStarted/gadgetbridge1.jpg
Binary files differ
diff --git a/doc/gettingStarted/gadgetbridge2.jpg b/doc/gettingStarted/gadgetbridge2.jpg
new file mode 100644
index 0000000..8f75b23
--- /dev/null
+++ b/doc/gettingStarted/gadgetbridge2.jpg
Binary files differ
diff --git a/doc/gettingStarted/gadgetbridge3.jpg b/doc/gettingStarted/gadgetbridge3.jpg
new file mode 100644
index 0000000..cfb83f5
--- /dev/null
+++ b/doc/gettingStarted/gadgetbridge3.jpg
Binary files differ
diff --git a/doc/gettingStarted/gadgetbridge4.jpg b/doc/gettingStarted/gadgetbridge4.jpg
new file mode 100644
index 0000000..e41aff0
--- /dev/null
+++ b/doc/gettingStarted/gadgetbridge4.jpg
Binary files differ
diff --git a/doc/gettingStarted/gadgetbridge5.jpg b/doc/gettingStarted/gadgetbridge5.jpg
new file mode 100644
index 0000000..1ef9f77
--- /dev/null
+++ b/doc/gettingStarted/gadgetbridge5.jpg
Binary files differ
diff --git a/doc/gettingStarted/gettingStarted.md b/doc/gettingStarted/gettingStarted.md
new file mode 100644
index 0000000..a3aa49a
--- /dev/null
+++ b/doc/gettingStarted/gettingStarted.md
@@ -0,0 +1,101 @@
+# Flash and upgrade InfiniTime
+If you just want to flash or upgrade InfiniTime on your PineTime, this page is for you!
+
+- [InfiniTime releases and versions](#infinitime-releases-and-versions)
+- [How to upgrade Over-The-Air (OTA)](#how-to-upgrade-over-the-air-ota)
+ - [Using Gadgetbridge](#using-gadgetbridge)
+ - [Using NRFConnect](#Using-nrfconnect)
+- [How to flash InfiniTime using the SWD interface](#how-to-flash-infinitime-using-the-swd-interface)
+
+## InfiniTime releases and versions
+All releases of InfiniTime are available on the [release page of the GitHub repo](https://github.com/JF002/Pinetime/releases).
+
+Versions that are tagged as **RELEASE CANDIDATE** are pre-release versions, that are available for testing before actually releasing a new stable version. If you want to help us debug the project and provide stable versions to other user, you can use them. If you want stable and tested version, you should not flash these release candidate version.
+
+Release files are available under the *Assets* button.
+
+## How to upgrade Over-The-Air (OTA)
+OTA is the easiest method to upgrade InfiniTime. Note that it's only possible is your PineTime is already running InfiniTime (>= 0.7.1).
+
+2 companion apps provide support for OTA :
+ - [Gadgetbridge](https://gadgetbridge.org/) (open source, runs on Android, [available on F-Droid](https://f-droid.org/packages/nodomain.freeyourgadget.gadgetbridge/)).
+ - [NRFConnect](https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Connect-for-mobile) (close source, runs on Android and iOS).
+
+Both applications need you to download the **DFU file** of InfiniTime. This file contains the new version of InfiniTime that will be flashed into your device. It's called **dfu-x.y.z.zip** (ex: dfu-0.9.0.zip) in the release note.
+![Dfu file](dfuFile.png )
+
+### Using Gadgetbridge
+Launch Gadgetbridge and tap on the **"+"** button on the bottom right to add a new device:
+
+![Gadgetbridge 0](gadgetbridge0.jpg)
+
+Wait for the scan to complete, your PineTime should be detected:
+
+![Gadgetbridge 1](gadgetbridge1.jpg)
+
+Tap on it. Gadgdetbridge will pair and connect to your device:
+
+![Gadgetbridge 2](gadgetbridge2.jpg)
+
+Now that Gadgetbridge is connected to your PineTime, use a file browser application (I'm using Seafile to browse my NAS) and browse to the DFU file (image-xxx.zip) you downloaded previously. Tap on it and open it using the Gadgetbridge application/firmware installer:
+
+![Gadgetbridge 3](gadgetbridge3.jpg)
+
+Read carefully the warning and tap **Install**:
+
+![Gadgetbridge 4](gadgetbridge4.jpg)
+
+Wait for the transfer to finish. Your PineTime should reset and reboot with the new version of InfiniTime!
+
+![Gadgetbridge 5](gadgetbridge5.jpg)
+
+### Using NRFConnect
+Open NRFConnect. Swipe down in the *Scanner* tab and wait for your device to appear:
+
+![NRFConnect 0](nrfconnect0.jpg)
+
+Tap on the *Connect* button on the right of your device. NRFConnect will connect to your PineTime and discover its characteristics. Tap on the **DFU** button on the top right:
+
+![NRFConnect 1](nrfconnect1.jpg)
+
+Select **Distribution packet (ZIP)**:
+
+![NRFConnect 2](nrfconnect2.jpg)
+
+Browse to the DFU file you downloaded previously, the DFU transfer will start automatically. When the transfer is finished, your PineTime will reset and restart on the new version of InfiniTime!
+
+![NRFConnect 3](nrfconnect3.jpg)
+
+## How to flash InfiniTime using the SWD interface
+Download the files **bootloader.bin**, **image-x.y.z.bin** and **pinetime-graphics-x.y.z.bin** from the release page:
+
+![Image file](imageFile.png )
+
+The bootloader reads a boot logo from the external SPI flash memory. The first step consists in flashing a tool in the MCU that will flash the boot logo into this SPI flash memory. This first step is optional but recommanded (the bootloader will display garbage on screen for a few second if you don't do it).
+Using your SWD tool, flash **pinetime-graphics-x.y.z.bin** at offset **0x0000**. Reset the MCU and wait for a few second, until the logo is completely drawn on the display.
+
+Then, using your SWD tool, flash those file at specific offset:
+
+ - bootloader.bin : **0x0000**
+ - image-x.y.z.bin : **0x8000**
+
+Reset and voilà, you're running InfiniTime on your PineTime!
+
+If you are using OpenOCD with a STLinkV2, you can find more info [on this page](../openOCD.md).
+
+## How to synchronize the time
+
+### Using Gadgetbridge
+Good news! Gadgetbridge **automatically** synchronizes the time when connecting to your PineTime!
+
+### Using NRFConnect
+You must enable the **CTS** *GATT server* into NRFConnect so that InfiniTime can synchronize the time with your smartphone.
+
+Launch NRFConnect, tap the sandwish button on the top left and select *Configure GATT server*:
+
+![NRFConnect CTS 0](nrfconnectcts0.jpg)
+
+
+Tap *Add service* and select the server configuration *Current Time service*. Tap OK and connect to your PineTime, it should automcatically sync the time once the connection is established!
+
+![NRFConnect CTS 1](nrfconnectcts1.jpg) \ No newline at end of file
diff --git a/doc/gettingStarted/imageFile.png b/doc/gettingStarted/imageFile.png
new file mode 100644
index 0000000..64e9432
--- /dev/null
+++ b/doc/gettingStarted/imageFile.png
Binary files differ
diff --git a/doc/gettingStarted/nrfconnect0.jpg b/doc/gettingStarted/nrfconnect0.jpg
new file mode 100644
index 0000000..68f0653
--- /dev/null
+++ b/doc/gettingStarted/nrfconnect0.jpg
Binary files differ
diff --git a/doc/gettingStarted/nrfconnect1.jpg b/doc/gettingStarted/nrfconnect1.jpg
new file mode 100644
index 0000000..29778c3
--- /dev/null
+++ b/doc/gettingStarted/nrfconnect1.jpg
Binary files differ
diff --git a/doc/gettingStarted/nrfconnect2.jpg b/doc/gettingStarted/nrfconnect2.jpg
new file mode 100644
index 0000000..3b14a47
--- /dev/null
+++ b/doc/gettingStarted/nrfconnect2.jpg
Binary files differ
diff --git a/doc/gettingStarted/nrfconnect3.jpg b/doc/gettingStarted/nrfconnect3.jpg
new file mode 100644
index 0000000..e8a5d8e
--- /dev/null
+++ b/doc/gettingStarted/nrfconnect3.jpg
Binary files differ
diff --git a/doc/gettingStarted/nrfconnectcts0.jpg b/doc/gettingStarted/nrfconnectcts0.jpg
new file mode 100644
index 0000000..d42bea2
--- /dev/null
+++ b/doc/gettingStarted/nrfconnectcts0.jpg
Binary files differ
diff --git a/doc/gettingStarted/nrfconnectcts1.jpg b/doc/gettingStarted/nrfconnectcts1.jpg
new file mode 100644
index 0000000..2a478e9
--- /dev/null
+++ b/doc/gettingStarted/nrfconnectcts1.jpg
Binary files differ
diff --git a/src/components/battery/BatteryController.cpp b/src/components/battery/BatteryController.cpp
index 571efae..3e3d65b 100644
--- a/src/components/battery/BatteryController.cpp
+++ b/src/components/battery/BatteryController.cpp
@@ -1,8 +1,7 @@
-#include <drivers/include/nrfx_saadc.h>
+#include "BatteryController.h"
#include <hal/nrf_gpio.h>
#include <libraries/log/nrf_log.h>
#include <algorithm>
-#include "BatteryController.h"
using namespace Pinetime::Controllers;
diff --git a/src/components/battery/BatteryController.h b/src/components/battery/BatteryController.h
index f07648a..7cc964e 100644
--- a/src/components/battery/BatteryController.h
+++ b/src/components/battery/BatteryController.h
@@ -1,7 +1,7 @@
#pragma once
+#include <cstdint>
#include <drivers/include/nrfx_saadc.h>
-
namespace Pinetime {
namespace Controllers {
class Battery {
diff --git a/src/components/ble/AlertNotificationClient.cpp b/src/components/ble/AlertNotificationClient.cpp
index abe4109..e7a1862 100644
--- a/src/components/ble/AlertNotificationClient.cpp
+++ b/src/components/ble/AlertNotificationClient.cpp
@@ -1,7 +1,7 @@
-#include <systemtask/SystemTask.h>
-#include "NotificationManager.h"
-
#include "AlertNotificationClient.h"
+#include <algorithm>
+#include "NotificationManager.h"
+#include "systemtask/SystemTask.h"
using namespace Pinetime::Controllers;
constexpr ble_uuid16_t AlertNotificationClient::ansServiceUuid;
@@ -159,8 +159,8 @@ void AlertNotificationClient::OnNotification(ble_gap_event *event) {
const auto maxBufferSize{maxMessageSize + headerSize};
const auto dbgPacketLen = OS_MBUF_PKTLEN(event->notify_rx.om);
- size_t bufferSize = min(dbgPacketLen + stringTerminatorSize, maxBufferSize);
- auto messageSize = min(maxMessageSize, (bufferSize - headerSize));
+ size_t bufferSize = std::min(dbgPacketLen + stringTerminatorSize, maxBufferSize);
+ auto messageSize = std::min(maxMessageSize, (bufferSize - headerSize));
NotificationManager::Notification notif;
os_mbuf_copydata(event->notify_rx.om, headerSize, messageSize - 1, notif.message.data());
diff --git a/src/components/ble/AlertNotificationClient.h b/src/components/ble/AlertNotificationClient.h
index bc0df51..fa10456 100644
--- a/src/components/ble/AlertNotificationClient.h
+++ b/src/components/ble/AlertNotificationClient.h
@@ -1,13 +1,23 @@
#pragma once
#include <cstdint>
-#include <array>
+#include <functional>
+#define min // workaround: nimble's min/max macros conflict with libstdc++
+#define max
#include <host/ble_gap.h>
+#undef max
+#undef min
#include "BleClient.h"
-
namespace Pinetime {
+
+ namespace System {
+ class SystemTask;
+ }
+
namespace Controllers {
+ class NotificationManager;
+
class AlertNotificationClient : public BleClient {
public:
explicit AlertNotificationClient(Pinetime::System::SystemTask &systemTask,
diff --git a/src/components/ble/AlertNotificationService.cpp b/src/components/ble/AlertNotificationService.cpp
index 32711b9..3156470 100644
--- a/src/components/ble/AlertNotificationService.cpp
+++ b/src/components/ble/AlertNotificationService.cpp
@@ -1,10 +1,9 @@
-
-#include <hal/nrf_rtc.h>
-#include "NotificationManager.h"
-#include <systemtask/SystemTask.h>
-
#include "AlertNotificationService.h"
+#include <hal/nrf_rtc.h>
#include <cstring>
+#include <algorithm>
+#include "NotificationManager.h"
+#include "systemtask/SystemTask.h"
using namespace Pinetime::Controllers;
@@ -60,8 +59,8 @@ int AlertNotificationService::OnAlert(uint16_t conn_handle, uint16_t attr_handle
const auto maxBufferSize{maxMessageSize + headerSize};
const auto dbgPacketLen = OS_MBUF_PKTLEN(ctxt->om);
- size_t bufferSize = min(dbgPacketLen + stringTerminatorSize, maxBufferSize);
- auto messageSize = min(maxMessageSize, (bufferSize-headerSize));
+ size_t bufferSize = std::min(dbgPacketLen + stringTerminatorSize, maxBufferSize);
+ auto messageSize = std::min(maxMessageSize, (bufferSize-headerSize));
NotificationManager::Notification notif;
os_mbuf_copydata(ctxt->om, headerSize, messageSize-1, notif.message.data());
diff --git a/src/components/ble/AlertNotificationService.h b/src/components/ble/AlertNotificationService.h
index 1b8c498..120312d 100644
--- a/src/components/ble/AlertNotificationService.h
+++ b/src/components/ble/AlertNotificationService.h
@@ -1,10 +1,20 @@
#pragma once
#include <cstdint>
#include <array>
+#define min // workaround: nimble's min/max macros conflict with libstdc++
+#define max
#include <host/ble_gap.h>
+#undef max
+#undef min
namespace Pinetime {
+
+ namespace System {
+ class SystemTask;
+ }
namespace Controllers {
+ class NotificationManager;
+
class AlertNotificationService {
public:
AlertNotificationService(Pinetime::System::SystemTask &systemTask,
diff --git a/src/components/ble/BatteryInformationService.h b/src/components/ble/BatteryInformationService.h
index 74b2222..b00000a 100644
--- a/src/components/ble/BatteryInformationService.h
+++ b/src/components/ble/BatteryInformationService.h
@@ -1,5 +1,9 @@
#pragma once
+#define min // workaround: nimble's min/max macros conflict with libstdc++
+#define max
#include <host/ble_gap.h>
+#undef max
+#undef min
namespace Pinetime {
namespace System {
diff --git a/src/components/ble/BleController.cpp b/src/components/ble/BleController.cpp
index 2b396e1..650ec79 100644
--- a/src/components/ble/BleController.cpp
+++ b/src/components/ble/BleController.cpp
@@ -1,5 +1,3 @@
-#include <cstring>
-#include <cstdlib>
#include "BleController.h"
using namespace Pinetime::Controllers;
diff --git a/src/components/ble/BleController.h b/src/components/ble/BleController.h
index 3f52ea2..0570c8d 100644
--- a/src/components/ble/BleController.h
+++ b/src/components/ble/BleController.h
@@ -1,8 +1,7 @@
#pragma once
-#include <FreeRTOS.h>
-#include <queue.h>
#include <array>
+#include <cstdint>
namespace Pinetime {
namespace Controllers {
diff --git a/src/components/ble/CurrentTimeClient.cpp b/src/components/ble/CurrentTimeClient.cpp
index 92f9374..be50fed 100644
--- a/src/components/ble/CurrentTimeClient.cpp
+++ b/src/components/ble/CurrentTimeClient.cpp
@@ -1,5 +1,6 @@
-#include <hal/nrf_rtc.h>
#include "CurrentTimeClient.h"
+#include <hal/nrf_rtc.h>
+#include "components/datetime/DateTimeController.h"
using namespace Pinetime::Controllers;
diff --git a/src/components/ble/CurrentTimeClient.h b/src/components/ble/CurrentTimeClient.h
index 9313939..1b2e018 100644
--- a/src/components/ble/CurrentTimeClient.h
+++ b/src/components/ble/CurrentTimeClient.h
@@ -1,13 +1,15 @@
#pragma once
+#define min // workaround: nimble's min/max macros conflict with libstdc++
+#define max
+#include <host/ble_gap.h>
+#undef max
+#undef min
#include <cstdint>
-#include <array>
-
-#include "components/datetime/DateTimeController.h"
#include "BleClient.h"
-#include <host/ble_gap.h>
namespace Pinetime {
namespace Controllers {
+ class DateTime;
class CurrentTimeClient : public BleClient {
public:
diff --git a/src/components/ble/CurrentTimeService.h b/src/components/ble/CurrentTimeService.h
index a6be964..2395628 100644
--- a/src/components/ble/CurrentTimeService.h
+++ b/src/components/ble/CurrentTimeService.h
@@ -3,7 +3,11 @@
#include <array>
#include "components/datetime/DateTimeController.h"
+#define min // workaround: nimble's min/max macros conflict with libstdc++
+#define max
#include <host/ble_gap.h>
+#undef max
+#undef min
namespace Pinetime {
namespace Controllers {
diff --git a/src/components/ble/DeviceInformationService.h b/src/components/ble/DeviceInformationService.h
index 25ab840..94ca7bb 100644
--- a/src/components/ble/DeviceInformationService.h
+++ b/src/components/ble/DeviceInformationService.h
@@ -1,9 +1,10 @@
#pragma once
-#include <cstdint>
-#include <array>
-
+#define min // workaround: nimble's min/max macros conflict with libstdc++
+#define max
#include <host/ble_gap.h>
-#include <Version.h>
+#undef max
+#undef min
+#include "Version.h"
namespace Pinetime {
namespace Controllers {
diff --git a/src/components/ble/DfuService.cpp b/src/components/ble/DfuService.cpp
index 4dec514..90795b4 100644
--- a/src/components/ble/DfuService.cpp
+++ b/src/components/ble/DfuService.cpp
@@ -1,8 +1,8 @@
+#include "DfuService.h"
#include <cstring>
-
#include "components/ble/BleController.h"
+#include "drivers/SpiNorFlash.h"
#include "systemtask/SystemTask.h"
-#include "DfuService.h"
using namespace Pinetime::Controllers;
diff --git a/src/components/ble/DfuService.h b/src/components/ble/DfuService.h
index d7ba460..096bd99 100644
--- a/src/components/ble/DfuService.h
+++ b/src/components/ble/DfuService.h
@@ -3,7 +3,11 @@
#include <cstdint>
#include <array>
+#define min // workaround: nimble's min/max macros conflict with libstdc++
+#define max
#include <host/ble_gap.h>
+#undef max
+#undef min
namespace Pinetime {
namespace System {
diff --git a/src/components/ble/ImmediateAlertService.cpp b/src/components/ble/ImmediateAlertService.cpp
index e2cee30..0f6bf6c 100644
--- a/src/components/ble/ImmediateAlertService.cpp
+++ b/src/components/ble/ImmediateAlertService.cpp
@@ -1,7 +1,7 @@
-#include <systemtask/SystemTask.h>
-#include <cstring>
#include "ImmediateAlertService.h"
-#include "AlertNotificationService.h"
+#include <cstring>
+#include "NotificationManager.h"
+#include "systemtask/SystemTask.h"
using namespace Pinetime::Controllers;
diff --git a/src/components/ble/ImmediateAlertService.h b/src/components/ble/ImmediateAlertService.h
index c42846c..2bc9cba 100644
--- a/src/components/ble/ImmediateAlertService.h
+++ b/src/components/ble/ImmediateAlertService.h
@@ -1,5 +1,9 @@
#pragma once
+#define min // workaround: nimble's min/max macros conflict with libstdc++
+#define max
#include <host/ble_gap.h>
+#undef max
+#undef min
namespace Pinetime {
namespace System {
diff --git a/src/components/ble/MusicService.cpp b/src/components/ble/MusicService.cpp
index 84f2972..fdecb6b 100644
--- a/src/components/ble/MusicService.cpp
+++ b/src/components/ble/MusicService.cpp
@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-#include <systemtask/SystemTask.h>
#include "MusicService.h"
+#include "systemtask/SystemTask.h"
int MSCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt *ctxt, void *arg) {
auto musicService = static_cast<Pinetime::Controllers::MusicService *>(arg);
diff --git a/src/components/ble/MusicService.h b/src/components/ble/MusicService.h
index b365909..ee3628b 100644
--- a/src/components/ble/MusicService.h
+++ b/src/components/ble/MusicService.h
@@ -18,10 +18,13 @@
#pragma once
#include <cstdint>
-#include <array>
+#include <string>
+#define min // workaround: nimble's min/max macros conflict with libstdc++
+#define max
#include <host/ble_gap.h>
#include <host/ble_uuid.h>
-#include <string>
+#undef max
+#undef min
//c7e50000-78fc-48fe-8e23-43b37a1942d0
#define MUSIC_SERVICE_UUID_BASE {0xd0, 0x42, 0x19, 0x3a, 0x3b, 0x43, 0x23, 0x8e, 0xfe, 0x48, 0xfc, 0x78, 0x00, 0x00, 0xe5, 0xc7}
diff --git a/src/components/ble/NimbleController.cpp b/src/components/ble/NimbleController.cpp
index af7f402..a6f3cc3 100644
--- a/src/components/ble/NimbleController.cpp
+++ b/src/components/ble/NimbleController.cpp
@@ -1,15 +1,19 @@
-#include "components/datetime/DateTimeController.h"
-#include <systemtask/SystemTask.h>
-#include "components/ble/NotificationManager.h"
-#include <hal/nrf_rtc.h>
#include "NimbleController.h"
-#include "MusicService.h"
-#include <services/gatt/ble_svc_gatt.h>
-#include <services/gap/ble_svc_gap.h>
-#include <host/util/util.h>
-#include <host/ble_hs_id.h>
-#include <host/ble_hs.h>
+#include <hal/nrf_rtc.h>
+#define min // workaround: nimble's min/max macros conflict with libstdc++
+#define max
#include <host/ble_gap.h>
+#include <host/ble_hs.h>
+#include <host/ble_hs_id.h>
+#include <host/util/util.h>
+#undef max
+#undef min
+#include <services/gap/ble_svc_gap.h>
+#include <services/gatt/ble_svc_gatt.h>
+#include "components/ble/BleController.h"
+#include "components/ble/NotificationManager.h"
+#include "components/datetime/DateTimeController.h"
+#include "systemtask/SystemTask.h"
using namespace Pinetime::Controllers;
diff --git a/src/components/ble/NimbleController.h b/src/components/ble/NimbleController.h
index 8ddec1f..914f11e 100644
--- a/src/components/ble/NimbleController.h
+++ b/src/components/ble/NimbleController.h
@@ -2,24 +2,35 @@
#include <cstdint>
-#include "AlertNotificationService.h"
+#define min // workaround: nimble's min/max macros conflict with libstdc++
+#define max
+#include <host/ble_gap.h>
+#undef max
+#undef min
#include "AlertNotificationClient.h"
-#include "DeviceInformationService.h"
+#include "AlertNotificationService.h"
+#include "BatteryInformationService.h"
#include "CurrentTimeClient.h"
-#include "DfuService.h"
#include "CurrentTimeService.h"
-#include "MusicService.h"
-#include "BatteryInformationService.h"
+#include "DeviceInformationService.h"
+#include "DfuService.h"
#include "ImmediateAlertService.h"
+#include "MusicService.h"
#include "ServiceDiscovery.h"
-#include <host/ble_gap.h>
namespace Pinetime {
namespace Drivers {
class SpiNorFlash;
}
+
+ namespace System {
+ class SystemTask;
+ }
+
namespace Controllers {
+ class Ble;
class DateTime;
+ class NotificationManager;
class NimbleController {
diff --git a/src/components/ble/NotificationManager.cpp b/src/components/ble/NotificationManager.cpp
index 6771172..dabcb4b 100644
--- a/src/components/ble/NotificationManager.cpp
+++ b/src/components/ble/NotificationManager.cpp
@@ -1,6 +1,6 @@
+#include "NotificationManager.h"
#include <cstring>
#include <algorithm>
-#include "NotificationManager.h"
using namespace Pinetime::Controllers;
diff --git a/src/components/ble/NotificationManager.h b/src/components/ble/NotificationManager.h
index 49fe830..036d2ed 100644
--- a/src/components/ble/NotificationManager.h
+++ b/src/components/ble/NotificationManager.h
@@ -2,6 +2,8 @@
#include <array>
#include <atomic>
+#include <cstddef>
+#include <cstdint>
namespace Pinetime {
namespace Controllers {
@@ -27,7 +29,7 @@ namespace Pinetime {
bool ClearNewNotificationFlag();
bool AreNewNotificationsAvailable();
- static constexpr uint8_t MaximumMessageSize() { return MessageSize; };
+ static constexpr size_t MaximumMessageSize() { return MessageSize; };
size_t NbNotifications() const;
private:
diff --git a/src/components/ble/ServiceDiscovery.cpp b/src/components/ble/ServiceDiscovery.cpp
index 4b29d89..4d37b8b 100644
--- a/src/components/ble/ServiceDiscovery.cpp
+++ b/src/components/ble/ServiceDiscovery.cpp
@@ -1,5 +1,7 @@
-#include <libraries/log/nrf_log.h>
#include "ServiceDiscovery.h"
+#include <libraries/log/nrf_log.h>
+#include "BleClient.h"
+
using namespace Pinetime::Controllers;
ServiceDiscovery::ServiceDiscovery(std::array<BleClient*, 2>&& clients) : clients{clients} {
diff --git a/src/components/ble/ServiceDiscovery.h b/src/components/ble/ServiceDiscovery.h
index c86fc4e..0b26bd1 100644
--- a/src/components/ble/ServiceDiscovery.h
+++ b/src/components/ble/ServiceDiscovery.h
@@ -1,12 +1,12 @@
#pragma once
#include <array>
-#include <functional>
-#include <memory>
-#include "BleClient.h"
+#include <cstdint>
namespace Pinetime {
namespace Controllers {
+ class BleClient;
+
class ServiceDiscovery {
public:
ServiceDiscovery(std::array<BleClient*, 2>&& bleClients);
diff --git a/src/components/brightness/BrightnessController.cpp b/src/components/brightness/BrightnessController.cpp
index c8825d6..78c461d 100644
--- a/src/components/brightness/BrightnessController.cpp
+++ b/src/components/brightness/BrightnessController.cpp
@@ -1,5 +1,5 @@
-#include <hal/nrf_gpio.h>
#include "BrightnessController.h"
+#include <hal/nrf_gpio.h>
using namespace Pinetime::Controllers;
diff --git a/src/components/firmwarevalidator/FirmwareValidator.cpp b/src/components/firmwarevalidator/FirmwareValidator.cpp
index 244d5c0..48f9855 100644
--- a/src/components/firmwarevalidator/FirmwareValidator.cpp
+++ b/src/components/firmwarevalidator/FirmwareValidator.cpp
@@ -1,8 +1,8 @@
-#include <drivers/InternalFlash.h>
-#include <hal/nrf_rtc.h>
-
#include "FirmwareValidator.h"
+#include <hal/nrf_rtc.h>
+#include "drivers/InternalFlash.h"
+
using namespace Pinetime::Controllers;
bool FirmwareValidator::IsValidated() const {
diff --git a/src/components/gfx/Gfx.cpp b/src/components/gfx/Gfx.cpp
index bab7c8d..59c1da9 100644
--- a/src/components/gfx/Gfx.cpp
+++ b/src/components/gfx/Gfx.cpp
@@ -1,8 +1,5 @@
-#include <libraries/svc/nrf_svci.h>
-#include <FreeRTOS.h>
-#include <task.h>
#include "Gfx.h"
-#include "../../drivers/St7789.h"
+#include "drivers/St7789.h"
using namespace Pinetime::Components;
Gfx::Gfx(Pinetime::Drivers::St7789 &lcd) : lcd{lcd} {
diff --git a/src/components/gfx/Gfx.h b/src/components/gfx/Gfx.h
index eba6319..4c0fc8e 100644
--- a/src/components/gfx/Gfx.h
+++ b/src/components/gfx/Gfx.h
@@ -1,10 +1,10 @@
#pragma once
-#include <cstdint>
-#include <nrf_font.h>
-#include <drivers/BufferProvider.h>
#include <FreeRTOS.h>
+#include <nrf_font.h>
#include <task.h>
-
+#include <cstddef>
+#include <cstdint>
+#include "drivers/BufferProvider.h"
namespace Pinetime {
namespace Drivers {
diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp
index d4d4133..efc042b 100644
--- a/src/displayapp/DisplayApp.cpp
+++ b/src/displayapp/DisplayApp.cpp
@@ -1,25 +1,24 @@
-#include <string>
-
#include "DisplayApp.h"
-#include <FreeRTOS.h>
-#include <task.h>
#include <libraries/log/nrf_log.h>
-#include <nrf_font.h>
-#include <queue.h>
+#include "components/battery/BatteryController.h"
+#include "components/ble/BleController.h"
#include "components/datetime/DateTimeController.h"
-#include <drivers/Cst816s.h>
-#include "displayapp/screens/Notifications.h"
-#include "displayapp/screens/Tile.h"
-#include "displayapp/screens/Meter.h"
-#include "displayapp/screens/Gauge.h"
-#include "displayapp/screens/Brightness.h"
-#include "displayapp/screens/SystemInfo.h"
-#include "displayapp/screens/Music.h"
#include "components/ble/NotificationManager.h"
-#include "displayapp/screens/FirmwareUpdate.h"
#include "displayapp/screens/ApplicationList.h"
+#include "displayapp/screens/Brightness.h"
+#include "displayapp/screens/Clock.h"
+#include "displayapp/screens/FirmwareUpdate.h"
#include "displayapp/screens/FirmwareValidation.h"
+#include "displayapp/screens/Gauge.h"
#include "displayapp/screens/InfiniPaint.h"
+#include "displayapp/screens/Meter.h"
+#include "displayapp/screens/Music.h"
+#include "displayapp/screens/Notifications.h"
+#include "displayapp/screens/SystemInfo.h"
+#include "displayapp/screens/Tile.h"
+#include "drivers/Cst816s.h"
+#include "drivers/St7789.h"
+#include "drivers/Watchdog.h"
#include "systemtask/SystemTask.h"
using namespace Pinetime::Applications;
diff --git a/src/displayapp/DisplayApp.h b/src/displayapp/DisplayApp.h
index 2a0efde..25cd281 100644
--- a/src/displayapp/DisplayApp.h
+++ b/src/displayapp/DisplayApp.h
@@ -1,28 +1,30 @@
#pragma once
#include <FreeRTOS.h>
-#include <task.h>
-#include <drivers/St7789.h>
-#include <drivers/SpiMaster.h>
-#include <bits/unique_ptr.h>
+#include <date/date.h>
#include <queue.h>
-#include "components/gfx/Gfx.h"
-#include "components/battery/BatteryController.h"
+#include <task.h>
+#include <memory>
+#include "Apps.h"
+#include "LittleVgl.h"
+#include "TouchEvents.h"
#include "components/brightness/BrightnessController.h"
-#include "components/ble/BleController.h"
-#include "components/datetime/DateTimeController.h"
-#include "components/ble/NotificationManager.h"
#include "components/firmwarevalidator/FirmwareValidator.h"
-#include "drivers/Cst816s.h"
-#include "LittleVgl.h"
-#include <date/date.h>
-#include "displayapp/screens/Clock.h"
#include "displayapp/screens/Modal.h"
-#include <drivers/Watchdog.h>
-#include "TouchEvents.h"
-#include "Apps.h"
-
namespace Pinetime {
+
+ namespace Drivers {
+ class St7789;
+ class Cst816S;
+ class WatchdogView;
+ }
+ namespace Controllers {
+ class Battery;
+ class Ble;
+ class DateTime;
+ class NotificationManager;
+ }
+
namespace System {
class SystemTask;
};
diff --git a/src/displayapp/LittleVgl.cpp b/src/displayapp/LittleVgl.cpp
index 7b6275e..b4e5cac 100644
--- a/src/displayapp/LittleVgl.cpp
+++ b/src/displayapp/LittleVgl.cpp
@@ -1,14 +1,10 @@
+#include "LittleVgl.h"
+
#include <FreeRTOS.h>
-#include <projdefs.h>
#include <task.h>
-#include <libs/lvgl/src/lv_core/lv_obj.h>
-#include <hal/nrf_rtc.h>
-#include <libraries/log/nrf_log.h>
-
-#include <libs/lvgl/src/lv_themes/lv_theme.h>
-#include <libs/lvgl/src/lv_themes/lv_theme_night.h>
-
-#include "LittleVgl.h"
+//#include <projdefs.h>
+#include "drivers/Cst816s.h"
+#include "drivers/St7789.h"
using namespace Pinetime::Components;
diff --git a/src/displayapp/LittleVgl.h b/src/displayapp/LittleVgl.h
index 5c1c443..ea50985 100644
--- a/src/displayapp/LittleVgl.h
+++ b/src/displayapp/LittleVgl.h
@@ -1,12 +1,13 @@
#pragma once
-#include <libs/lvgl/src/lv_core/lv_style.h>
-#include <libs/lvgl/src/lv_themes/lv_theme.h>
-#include <libs/lvgl/src/lv_hal/lv_hal.h>
-#include <drivers/St7789.h>
-#include <drivers/Cst816s.h>
+#include <lvgl/lvgl.h>
namespace Pinetime {
+ namespace Drivers {
+ class Cst816S;
+ class St7789;
+ }
+
namespace Components {
class LittleVgl {
public:
diff --git a/src/displayapp/fonts/Readme.md b/src/displayapp/fonts/Readme.md
index 7ebf2e2..a5eec64 100644
--- a/src/displayapp/fonts/Readme.md
+++ b/src/displayapp/fonts/Readme.md
@@ -9,7 +9,7 @@
* Size : 20
* Bpp : 1 bit-per-pixel
* Do not enable font compression and horizontal subpixel hinting
- * Load the file `JetBrainsMono-Bold.woff` and specify the following range : `0x20-0x7f`
+ * Load the file `JetBrainsMono-Bold.woff` and specify the following range : `0x20-0x7f, 0x410-0x44f`
* Add a 2nd font, load the file `FontAwesome5-Solid+Brands+Regular.woff` and specify the following range : `0xf293, 0xf294, 0xf244, 0xf240, 0xf242, 0xf243, 0xf241, 0xf54b, 0xf21e, 0xf1e6, 0xf54b, 0xf017, 0xf129, 0xf03a, 0xf185, 0xf560, 0xf001, 0xf3fd, 0xf069, 0xf1fc`
* Click on Convert, and download the file `jetbrains_mono_bold_20.c` and copy it in `src/DisplayApp/Fonts`
diff --git a/src/displayapp/fonts/jetbrains_mono_bold_20.c b/src/displayapp/fonts/jetbrains_mono_bold_20.c
index 27ad005..183e591 100644
--- a/src/displayapp/fonts/jetbrains_mono_bold_20.c
+++ b/src/displayapp/fonts/jetbrains_mono_bold_20.c
@@ -22,36 +22,36 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0,
/* U+21 "!" */
- 0xff, 0xff, 0xff, 0xe0, 0xf, 0xc0,
+ 0xff, 0xff, 0xff, 0xfc, 0xf, 0xc0,
/* U+22 "\"" */
0xef, 0xdf, 0xbf, 0x7e, 0xfd, 0xc0,
/* U+23 "#" */
- 0x8, 0xc3, 0x10, 0x62, 0x3f, 0xf7, 0xfe, 0x23,
+ 0x8, 0xc3, 0x10, 0x66, 0x3f, 0xf7, 0xfe, 0x23,
0x4, 0x61, 0x88, 0x31, 0x1f, 0xfb, 0xff, 0x19,
0x82, 0x30, 0xc4, 0x0,
/* U+24 "$" */
- 0x8, 0x2, 0x1, 0xc1, 0xfe, 0xeb, 0xf2, 0x7c,
- 0x83, 0xa0, 0x7c, 0xf, 0xc0, 0xf8, 0x27, 0x9,
- 0xf2, 0x7f, 0xf9, 0xfc, 0x8, 0x2, 0x0, 0x80,
+ 0x8, 0x2, 0x1, 0xe1, 0xfe, 0xfb, 0xfa, 0x7e,
+ 0x83, 0xe0, 0x7e, 0xf, 0xe0, 0xf8, 0x27, 0x9,
+ 0xfa, 0x7f, 0xf9, 0xfc, 0x8, 0x2, 0x0, 0x80,
/* U+25 "%" */
- 0x78, 0x1f, 0x83, 0x30, 0x66, 0x1f, 0xcc, 0xf2,
- 0x1, 0x80, 0xde, 0x67, 0xf8, 0xcc, 0x19, 0x83,
- 0x30, 0x7e, 0x7, 0x80,
+ 0x78, 0x3f, 0xc6, 0xcc, 0xcc, 0xcc, 0xfd, 0x87,
+ 0xb0, 0x6, 0x0, 0x7e, 0xf, 0xf1, 0xb3, 0x33,
+ 0x33, 0x33, 0x63, 0xfc, 0x1e,
/* U+26 "&" */
- 0x1e, 0x7, 0xe1, 0xce, 0x38, 0x7, 0x0, 0x70,
- 0x1e, 0x7, 0x66, 0xed, 0xdc, 0xf3, 0x9c, 0x73,
+ 0x1e, 0xf, 0xe1, 0x8e, 0x30, 0x6, 0x0, 0x60,
+ 0x1e, 0x7, 0xe6, 0xed, 0xdc, 0xf3, 0x9e, 0x73,
0xcf, 0xfc, 0xf9, 0x80,
/* U+27 "'" */
0xff, 0xff, 0xc0,
/* U+28 "(" */
- 0x2, 0x1c, 0xfb, 0xc7, 0x1e, 0x38, 0x70, 0xe1,
+ 0x2, 0x1c, 0xfb, 0xc7, 0x1c, 0x38, 0x70, 0xe1,
0xc3, 0x87, 0xe, 0x1c, 0x3c, 0x38, 0x38, 0x7c,
0x38,
@@ -62,7 +62,7 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
/* U+2A "*" */
0xc, 0x3, 0x8, 0xc7, 0xb7, 0x7f, 0x83, 0x1,
- 0xe0, 0xcc, 0x73, 0x80, 0x0,
+ 0xe0, 0xcc, 0x73, 0x88, 0x0,
/* U+2B "+" */
0x1c, 0x7, 0x1, 0xc3, 0xff, 0xff, 0xc7, 0x1,
@@ -72,10 +72,10 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x7b, 0x9c, 0xce, 0x60,
/* U+2D "-" */
- 0xff, 0xff,
+ 0xff, 0xff, 0xc0,
/* U+2E "." */
- 0x6f, 0xf6,
+ 0xff, 0xf0,
/* U+2F "/" */
0x1, 0xc0, 0x60, 0x38, 0xe, 0x3, 0x1, 0xc0,
@@ -83,58 +83,58 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0xe, 0x3, 0x80, 0xc0, 0x70, 0x18, 0xe, 0x0,
/* U+30 "0" */
- 0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xed, 0xfb, 0x7e,
- 0xdf, 0xb7, 0xed, 0xf8, 0x7e, 0x1f, 0xcf, 0x7f,
- 0x8f, 0x80,
+ 0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe1, 0xf8, 0x7e,
+ 0xdf, 0xb7, 0xe1, 0xf8, 0x7e, 0x1f, 0xcf, 0x7f,
+ 0x8f, 0xc0,
/* U+31 "1" */
- 0x3c, 0x3e, 0x3f, 0x13, 0x81, 0xc0, 0xe0, 0x70,
- 0x38, 0x1c, 0xe, 0x7, 0x3, 0x8f, 0xff, 0xfc,
+ 0x1e, 0x3f, 0x3b, 0x99, 0xc8, 0xe0, 0x70, 0x38,
+ 0x1c, 0xe, 0x7, 0x3, 0x81, 0xcf, 0xff, 0xfc,
/* U+32 "2" */
- 0x1f, 0x1f, 0xef, 0x3f, 0x87, 0x1, 0xc0, 0x70,
- 0x38, 0x1e, 0xf, 0x7, 0x87, 0x83, 0xc0, 0xff,
- 0xff, 0xf0,
+ 0x3e, 0x3f, 0xbc, 0xfc, 0x70, 0x38, 0x1c, 0x1c,
+ 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0xf, 0xff, 0xfc,
/* U+33 "3" */
- 0x7f, 0xdf, 0xf0, 0x3c, 0x1c, 0x1c, 0x7, 0xc1,
- 0xf8, 0xf, 0x1, 0xc0, 0x7e, 0x1d, 0x8f, 0x7f,
- 0x87, 0xc0,
+ 0x7f, 0x9f, 0xe0, 0x38, 0x18, 0xc, 0x7, 0xc1,
+ 0xf8, 0xf, 0x1, 0xc0, 0x7e, 0x1f, 0xcf, 0x7f,
+ 0x8f, 0xc0,
/* U+34 "4" */
0x7, 0x7, 0x3, 0x83, 0x83, 0x81, 0xc1, 0xcf,
0xe7, 0xe3, 0xff, 0xff, 0xe0, 0x70, 0x38, 0x1c,
/* U+35 "5" */
- 0xff, 0x7f, 0xb8, 0x1c, 0xe, 0x7, 0x73, 0xfd,
- 0xcf, 0x3, 0x81, 0xc0, 0xfc, 0xff, 0xf1, 0xf0,
+ 0x7f, 0x9f, 0xe7, 0x1, 0xc0, 0x77, 0x1f, 0xe7,
+ 0x3c, 0x7, 0x1, 0xc0, 0x77, 0x1d, 0xcf, 0x7f,
+ 0x87, 0xc0,
/* U+36 "6" */
- 0x6, 0x3, 0x1, 0xc0, 0x60, 0x30, 0x1b, 0xc7,
+ 0x6, 0x3, 0x1, 0xc0, 0x60, 0x38, 0x1d, 0xc7,
0xfb, 0xcf, 0xe1, 0xf8, 0x7e, 0x1f, 0xcf, 0x7f,
0x87, 0x80,
/* U+37 "7" */
- 0xff, 0xff, 0xfe, 0xb, 0x86, 0x1, 0x80, 0xc0,
- 0x30, 0x18, 0x6, 0x3, 0x80, 0xc0, 0x70, 0x18,
+ 0xff, 0xff, 0xfe, 0x1b, 0x86, 0x3, 0x80, 0xc0,
+ 0x70, 0x18, 0x6, 0x3, 0x80, 0xc0, 0x70, 0x18,
0xe, 0x0,
/* U+38 "8" */
- 0x3e, 0x1f, 0xce, 0x3b, 0x6, 0xe3, 0x9f, 0xc7,
- 0xf1, 0x8e, 0xc1, 0xf0, 0x7c, 0x1f, 0x8f, 0x7f,
- 0x8f, 0x80,
+ 0x3f, 0x1f, 0xee, 0x1f, 0x87, 0xe1, 0xcf, 0xc3,
+ 0xf1, 0xce, 0xe1, 0xf8, 0x7e, 0x1f, 0xcf, 0x7f,
+ 0x8f, 0xc0,
/* U+39 "9" */
0x1e, 0x1f, 0xef, 0x3f, 0x87, 0xe1, 0xf8, 0x7f,
- 0x3d, 0xfe, 0x3d, 0x80, 0xc0, 0x60, 0x38, 0xc,
+ 0x3d, 0xfe, 0x3b, 0x81, 0xc0, 0x60, 0x38, 0xc,
0x6, 0x0,
/* U+3A ":" */
- 0xff, 0x80, 0x0, 0xff, 0x80,
+ 0xff, 0xf0, 0x0, 0x0, 0xff, 0xf0,
/* U+3B ";" */
- 0x7b, 0xde, 0x0, 0x0, 0x0, 0x7b, 0x9c, 0xce,
- 0x60,
+ 0x7b, 0xde, 0x0, 0x0, 0x0, 0x3, 0xdc, 0xe6,
+ 0x73, 0x0,
/* U+3C "<" */
0x0, 0x81, 0xc3, 0xe7, 0xcf, 0x6, 0x3, 0xc0,
@@ -144,22 +144,23 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0xff, 0xff, 0xc0, 0x0, 0x0, 0x7, 0xff, 0xfe,
/* U+3E ">" */
- 0x0, 0x70, 0x3e, 0x7, 0xc0, 0xf8, 0xc, 0x1e,
- 0x7c, 0xf8, 0x70, 0x20, 0x0,
+ 0x80, 0x70, 0x3e, 0x7, 0xc0, 0xf8, 0xc, 0x1e,
+ 0x3c, 0xf8, 0x70, 0x20, 0x0,
/* U+3F "?" */
0xfc, 0xfe, 0xf, 0x7, 0x7, 0xf, 0x3e, 0x3c,
0x30, 0x30, 0x0, 0x0, 0x70, 0x70,
/* U+40 "@" */
- 0x1f, 0x87, 0xf9, 0xc3, 0xf0, 0x3c, 0x77, 0x9f,
- 0xf3, 0x1e, 0x63, 0xcc, 0x79, 0x8f, 0x31, 0xe7,
- 0xfc, 0x77, 0xc0, 0x1c, 0x1, 0xf0, 0x1e, 0x0,
+ 0x1f, 0x7, 0xf9, 0xc3, 0x70, 0x3c, 0x7, 0x8f,
+ 0xf3, 0xfe, 0x63, 0xcc, 0x79, 0x8f, 0x31, 0xe6,
+ 0x3c, 0xff, 0x8e, 0xf8, 0x3, 0x80, 0x3e, 0x3,
+ 0xc0,
/* U+41 "A" */
- 0xf, 0x0, 0xf0, 0xf, 0x1, 0xf8, 0x19, 0x81,
- 0x98, 0x19, 0x83, 0x9c, 0x3f, 0xc3, 0xfc, 0x70,
- 0xe7, 0xe, 0x60, 0x66, 0x6,
+ 0x1e, 0x7, 0x81, 0xe0, 0xfc, 0x3f, 0xc, 0xc3,
+ 0x31, 0xce, 0x73, 0x9f, 0xe7, 0xfb, 0x87, 0xe1,
+ 0xf0, 0x30,
/* U+42 "B" */
0xfe, 0x3f, 0xce, 0x3b, 0x8e, 0xe3, 0xb8, 0xcf,
@@ -172,9 +173,8 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x8f, 0xc0,
/* U+44 "D" */
- 0xfe, 0x3f, 0xee, 0x3f, 0x87, 0xe1, 0xf8, 0x7e,
- 0x1f, 0x87, 0xe1, 0xf8, 0x7e, 0x1f, 0x8f, 0xff,
- 0xbf, 0x80,
+ 0xfe, 0x7f, 0xb9, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f,
+ 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0xff, 0xf7, 0xf0,
/* U+45 "E" */
0xff, 0xff, 0xf8, 0x1c, 0xe, 0x7, 0x3, 0xfd,
@@ -187,43 +187,42 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
/* U+47 "G" */
0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe0, 0x38, 0xe,
0x7f, 0x9f, 0xe1, 0xf8, 0x7e, 0x1f, 0xcf, 0x7f,
- 0x87, 0x80,
+ 0x8f, 0xc0,
/* U+48 "H" */
0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0xff,
0xff, 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1c,
/* U+49 "I" */
- 0xff, 0xff, 0xc7, 0x3, 0x81, 0xc0, 0xe0, 0x70,
- 0x38, 0x1c, 0xe, 0x7, 0x3, 0x8f, 0xff, 0xfc,
+ 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c,
+ 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff,
/* U+4A "J" */
- 0x3f, 0xcf, 0xf0, 0x1c, 0x7, 0x1, 0xc0, 0x70,
- 0x1c, 0x7, 0x1, 0xc0, 0x7e, 0x1f, 0x8f, 0x7f,
+ 0xf, 0xc3, 0xf0, 0x1c, 0x7, 0x1, 0xc0, 0x70,
+ 0x1c, 0x7, 0x1, 0xc0, 0x7e, 0x1f, 0xcf, 0x7f,
0x8f, 0xc0,
/* U+4B "K" */
- 0xe1, 0xdc, 0x3b, 0x8e, 0x71, 0xce, 0x31, 0xce,
- 0x3f, 0x87, 0xf0, 0xe7, 0x1c, 0x63, 0x8e, 0x70,
- 0xce, 0x1d, 0xc3, 0x80,
+ 0xe1, 0xf8, 0x7e, 0x3b, 0x8e, 0xe7, 0x39, 0xcf,
+ 0xe3, 0xf8, 0xe7, 0x39, 0xce, 0x3b, 0x8e, 0xe1,
+ 0xf8, 0x70,
/* U+4C "L" */
0xe0, 0x70, 0x38, 0x1c, 0xe, 0x7, 0x3, 0x81,
0xc0, 0xe0, 0x70, 0x38, 0x1c, 0xf, 0xff, 0xfc,
/* U+4D "M" */
- 0xe1, 0xf8, 0x7f, 0x3f, 0xcf, 0xda, 0xf7, 0xbd,
- 0xef, 0x33, 0xc0, 0xf0, 0x3c, 0xf, 0x3, 0xc0,
- 0xf0, 0x30,
+ 0xf3, 0xfc, 0xfd, 0x2f, 0xcf, 0xff, 0xff, 0xfe,
+ 0xdf, 0xb7, 0xe1, 0xf8, 0x7e, 0x1f, 0x87, 0xe1,
+ 0xf8, 0x70,
/* U+4E "N" */
- 0xe1, 0xf0, 0xfc, 0x7e, 0x3d, 0x9e, 0xcf, 0x67,
- 0x9b, 0xcd, 0xe6, 0xf1, 0xf8, 0xfc, 0x3e, 0x1c,
+ 0xf3, 0xf9, 0xfc, 0xfe, 0x7f, 0xbf, 0xdf, 0xaf,
+ 0xd7, 0xef, 0xf7, 0xf9, 0xfc, 0xfe, 0x7f, 0x3c,
/* U+4F "O" */
- 0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe1, 0xf8, 0x7e,
- 0x1f, 0x87, 0xe1, 0xf8, 0x7e, 0x1f, 0xcf, 0x7f,
- 0x8f, 0x80,
+ 0x3e, 0x3f, 0xb8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f,
+ 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0x77, 0xf1, 0xf0,
/* U+50 "P" */
0xff, 0x3f, 0xee, 0x3f, 0x87, 0xe1, 0xf8, 0xff,
@@ -233,7 +232,7 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
/* U+51 "Q" */
0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe1, 0xf8, 0x7e,
0x1f, 0x87, 0xe1, 0xf8, 0x7e, 0x1f, 0xcf, 0x7f,
- 0x8f, 0x80, 0x70, 0xe, 0x1, 0xc0,
+ 0x8f, 0x80, 0x70, 0xe, 0x3, 0x80, 0x70,
/* U+52 "R" */
0xff, 0x3f, 0xee, 0x3f, 0x87, 0xe1, 0xf8, 0xff,
@@ -241,7 +240,7 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0xb8, 0x70,
/* U+53 "S" */
- 0x3f, 0x1f, 0xee, 0x1f, 0x87, 0xe0, 0x3e, 0x7,
+ 0x3f, 0x1f, 0xee, 0x3f, 0x87, 0xe0, 0x3c, 0x7,
0xf0, 0x7e, 0x3, 0xc0, 0x7e, 0x1f, 0xcf, 0x7f,
0x8f, 0xc0,
@@ -255,14 +254,14 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0x77, 0xf1, 0xf0,
/* U+56 "V" */
- 0x60, 0x66, 0x6, 0x70, 0xe7, 0xe, 0x30, 0xc3,
- 0xc, 0x39, 0xc1, 0x98, 0x19, 0x81, 0x98, 0x1f,
- 0x80, 0xf0, 0xf, 0x0, 0xf0,
+ 0xc0, 0xf8, 0x7e, 0x1d, 0x86, 0x61, 0x9c, 0xe7,
+ 0x38, 0xcc, 0x33, 0xf, 0xc3, 0xf0, 0x78, 0x1e,
+ 0x7, 0x80,
/* U+57 "W" */
- 0xc6, 0x78, 0xcf, 0x39, 0xe7, 0x3e, 0xa6, 0xd6,
- 0xda, 0xdb, 0x5b, 0x6b, 0x6d, 0x2d, 0xe7, 0x3c,
- 0xe7, 0x9c, 0xe3, 0x80,
+ 0xce, 0x79, 0xcf, 0x29, 0xe5, 0x3c, 0xa7, 0xd5,
+ 0xda, 0xb3, 0x56, 0x7b, 0xcf, 0x79, 0xef, 0x38,
+ 0xe7, 0x1c, 0xe3, 0x80,
/* U+58 "X" */
0xe1, 0xd8, 0x67, 0x38, 0xcc, 0x3f, 0x7, 0x81,
@@ -270,12 +269,12 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0xf8, 0x70,
/* U+59 "Y" */
- 0xe0, 0xfc, 0x1d, 0xc7, 0x38, 0xe3, 0x98, 0x77,
+ 0xe0, 0xfc, 0x1d, 0xc7, 0x38, 0xe3, 0xb8, 0x77,
0x6, 0xc0, 0xf8, 0xe, 0x1, 0xc0, 0x38, 0x7,
0x0, 0xe0, 0x1c, 0x0,
/* U+5A "Z" */
- 0xff, 0xff, 0xc0, 0xe0, 0xe0, 0x60, 0x70, 0x70,
+ 0xff, 0xff, 0xc0, 0xe0, 0xe0, 0x70, 0x70, 0x70,
0x38, 0x38, 0x38, 0x1c, 0x1c, 0xf, 0xff, 0xfc,
/* U+5B "[" */
@@ -302,136 +301,424 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x63, 0x8e,
/* U+61 "a" */
- 0x3f, 0x1f, 0xee, 0x1c, 0x7, 0x3f, 0xdf, 0xfe,
- 0x1f, 0x87, 0xe3, 0xff, 0xf7, 0xdc,
+ 0x1f, 0x1f, 0xe7, 0x1c, 0x7, 0x3f, 0xdf, 0xfe,
+ 0x1f, 0x87, 0xe3, 0xff, 0xf3, 0xdc,
/* U+62 "b" */
- 0xe0, 0x38, 0xe, 0x3, 0xbc, 0xff, 0xbc, 0xfe,
- 0x1f, 0x87, 0xe1, 0xf8, 0x7e, 0x1f, 0xcf, 0xff,
- 0xbb, 0xc0,
+ 0xe0, 0x70, 0x38, 0x1d, 0xcf, 0xf7, 0x1f, 0x8f,
+ 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0x7f, 0xf7, 0x70,
/* U+63 "c" */
- 0x3f, 0x1f, 0xef, 0x1f, 0x83, 0xe0, 0x38, 0xe,
- 0x3, 0x87, 0xf1, 0xdf, 0xe3, 0xe0,
+ 0x3e, 0x3f, 0xb8, 0xfc, 0x7e, 0x7, 0x3, 0x81,
+ 0xc7, 0xe3, 0xbf, 0x8f, 0x80,
/* U+64 "d" */
- 0x1, 0xc0, 0x70, 0x1c, 0xf7, 0x7f, 0xfc, 0xfe,
- 0x1f, 0x87, 0xe1, 0xf8, 0x7e, 0x1f, 0xcf, 0x7f,
- 0xcf, 0x70,
+ 0x3, 0x81, 0xc0, 0xe7, 0x77, 0xff, 0x1f, 0x8f,
+ 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0x77, 0xf9, 0xdc,
/* U+65 "e" */
- 0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xff, 0xff, 0xfe,
- 0x3, 0x80, 0xf1, 0xdf, 0xe3, 0xf0,
+ 0x3e, 0x3f, 0xb8, 0xfc, 0x7f, 0xff, 0xff, 0x81,
+ 0xc0, 0xe3, 0xbf, 0x8f, 0x80,
/* U+66 "f" */
- 0xf, 0xc7, 0xf1, 0xc0, 0x70, 0xff, 0xff, 0xf1,
+ 0xf, 0xc7, 0xf1, 0xc3, 0xff, 0xff, 0xc7, 0x1,
0xc0, 0x70, 0x1c, 0x7, 0x1, 0xc0, 0x70, 0x1c,
0x7, 0x0,
/* U+67 "g" */
- 0x3d, 0xdf, 0xff, 0x3f, 0x87, 0xe1, 0xf8, 0x7e,
- 0x1f, 0xcf, 0x7f, 0xcf, 0x70, 0x1c, 0xf, 0x3f,
- 0x8f, 0xc0,
+ 0x3b, 0xbf, 0xfd, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f,
+ 0xc7, 0xf7, 0xbf, 0xce, 0xe0, 0x70, 0x39, 0xf8,
+ 0xf8,
/* U+68 "h" */
- 0xe0, 0x70, 0x38, 0x1d, 0xcf, 0xf7, 0x9f, 0x8f,
+ 0xe0, 0x70, 0x38, 0x1d, 0xcf, 0xf7, 0x1f, 0x8f,
0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1c,
/* U+69 "i" */
- 0x1c, 0x7, 0x0, 0x0, 0x0, 0xfc, 0x3f, 0x1,
- 0xc0, 0x70, 0x1c, 0x7, 0x1, 0xc0, 0x70, 0x1c,
+ 0x8, 0x7, 0x0, 0x80, 0x0, 0xfe, 0x3f, 0x80,
+ 0xe0, 0x38, 0xe, 0x3, 0x80, 0xe0, 0x38, 0xe,
0x3f, 0xff, 0xfc,
/* U+6A "j" */
- 0x7, 0x7, 0x0, 0x0, 0x7f, 0x7f, 0x7, 0x7,
- 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0xf,
- 0xfe, 0xfc,
+ 0x2, 0x7, 0x2, 0x0, 0x7f, 0x7f, 0x7, 0x7,
+ 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7,
+ 0xf, 0xfe, 0xfc,
/* U+6B "k" */
- 0xe0, 0x38, 0xe, 0x3, 0x87, 0xe1, 0xb8, 0xee,
- 0x33, 0x9c, 0xfe, 0x3f, 0x8e, 0x73, 0x8e, 0xe3,
+ 0xe0, 0x38, 0xe, 0x3, 0x87, 0xe3, 0xb8, 0xce,
+ 0x73, 0xf8, 0xfe, 0x39, 0xce, 0x73, 0x8e, 0xe1,
0xb8, 0x70,
/* U+6C "l" */
0xfe, 0x1f, 0xc0, 0x38, 0x7, 0x0, 0xe0, 0x1c,
0x3, 0x80, 0x70, 0xe, 0x1, 0xc0, 0x38, 0x7,
- 0x0, 0xfe, 0xf, 0xc0,
+ 0x0, 0x7e, 0x7, 0xc0,
/* U+6D "m" */
0xd9, 0xbf, 0xfc, 0xcf, 0x33, 0xcc, 0xf3, 0x3c,
0xcf, 0x33, 0xcc, 0xf3, 0x3c, 0xcc,
/* U+6E "n" */
- 0xee, 0x7f, 0xbc, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f,
+ 0xee, 0x7f, 0xb8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f,
0xc7, 0xe3, 0xf1, 0xf8, 0xe0,
/* U+6F "o" */
- 0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe1, 0xf8, 0x7e,
- 0x1f, 0x87, 0xf3, 0xdf, 0xe3, 0xf0,
+ 0x3e, 0x3f, 0xb8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f,
+ 0xc7, 0xe3, 0xbf, 0x8f, 0x80,
/* U+70 "p" */
- 0xef, 0x3f, 0xef, 0x3f, 0x87, 0xe1, 0xf8, 0x7e,
- 0x1f, 0x87, 0xf3, 0xff, 0xee, 0xf3, 0x80, 0xe0,
- 0x38, 0x0,
+ 0xee, 0x7f, 0xb8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f,
+ 0xc7, 0xe3, 0xff, 0xbb, 0x9c, 0xe, 0x7, 0x3,
+ 0x80,
/* U+71 "q" */
- 0x3d, 0xdf, 0xff, 0x3f, 0x87, 0xe1, 0xf8, 0x7e,
- 0x1f, 0x87, 0xf3, 0xdf, 0xf3, 0xdc, 0x7, 0x1,
- 0xc0, 0x70,
+ 0x3b, 0xbf, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f,
+ 0xc7, 0xe3, 0xbf, 0xce, 0xe0, 0x70, 0x38, 0x1c,
+ 0xe,
/* U+72 "r" */
- 0xef, 0x3f, 0xef, 0x3f, 0x87, 0xe1, 0xf8, 0xe,
- 0x3, 0x80, 0xe0, 0x38, 0xe, 0x0,
+ 0xee, 0x7f, 0xbc, 0xfc, 0x7e, 0x3f, 0x3, 0x81,
+ 0xc0, 0xe0, 0x70, 0x38, 0x0,
/* U+73 "s" */
- 0x3f, 0x3f, 0xee, 0x1f, 0x80, 0xfc, 0x1f, 0xe0,
- 0x3c, 0x7, 0xe1, 0xff, 0xe3, 0xf0,
+ 0x1f, 0x1f, 0xe7, 0x1d, 0xc0, 0x7c, 0xf, 0xe0,
+ 0x3c, 0x7, 0x71, 0xdf, 0xe3, 0xf0,
/* U+74 "t" */
0x1c, 0x7, 0x1, 0xc3, 0xff, 0xff, 0xc7, 0x1,
- 0xc0, 0x70, 0x1c, 0x7, 0x1, 0xc0, 0x70, 0xf,
- 0xc1, 0xf0,
+ 0xc0, 0x70, 0x1c, 0x7, 0x1, 0xc0, 0x70, 0x1f,
+ 0xc3, 0xf0,
/* U+75 "u" */
0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f,
0xc7, 0xe3, 0xbf, 0x8f, 0x80,
/* U+76 "v" */
- 0xc0, 0xf8, 0x76, 0x19, 0x86, 0x73, 0x8c, 0xc3,
+ 0xe1, 0xf8, 0x76, 0x19, 0x86, 0x73, 0x8c, 0xc3,
0x30, 0xfc, 0x1e, 0x7, 0x81, 0xe0,
/* U+77 "w" */
- 0xc6, 0x79, 0xcf, 0x39, 0xb5, 0x36, 0xa6, 0xd6,
- 0xda, 0xdb, 0x4e, 0x79, 0xcf, 0x38, 0xc7, 0x0,
+ 0xe6, 0x36, 0x66, 0x66, 0x66, 0xf6, 0x6f, 0x66,
+ 0x96, 0x69, 0x62, 0x94, 0x39, 0xc3, 0x9c, 0x39,
+ 0xc0,
/* U+78 "x" */
0xe1, 0xdc, 0xe3, 0x30, 0xfc, 0x1e, 0x7, 0x81,
- 0xe0, 0xfc, 0x73, 0x9c, 0x6e, 0x1c,
+ 0xe0, 0xfc, 0x73, 0x9c, 0xee, 0x1c,
/* U+79 "y" */
- 0xe1, 0xf8, 0x76, 0x19, 0xce, 0x33, 0x8e, 0xc3,
- 0xf0, 0x7c, 0x1e, 0x3, 0x80, 0xc0, 0x70, 0x1c,
- 0x6, 0x0,
+ 0xe1, 0xf8, 0x76, 0x19, 0xce, 0x33, 0x8c, 0xc3,
+ 0xf0, 0x7c, 0x1e, 0x7, 0x80, 0xe0, 0x30, 0x1c,
+ 0x7, 0x1, 0x80,
/* U+7A "z" */
- 0xff, 0xff, 0xc1, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
+ 0xff, 0xff, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0x7f, 0xff, 0xe0,
/* U+7B "{" */
- 0x7, 0x87, 0xc3, 0x81, 0xc0, 0xe0, 0x70, 0x38,
+ 0x3, 0x87, 0xc3, 0x81, 0xc0, 0xe0, 0x70, 0x38,
0x1c, 0xfc, 0x7e, 0x3, 0x81, 0xc0, 0xe0, 0x70,
- 0x38, 0x1c, 0xf, 0x83, 0xc0,
+ 0x38, 0x1c, 0x7, 0x81, 0xc0,
/* U+7C "|" */
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
/* U+7D "}" */
- 0xf0, 0x3f, 0x1, 0xc0, 0x70, 0x1c, 0x7, 0x1,
+ 0xf0, 0x3e, 0x1, 0xc0, 0x70, 0x1c, 0x7, 0x1,
0xc0, 0x70, 0xf, 0xc3, 0xf1, 0xc0, 0x70, 0x1c,
0x7, 0x1, 0xc0, 0x70, 0xf8, 0x3c, 0x0,
/* U+7E "~" */
- 0x78, 0xff, 0x3c, 0xff, 0x1e,
+ 0x78, 0xff, 0x3c, 0xcf, 0x3f, 0xc7, 0x80,
+
+ /* U+410 "А" */
+ 0x1e, 0x7, 0x81, 0xe0, 0xfc, 0x3f, 0xc, 0xc3,
+ 0x31, 0xce, 0x73, 0x9f, 0xe7, 0xfb, 0x87, 0xe1,
+ 0xf0, 0x30,
+
+ /* U+411 "Б" */
+ 0xff, 0xbf, 0xee, 0x3, 0x80, 0xe0, 0x3f, 0xcf,
+ 0xfb, 0x8f, 0xe1, 0xf8, 0x7e, 0x1f, 0x8f, 0xff,
+ 0xbf, 0x80,
+
+ /* U+412 "В" */
+ 0xfe, 0x3f, 0xce, 0x3b, 0x8e, 0xe3, 0xb8, 0xcf,
+ 0xe3, 0xfc, 0xe3, 0xb8, 0x7e, 0x1f, 0x8f, 0xff,
+ 0xbf, 0xc0,
+
+ /* U+413 "Г" */
+ 0xff, 0xff, 0xf8, 0x1c, 0xe, 0x7, 0x3, 0x81,
+ 0xc0, 0xe0, 0x70, 0x38, 0x1c, 0xe, 0x7, 0x0,
+
+ /* U+414 "Д" */
+ 0x3f, 0xc7, 0xf8, 0xe7, 0x1c, 0xe3, 0x9c, 0x73,
+ 0x8e, 0x71, 0xce, 0x39, 0xc7, 0x38, 0xe7, 0x38,
+ 0xef, 0xff, 0xff, 0xf8, 0x3f, 0x7, 0xe0, 0xe0,
+
+ /* U+415 "Е" */
+ 0xff, 0xff, 0xf8, 0x1c, 0xe, 0x7, 0x3, 0xfd,
+ 0xfe, 0xe0, 0x70, 0x38, 0x1c, 0xf, 0xff, 0xfc,
+
+ /* U+416 "Ж" */
+ 0xe6, 0x76, 0x66, 0x66, 0x67, 0x66, 0x36, 0xc3,
+ 0x6c, 0x3f, 0xc3, 0x6c, 0x36, 0xc7, 0x6e, 0x66,
+ 0x66, 0x66, 0x66, 0x6c, 0x63,
+
+ /* U+417 "З" */
+ 0x1f, 0x8f, 0xfd, 0xc7, 0x80, 0x70, 0x1c, 0x3e,
+ 0x7, 0xf0, 0xf, 0x0, 0xe0, 0x1d, 0x83, 0xb8,
+ 0xf7, 0xfc, 0x3e, 0x0,
+
+ /* U+418 "И" */
+ 0xe7, 0xf3, 0xf9, 0xfc, 0xfe, 0xff, 0x7f, 0xaf,
+ 0xd7, 0xfb, 0xfd, 0xfc, 0xfe, 0x7f, 0x3f, 0x9c,
+
+ /* U+419 "Й" */
+ 0x63, 0x3b, 0x8f, 0x83, 0x80, 0x7, 0x3f, 0x9f,
+ 0xcf, 0xe7, 0xf7, 0xfb, 0xfd, 0x7e, 0xbf, 0xdf,
+ 0xef, 0xe7, 0xf3, 0xf9, 0xfc, 0xe0,
+
+ /* U+41A "К" */
+ 0xe1, 0xf8, 0x7e, 0x3b, 0x8e, 0xe7, 0x39, 0xcf,
+ 0xe3, 0xf8, 0xe7, 0x39, 0xce, 0x3b, 0x8e, 0xe1,
+ 0xf8, 0x70,
+
+ /* U+41B "Л" */
+ 0x3f, 0xcf, 0xf3, 0x9c, 0xe7, 0x39, 0xce, 0x73,
+ 0x9c, 0xe7, 0x39, 0xce, 0x73, 0x9d, 0xe7, 0xf1,
+ 0xf8, 0x70,
+
+ /* U+41C "М" */
+ 0xf3, 0xfc, 0xfd, 0x2f, 0xcf, 0xff, 0xff, 0xfe,
+ 0xdf, 0xb7, 0xe1, 0xf8, 0x7e, 0x1f, 0x87, 0xe1,
+ 0xf8, 0x70,
+
+ /* U+41D "Н" */
+ 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0xff,
+ 0xff, 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1c,
+
+ /* U+41E "О" */
+ 0x3e, 0x3f, 0xb8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f,
+ 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0x77, 0xf1, 0xf0,
+
+ /* U+41F "П" */
+ 0xff, 0xff, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f,
+ 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1c,
+
+ /* U+420 "Р" */
+ 0xff, 0x3f, 0xee, 0x3f, 0x87, 0xe1, 0xf8, 0xff,
+ 0xfb, 0xfc, 0xe0, 0x38, 0xe, 0x3, 0x80, 0xe0,
+ 0x38, 0x0,
+
+ /* U+421 "С" */
+ 0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe0, 0x38, 0xe,
+ 0x3, 0x80, 0xe0, 0x38, 0xe, 0x1f, 0xcf, 0x7f,
+ 0x8f, 0xc0,
+
+ /* U+422 "Т" */
+ 0xff, 0xff, 0xf0, 0xe0, 0x38, 0xe, 0x3, 0x80,
+ 0xe0, 0x38, 0xe, 0x3, 0x80, 0xe0, 0x38, 0xe,
+ 0x3, 0x80,
+
+ /* U+423 "У" */
+ 0xe1, 0xf8, 0x76, 0x19, 0xce, 0x33, 0x8c, 0xc3,
+ 0xb0, 0x7c, 0x1e, 0x3, 0x80, 0xc0, 0x70, 0x1c,
+ 0x6, 0x0,
+
+ /* U+424 "Ф" */
+ 0xc, 0xf, 0xc7, 0xfb, 0xb7, 0xcc, 0xf3, 0x3c,
+ 0xcf, 0x33, 0xcc, 0xf3, 0x3c, 0xcf, 0xb7, 0x7f,
+ 0x8f, 0xc0, 0xc0, 0x30,
+
+ /* U+425 "Х" */
+ 0xe1, 0xd8, 0x67, 0x38, 0xcc, 0x3f, 0x7, 0x81,
+ 0xe0, 0x78, 0x1e, 0xf, 0xc3, 0x31, 0xce, 0xe1,
+ 0xf8, 0x70,
+
+ /* U+426 "Ц" */
+ 0xe3, 0xb8, 0xee, 0x3b, 0x8e, 0xe3, 0xb8, 0xee,
+ 0x3b, 0x8e, 0xe3, 0xb8, 0xee, 0x3b, 0x8e, 0xff,
+ 0xff, 0xf0, 0x1c, 0x7, 0x1, 0xc0,
+
+ /* U+427 "Ч" */
+ 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0xce,
+ 0xff, 0x3f, 0x81, 0xc0, 0xe0, 0x70, 0x38, 0x1c,
+
+ /* U+428 "Ш" */
+ 0xcc, 0xf3, 0x3c, 0xcf, 0x33, 0xcc, 0xf3, 0x3c,
+ 0xcf, 0x33, 0xcc, 0xf3, 0x3c, 0xcf, 0x33, 0xff,
+ 0xff, 0xf0,
+
+ /* U+429 "Щ" */
+ 0xcc, 0xd9, 0x9b, 0x33, 0x66, 0x6c, 0xcd, 0x99,
+ 0xb3, 0x36, 0x66, 0xcc, 0xd9, 0x9b, 0x33, 0x66,
+ 0x6f, 0xff, 0xff, 0xc0, 0x18, 0x3,
+
+ /* U+42A "Ъ" */
+ 0xfc, 0xf, 0xc0, 0x1c, 0x1, 0xc0, 0x1c, 0x1,
+ 0xfc, 0x1f, 0xe1, 0xcf, 0x1c, 0x71, 0xc7, 0x1c,
+ 0x71, 0xcf, 0x1f, 0xe1, 0xf8,
+
+ /* U+42B "Ы" */
+ 0xc0, 0xf0, 0x3c, 0xf, 0x3, 0xc0, 0xfe, 0x3f,
+ 0xcf, 0x3b, 0xc6, 0xf1, 0xbc, 0x6f, 0x3b, 0xfc,
+ 0xfe, 0x30,
+
+ /* U+42C "Ь" */
+ 0xe0, 0x38, 0xe, 0x3, 0x80, 0xe0, 0x3f, 0xcf,
+ 0xfb, 0x8f, 0xe1, 0xf8, 0x7e, 0x1f, 0x8f, 0xff,
+ 0xbf, 0x80,
+
+ /* U+42D "Э" */
+ 0x3e, 0x3f, 0xb8, 0xfc, 0x70, 0x38, 0x1c, 0x7e,
+ 0x3f, 0x3, 0x81, 0xf8, 0xfc, 0x77, 0xf1, 0xf0,
+
+ /* U+42E "Ю" */
+ 0xc7, 0xb3, 0xfc, 0xcf, 0x33, 0xcc, 0xf3, 0x3f,
+ 0xcf, 0xf3, 0xcc, 0xf3, 0x3c, 0xcf, 0x33, 0xcf,
+ 0xf1, 0xe0,
+
+ /* U+42F "Я" */
+ 0x3f, 0xdf, 0xff, 0x1f, 0x87, 0xe1, 0xfc, 0x77,
+ 0xfc, 0xff, 0x39, 0xce, 0x77, 0x1d, 0xc7, 0x71,
+ 0xf8, 0x70,
+
+ /* U+430 "а" */
+ 0x1f, 0x1f, 0xe7, 0x1c, 0x7, 0x3f, 0xdf, 0xfe,
+ 0x1f, 0x87, 0xe3, 0xff, 0xf3, 0xdc,
+
+ /* U+431 "б" */
+ 0x1f, 0x3f, 0x9c, 0x1c, 0xe, 0xe7, 0xfb, 0x8f,
+ 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0x77, 0xf1, 0xf0,
+
+ /* U+432 "в" */
+ 0xfe, 0x7f, 0xb8, 0xfc, 0x7e, 0x3f, 0xf3, 0xfd,
+ 0xc7, 0xe3, 0xff, 0xff, 0x80,
+
+ /* U+433 "г" */
+ 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
+ 0xe0, 0xe0, 0xe0,
+
+ /* U+434 "д" */
+ 0x3f, 0xc7, 0xf8, 0xe7, 0x1c, 0xe3, 0x9c, 0x73,
+ 0x8e, 0x71, 0xce, 0x71, 0xdf, 0xff, 0xff, 0xf0,
+ 0x7e, 0xf, 0xc1, 0xc0,
+
+ /* U+435 "е" */
+ 0x3e, 0x3f, 0xb8, 0xfc, 0x7f, 0xff, 0xff, 0x81,
+ 0xc0, 0xe3, 0xbf, 0x8f, 0x80,
+
+ /* U+436 "ж" */
+ 0xe6, 0x76, 0x66, 0x66, 0x63, 0x6c, 0x36, 0xc3,
+ 0xfc, 0x36, 0xc3, 0x6c, 0x66, 0x66, 0x66, 0xe6,
+ 0x70,
+
+ /* U+437 "з" */
+ 0x3f, 0x1f, 0xfe, 0x1c, 0x7, 0x1f, 0x7, 0xe0,
+ 0x1c, 0x7, 0xe1, 0xdf, 0xe3, 0xf0,
+
+ /* U+438 "и" */
+ 0xc3, 0xe3, 0xf1, 0xf9, 0xfc, 0xde, 0xef, 0x67,
+ 0xb3, 0xf1, 0xf8, 0xf8, 0x60,
+
+ /* U+439 "й" */
+ 0x63, 0x31, 0x8f, 0x83, 0x80, 0x6, 0x1f, 0x1f,
+ 0x8f, 0xcf, 0xe6, 0xf7, 0x7b, 0x3f, 0x9f, 0x8f,
+ 0xc7, 0xc3,
+
+ /* U+43A "к" */
+ 0xe1, 0xf8, 0xee, 0x33, 0x9c, 0xfe, 0x3f, 0x8e,
+ 0x73, 0x9c, 0xe3, 0xb8, 0x6e, 0x1c,
+
+ /* U+43B "л" */
+ 0x3f, 0xcf, 0xf3, 0x9c, 0xe7, 0x39, 0xce, 0x73,
+ 0x9c, 0xe7, 0x39, 0xfc, 0x7e, 0x1c,
+
+ /* U+43C "м" */
+ 0xe1, 0xf8, 0x7f, 0x3f, 0xcf, 0xda, 0xf7, 0xbd,
+ 0xef, 0x33, 0xc0, 0xf0, 0x3c, 0xc,
+
+ /* U+43D "н" */
+ 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0xff, 0xff,
+ 0xc7, 0xe3, 0xf1, 0xf8, 0xe0,
+
+ /* U+43E "о" */
+ 0x3e, 0x3f, 0xb8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f,
+ 0xc7, 0xe3, 0xbf, 0x8f, 0x80,
+
+ /* U+43F "п" */
+ 0xff, 0xff, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f,
+ 0xc7, 0xe3, 0xf1, 0xf8, 0xe0,
+
+ /* U+440 "р" */
+ 0xee, 0x7f, 0xb8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f,
+ 0xc7, 0xe3, 0xff, 0xbb, 0x9c, 0xe, 0x7, 0x3,
+ 0x80,
+
+ /* U+441 "с" */
+ 0x3e, 0x3f, 0xb8, 0xfc, 0x7e, 0x7, 0x3, 0x81,
+ 0xc7, 0xe3, 0xbf, 0x8f, 0x80,
+
+ /* U+442 "т" */
+ 0xff, 0xff, 0xf0, 0xe0, 0x38, 0xe, 0x3, 0x80,
+ 0xe0, 0x38, 0xe, 0x3, 0x80, 0xe0,
+
+ /* U+443 "у" */
+ 0xe1, 0xf8, 0x76, 0x19, 0xce, 0x33, 0x8c, 0xc3,
+ 0xf0, 0x7c, 0x1e, 0x7, 0x80, 0xe0, 0x30, 0x1c,
+ 0x7, 0x1, 0x80,
+
+ /* U+444 "ф" */
+ 0xc, 0x3, 0x0, 0xc0, 0xfc, 0x7f, 0xbb, 0x7c,
+ 0xcf, 0x33, 0xcc, 0xf3, 0x3c, 0xcf, 0xb7, 0x7f,
+ 0x8f, 0xc0, 0xc0, 0x30, 0xc, 0x3, 0x0,
+
+ /* U+445 "х" */
+ 0xe1, 0xdc, 0xe3, 0x30, 0xfc, 0x1e, 0x7, 0x81,
+ 0xe0, 0xfc, 0x73, 0x9c, 0xee, 0x1c,
+
+ /* U+446 "ц" */
+ 0xe3, 0xb8, 0xee, 0x3b, 0x8e, 0xe3, 0xb8, 0xee,
+ 0x3b, 0x8e, 0xe3, 0xbf, 0xff, 0xfc, 0x7, 0x1,
+ 0xc0, 0x70,
+
+ /* U+447 "ч" */
+ 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3b, 0xfc, 0xfe,
+ 0x7, 0x3, 0x81, 0xc0, 0xe0,
+
+ /* U+448 "ш" */
+ 0xcc, 0xf3, 0x3c, 0xcf, 0x33, 0xcc, 0xf3, 0x3c,
+ 0xcf, 0x33, 0xcc, 0xff, 0xff, 0xfc,
+
+ /* U+449 "щ" */
+ 0xcc, 0xd9, 0x9b, 0x33, 0x66, 0x6c, 0xcd, 0x99,
+ 0xb3, 0x36, 0x66, 0xcc, 0xdf, 0xff, 0xff, 0x80,
+ 0x30, 0x6,
+
+ /* U+44A "ъ" */
+ 0xfc, 0xf, 0xc0, 0x1c, 0x1, 0xc0, 0x1f, 0xc1,
+ 0xfe, 0x1c, 0x71, 0xc7, 0x1c, 0x71, 0xfe, 0x1f,
+ 0xc0,
+
+ /* U+44B "ы" */
+ 0xc0, 0xf0, 0x3c, 0xf, 0x3, 0xf8, 0xff, 0x3c,
+ 0x6f, 0x1b, 0xc6, 0xff, 0x3f, 0x8c,
+
+ /* U+44C "ь" */
+ 0xe0, 0x38, 0xe, 0x3, 0x80, 0xff, 0x3f, 0xee,
+ 0x1f, 0x87, 0xe1, 0xff, 0xef, 0xf0,
+
+ /* U+44D "э" */
+ 0x3e, 0x3f, 0xb8, 0xe0, 0x70, 0xf8, 0x7c, 0xf,
+ 0xc7, 0xe7, 0xbf, 0x8f, 0x80,
+
+ /* U+44E "ю" */
+ 0xc7, 0xb3, 0xfc, 0xcf, 0x33, 0xcc, 0xff, 0x3f,
+ 0xcf, 0x33, 0xcc, 0xf3, 0xfc, 0x78,
+
+ /* U+44F "я" */
+ 0x3f, 0xbf, 0xf8, 0xfc, 0x7e, 0x3f, 0xfd, 0xfe,
+ 0x77, 0x73, 0xb9, 0xf8, 0xe0,
/* U+F001 "" */
0x0, 0x0, 0x70, 0x0, 0x7f, 0x0, 0x3f, 0xf0,
@@ -592,122 +879,186 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
{.bitmap_index = 7, .adv_w = 192, .box_w = 7, .box_h = 6, .ofs_x = 3, .ofs_y = 8},
{.bitmap_index = 13, .adv_w = 192, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 33, .adv_w = 192, .box_w = 10, .box_h = 19, .ofs_x = 1, .ofs_y = -3},
- {.bitmap_index = 57, .adv_w = 192, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 77, .adv_w = 192, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 97, .adv_w = 192, .box_w = 3, .box_h = 6, .ofs_x = 5, .ofs_y = 8},
- {.bitmap_index = 100, .adv_w = 192, .box_w = 7, .box_h = 19, .ofs_x = 3, .ofs_y = -2},
- {.bitmap_index = 117, .adv_w = 192, .box_w = 7, .box_h = 19, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 134, .adv_w = 192, .box_w = 10, .box_h = 10, .ofs_x = 1, .ofs_y = 1},
- {.bitmap_index = 147, .adv_w = 192, .box_w = 10, .box_h = 9, .ofs_x = 1, .ofs_y = 2},
- {.bitmap_index = 159, .adv_w = 192, .box_w = 5, .box_h = 6, .ofs_x = 3, .ofs_y = -3},
- {.bitmap_index = 163, .adv_w = 192, .box_w = 8, .box_h = 2, .ofs_x = 2, .ofs_y = 5},
- {.bitmap_index = 165, .adv_w = 192, .box_w = 4, .box_h = 4, .ofs_x = 4, .ofs_y = 0},
- {.bitmap_index = 167, .adv_w = 192, .box_w = 10, .box_h = 19, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 191, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 209, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 225, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 57, .adv_w = 192, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 78, .adv_w = 192, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 98, .adv_w = 192, .box_w = 3, .box_h = 6, .ofs_x = 5, .ofs_y = 8},
+ {.bitmap_index = 101, .adv_w = 192, .box_w = 7, .box_h = 19, .ofs_x = 3, .ofs_y = -2},
+ {.bitmap_index = 118, .adv_w = 192, .box_w = 7, .box_h = 19, .ofs_x = 2, .ofs_y = -2},
+ {.bitmap_index = 135, .adv_w = 192, .box_w = 10, .box_h = 10, .ofs_x = 1, .ofs_y = 1},
+ {.bitmap_index = 148, .adv_w = 192, .box_w = 10, .box_h = 9, .ofs_x = 1, .ofs_y = 2},
+ {.bitmap_index = 160, .adv_w = 192, .box_w = 5, .box_h = 6, .ofs_x = 3, .ofs_y = -4},
+ {.bitmap_index = 164, .adv_w = 192, .box_w = 9, .box_h = 2, .ofs_x = 2, .ofs_y = 5},
+ {.bitmap_index = 167, .adv_w = 192, .box_w = 4, .box_h = 3, .ofs_x = 4, .ofs_y = 0},
+ {.bitmap_index = 169, .adv_w = 192, .box_w = 10, .box_h = 19, .ofs_x = 1, .ofs_y = -2},
+ {.bitmap_index = 193, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 211, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 227, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 243, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 261, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 277, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 293, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 311, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 329, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 347, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 365, .adv_w = 192, .box_w = 3, .box_h = 11, .ofs_x = 4, .ofs_y = 0},
- {.bitmap_index = 370, .adv_w = 192, .box_w = 5, .box_h = 14, .ofs_x = 3, .ofs_y = -3},
- {.bitmap_index = 379, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 2, .ofs_y = 1},
- {.bitmap_index = 392, .adv_w = 192, .box_w = 9, .box_h = 7, .ofs_x = 2, .ofs_y = 3},
- {.bitmap_index = 400, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 2, .ofs_y = 1},
- {.bitmap_index = 413, .adv_w = 192, .box_w = 8, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 427, .adv_w = 192, .box_w = 11, .box_h = 17, .ofs_x = 1, .ofs_y = -3},
- {.bitmap_index = 451, .adv_w = 192, .box_w = 12, .box_h = 14, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 472, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 490, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 508, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 277, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 295, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 313, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 331, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 349, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 367, .adv_w = 192, .box_w = 4, .box_h = 11, .ofs_x = 4, .ofs_y = 0},
+ {.bitmap_index = 373, .adv_w = 192, .box_w = 5, .box_h = 15, .ofs_x = 3, .ofs_y = -4},
+ {.bitmap_index = 383, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 2, .ofs_y = 1},
+ {.bitmap_index = 396, .adv_w = 192, .box_w = 9, .box_h = 7, .ofs_x = 2, .ofs_y = 3},
+ {.bitmap_index = 404, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 2, .ofs_y = 1},
+ {.bitmap_index = 417, .adv_w = 192, .box_w = 8, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 431, .adv_w = 192, .box_w = 11, .box_h = 18, .ofs_x = 1, .ofs_y = -4},
+ {.bitmap_index = 456, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 474, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 492, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 510, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 526, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 542, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 558, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 576, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 592, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 608, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 626, .adv_w = 192, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 646, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 662, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 680, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 696, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 714, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 732, .adv_w = 192, .box_w = 10, .box_h = 17, .ofs_x = 1, .ofs_y = -3},
- {.bitmap_index = 754, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 772, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 790, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 808, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 824, .adv_w = 192, .box_w = 12, .box_h = 14, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 845, .adv_w = 192, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 865, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 883, .adv_w = 192, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 903, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 919, .adv_w = 192, .box_w = 6, .box_h = 18, .ofs_x = 4, .ofs_y = -2},
- {.bitmap_index = 933, .adv_w = 192, .box_w = 10, .box_h = 19, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 957, .adv_w = 192, .box_w = 6, .box_h = 18, .ofs_x = 3, .ofs_y = -2},
- {.bitmap_index = 971, .adv_w = 192, .box_w = 10, .box_h = 8, .ofs_x = 1, .ofs_y = 6},
- {.bitmap_index = 981, .adv_w = 192, .box_w = 10, .box_h = 2, .ofs_x = 1, .ofs_y = -3},
- {.bitmap_index = 984, .adv_w = 192, .box_w = 5, .box_h = 3, .ofs_x = 3, .ofs_y = 13},
- {.bitmap_index = 986, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 1000, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 1018, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 1032, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 1050, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 1064, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 1082, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = -3},
- {.bitmap_index = 1100, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 1116, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 1135, .adv_w = 192, .box_w = 8, .box_h = 18, .ofs_x = 1, .ofs_y = -3},
- {.bitmap_index = 1153, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 1171, .adv_w = 192, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1191, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 1205, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 1218, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 1232, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = -3},
- {.bitmap_index = 1250, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = -3},
- {.bitmap_index = 1268, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 1282, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 1296, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 1314, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 1327, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 1341, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1357, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 1371, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = -3},
- {.bitmap_index = 1389, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 1402, .adv_w = 192, .box_w = 9, .box_h = 18, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 1423, .adv_w = 192, .box_w = 3, .box_h = 18, .ofs_x = 5, .ofs_y = -2},
- {.bitmap_index = 1430, .adv_w = 192, .box_w = 10, .box_h = 18, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 1453, .adv_w = 192, .box_w = 10, .box_h = 4, .ofs_x = 1, .ofs_y = 5},
- {.bitmap_index = 1458, .adv_w = 320, .box_w = 20, .box_h = 20, .ofs_x = 0, .ofs_y = -3},
- {.bitmap_index = 1508, .adv_w = 320, .box_w = 19, .box_h = 20, .ofs_x = 0, .ofs_y = -3},
- {.bitmap_index = 1556, .adv_w = 320, .box_w = 20, .box_h = 17, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 1599, .adv_w = 320, .box_w = 19, .box_h = 20, .ofs_x = 0, .ofs_y = -3},
- {.bitmap_index = 1647, .adv_w = 120, .box_w = 8, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 1666, .adv_w = 320, .box_w = 20, .box_h = 20, .ofs_x = 0, .ofs_y = -3},
- {.bitmap_index = 1716, .adv_w = 240, .box_w = 15, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 1752, .adv_w = 320, .box_w = 20, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 1800, .adv_w = 320, .box_w = 20, .box_h = 17, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 1843, .adv_w = 400, .box_w = 25, .box_h = 12, .ofs_x = 0, .ofs_y = 1},
- {.bitmap_index = 1881, .adv_w = 400, .box_w = 25, .box_h = 12, .ofs_x = 0, .ofs_y = 1},
- {.bitmap_index = 1919, .adv_w = 400, .box_w = 25, .box_h = 12, .ofs_x = 0, .ofs_y = 1},
- {.bitmap_index = 1957, .adv_w = 400, .box_w = 25, .box_h = 12, .ofs_x = 0, .ofs_y = 1},
- {.bitmap_index = 1995, .adv_w = 400, .box_w = 25, .box_h = 12, .ofs_x = 0, .ofs_y = 1},
- {.bitmap_index = 2033, .adv_w = 280, .box_w = 15, .box_h = 20, .ofs_x = 1, .ofs_y = -3},
- {.bitmap_index = 2071, .adv_w = 200, .box_w = 11, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
- {.bitmap_index = 2100, .adv_w = 360, .box_w = 23, .box_h = 17, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 2149, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 2209, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3}
+ {.bitmap_index = 576, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 592, .adv_w = 192, .box_w = 8, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 606, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 624, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 642, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 658, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 676, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 692, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 708, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 726, .adv_w = 192, .box_w = 10, .box_h = 18, .ofs_x = 1, .ofs_y = -4},
+ {.bitmap_index = 749, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 767, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 785, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 803, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 819, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 837, .adv_w = 192, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 857, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 875, .adv_w = 192, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 895, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 911, .adv_w = 192, .box_w = 6, .box_h = 18, .ofs_x = 4, .ofs_y = -2},
+ {.bitmap_index = 925, .adv_w = 192, .box_w = 10, .box_h = 19, .ofs_x = 1, .ofs_y = -2},
+ {.bitmap_index = 949, .adv_w = 192, .box_w = 6, .box_h = 18, .ofs_x = 3, .ofs_y = -2},
+ {.bitmap_index = 963, .adv_w = 192, .box_w = 10, .box_h = 8, .ofs_x = 1, .ofs_y = 7},
+ {.bitmap_index = 973, .adv_w = 192, .box_w = 10, .box_h = 2, .ofs_x = 1, .ofs_y = -3},
+ {.bitmap_index = 976, .adv_w = 192, .box_w = 5, .box_h = 3, .ofs_x = 3, .ofs_y = 13},
+ {.bitmap_index = 978, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 992, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 1008, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1021, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1037, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1050, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1068, .adv_w = 192, .box_w = 9, .box_h = 15, .ofs_x = 1, .ofs_y = -4},
+ {.bitmap_index = 1085, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 1101, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1120, .adv_w = 192, .box_w = 8, .box_h = 19, .ofs_x = 1, .ofs_y = -4},
+ {.bitmap_index = 1139, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 1157, .adv_w = 192, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1177, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1191, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 1204, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1217, .adv_w = 192, .box_w = 9, .box_h = 15, .ofs_x = 2, .ofs_y = -4},
+ {.bitmap_index = 1234, .adv_w = 192, .box_w = 9, .box_h = 15, .ofs_x = 1, .ofs_y = -4},
+ {.bitmap_index = 1251, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 1264, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1278, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1296, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1309, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1323, .adv_w = 192, .box_w = 12, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1340, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1354, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = -4},
+ {.bitmap_index = 1373, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 1386, .adv_w = 192, .box_w = 9, .box_h = 18, .ofs_x = 2, .ofs_y = -2},
+ {.bitmap_index = 1407, .adv_w = 192, .box_w = 3, .box_h = 18, .ofs_x = 5, .ofs_y = -2},
+ {.bitmap_index = 1414, .adv_w = 192, .box_w = 10, .box_h = 18, .ofs_x = 1, .ofs_y = -2},
+ {.bitmap_index = 1437, .adv_w = 192, .box_w = 10, .box_h = 5, .ofs_x = 1, .ofs_y = 5},
+ {.bitmap_index = 1444, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1462, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 1480, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 1498, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 1514, .adv_w = 192, .box_w = 11, .box_h = 17, .ofs_x = 1, .ofs_y = -3},
+ {.bitmap_index = 1538, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 1554, .adv_w = 192, .box_w = 12, .box_h = 14, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1575, .adv_w = 192, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1595, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1611, .adv_w = 192, .box_w = 9, .box_h = 19, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1633, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 1651, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1669, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1687, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 1703, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1719, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 1735, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 1753, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1771, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1789, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1807, .adv_w = 192, .box_w = 10, .box_h = 16, .ofs_x = 1, .ofs_y = -1},
+ {.bitmap_index = 1827, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1845, .adv_w = 192, .box_w = 10, .box_h = 17, .ofs_x = 2, .ofs_y = -3},
+ {.bitmap_index = 1867, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1883, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1901, .adv_w = 192, .box_w = 11, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+ {.bitmap_index = 1923, .adv_w = 192, .box_w = 12, .box_h = 14, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1944, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1962, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 1980, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1996, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2014, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2032, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2046, .adv_w = 192, .box_w = 9, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2062, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 2075, .adv_w = 192, .box_w = 8, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 2086, .adv_w = 192, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = -3},
+ {.bitmap_index = 2106, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2119, .adv_w = 192, .box_w = 12, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 2136, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2150, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 2163, .adv_w = 192, .box_w = 9, .box_h = 16, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 2181, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 2195, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2209, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2223, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 2236, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2249, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 2262, .adv_w = 192, .box_w = 9, .box_h = 15, .ofs_x = 2, .ofs_y = -4},
+ {.bitmap_index = 2279, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2292, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2306, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = -4},
+ {.bitmap_index = 2325, .adv_w = 192, .box_w = 10, .box_h = 18, .ofs_x = 1, .ofs_y = -4},
+ {.bitmap_index = 2348, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2362, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = -3},
+ {.bitmap_index = 2380, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2393, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2407, .adv_w = 192, .box_w = 11, .box_h = 13, .ofs_x = 1, .ofs_y = -2},
+ {.bitmap_index = 2425, .adv_w = 192, .box_w = 12, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 2442, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2456, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 2470, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2483, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2497, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2510, .adv_w = 320, .box_w = 20, .box_h = 20, .ofs_x = 0, .ofs_y = -3},
+ {.bitmap_index = 2560, .adv_w = 320, .box_w = 19, .box_h = 20, .ofs_x = 0, .ofs_y = -3},
+ {.bitmap_index = 2608, .adv_w = 320, .box_w = 20, .box_h = 17, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2651, .adv_w = 320, .box_w = 19, .box_h = 20, .ofs_x = 0, .ofs_y = -3},
+ {.bitmap_index = 2699, .adv_w = 120, .box_w = 8, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+ {.bitmap_index = 2718, .adv_w = 320, .box_w = 20, .box_h = 20, .ofs_x = 0, .ofs_y = -3},
+ {.bitmap_index = 2768, .adv_w = 240, .box_w = 15, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+ {.bitmap_index = 2804, .adv_w = 320, .box_w = 20, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+ {.bitmap_index = 2852, .adv_w = 320, .box_w = 20, .box_h = 17, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2895, .adv_w = 400, .box_w = 25, .box_h = 12, .ofs_x = 0, .ofs_y = 1},
+ {.bitmap_index = 2933, .adv_w = 400, .box_w = 25, .box_h = 12, .ofs_x = 0, .ofs_y = 1},
+ {.bitmap_index = 2971, .adv_w = 400, .box_w = 25, .box_h = 12, .ofs_x = 0, .ofs_y = 1},
+ {.bitmap_index = 3009, .adv_w = 400, .box_w = 25, .box_h = 12, .ofs_x = 0, .ofs_y = 1},
+ {.bitmap_index = 3047, .adv_w = 400, .box_w = 25, .box_h = 12, .ofs_x = 0, .ofs_y = 1},
+ {.bitmap_index = 3085, .adv_w = 280, .box_w = 15, .box_h = 20, .ofs_x = 1, .ofs_y = -3},
+ {.bitmap_index = 3123, .adv_w = 200, .box_w = 11, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+ {.bitmap_index = 3152, .adv_w = 360, .box_w = 23, .box_h = 17, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 3201, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+ {.bitmap_index = 3261, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3}
};
/*---------------------
* CHARACTER MAPPING
*--------------------*/
-static const uint16_t unicode_list_1[] = {
+static const uint16_t unicode_list_2[] = {
0x0, 0x16, 0x39, 0x68, 0x128, 0x184, 0x1e5, 0x1fb,
0x21d, 0x23f, 0x240, 0x241, 0x242, 0x243, 0x292, 0x293,
0x3fc, 0x54a, 0x55f
@@ -721,8 +1072,12 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
},
{
- .range_start = 61441, .range_length = 1376, .glyph_id_start = 96,
- .unicode_list = unicode_list_1, .glyph_id_ofs_list = NULL, .list_length = 19, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+ .range_start = 1040, .range_length = 64, .glyph_id_start = 96,
+ .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
+ },
+ {
+ .range_start = 61441, .range_length = 1376, .glyph_id_start = 160,
+ .unicode_list = unicode_list_2, .glyph_id_ofs_list = NULL, .list_length = 19, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
}
};
@@ -739,7 +1094,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.cmaps = cmaps,
.kern_dsc = NULL,
.kern_scale = 0,
- .cmap_num = 2,
+ .cmap_num = 3,
.bpp = 1,
.kern_classes = 0,
.bitmap_format = 0
@@ -754,13 +1109,19 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
lv_font_t jetbrains_mono_bold_20 = {
.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 = 21, /*The maximum line height required by the font*/
- .base_line = 3, /*Baseline measured from the bottom of the line*/
+ .line_height = 23, /*The maximum line height required by the font*/
+ .base_line = 4, /*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)
+ .underline_position = -2,
+ .underline_thickness = 1,
+#endif
.dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
};
+
+
#endif /*#if JETBRAINS_MONO_BOLD_20*/
diff --git a/src/displayapp/screens/ApplicationList.cpp b/src/displayapp/screens/ApplicationList.cpp
index 7eb9718..1702697 100644
--- a/src/displayapp/screens/ApplicationList.cpp
+++ b/src/displayapp/screens/ApplicationList.cpp
@@ -1,9 +1,10 @@
-#include <libs/lvgl/lvgl.h>
-#include <displayapp/DisplayApp.h>
-#include <functional>
#include "ApplicationList.h"
-#include "Tile.h"
+#include <lvgl/lvgl.h>
+#include <array>
#include "Symbols.h"
+#include "Tile.h"
+#include "displayapp/Apps.h"
+#include "../DisplayApp.h"
using namespace Pinetime::Applications::Screens;
diff --git a/src/displayapp/screens/ApplicationList.h b/src/displayapp/screens/ApplicationList.h
index 9c95acb..aefb238 100644
--- a/src/displayapp/screens/ApplicationList.h
+++ b/src/displayapp/screens/ApplicationList.h
@@ -1,14 +1,9 @@
#pragma once
-#include <functional>
-#include <vector>
+#include <memory>
-#include "components/ble/NimbleController.h"
#include "Screen.h"
-#include "Label.h"
#include "ScreenList.h"
-#include "Gauge.h"
-#include "Meter.h"
namespace Pinetime {
namespace Applications {
diff --git a/src/displayapp/screens/BatteryIcon.cpp b/src/displayapp/screens/BatteryIcon.cpp
index 26939d1..4c10247 100644
--- a/src/displayapp/screens/BatteryIcon.cpp
+++ b/src/displayapp/screens/BatteryIcon.cpp
@@ -1,5 +1,6 @@
#include "BatteryIcon.h"
#include "Symbols.h"
+
using namespace Pinetime::Applications::Screens;
const char* BatteryIcon::GetBatteryIcon(float batteryPercent) {
diff --git a/src/displayapp/screens/BatteryIcon.h b/src/displayapp/screens/BatteryIcon.h
index 58f04a8..f100192 100644
--- a/src/displayapp/screens/BatteryIcon.h
+++ b/src/displayapp/screens/BatteryIcon.h
@@ -1,7 +1,5 @@
#pragma once
-#include <libs/lvgl/src/lv_draw/lv_img_decoder.h>
-
namespace Pinetime {
namespace Applications {
namespace Screens {
diff --git a/src/displayapp/screens/Brightness.cpp b/src/displayapp/screens/Brightness.cpp
index 8ea9a77..c8085be 100644
--- a/src/displayapp/screens/Brightness.cpp
+++ b/src/displayapp/screens/Brightness.cpp
@@ -1,5 +1,5 @@
-#include <libs/lvgl/lvgl.h>
#include "Brightness.h"
+#include <lvgl/lvgl.h>
using namespace Pinetime::Applications::Screens;
diff --git a/src/displayapp/screens/Brightness.h b/src/displayapp/screens/Brightness.h
index 7d599ac..7aee968 100644
--- a/src/displayapp/screens/Brightness.h
+++ b/src/displayapp/screens/Brightness.h
@@ -1,8 +1,9 @@
#pragma once
-#include <libs/lvgl/src/lv_core/lv_obj.h>
-#include "components/brightness/BrightnessController.h"
+#include <lvgl/src/lv_core/lv_obj.h>
+#include <cstdint>
#include "Screen.h"
+#include "components/brightness/BrightnessController.h"
namespace Pinetime {
namespace Applications {
diff --git a/src/displayapp/screens/Clock.cpp b/src/displayapp/screens/Clock.cpp
index 977321c1..5765914 100644
--- a/src/displayapp/screens/Clock.cpp
+++ b/src/displayapp/screens/Clock.cpp
@@ -1,15 +1,16 @@
-#include <cstdio>
-
-#include <libs/date/includes/date/date.h>
-#include "components/datetime/DateTimeController.h"
-#include <libs/lvgl/lvgl.h>
#include "Clock.h"
-#include "../DisplayApp.h"
+
+#include <date/date.h>
+#include <lvgl/lvgl.h>
+#include <cstdio>
#include "BatteryIcon.h"
#include "BleIcon.h"
+#include "NotificationIcon.h"
#include "Symbols.h"
+#include "components/battery/BatteryController.h"
+#include "components/ble/BleController.h"
#include "components/ble/NotificationManager.h"
-#include "NotificationIcon.h"
+#include "../DisplayApp.h"
using namespace Pinetime::Applications::Screens;
extern lv_font_t jetbrains_mono_extrabold_compressed;
diff --git a/src/displayapp/screens/Clock.h b/src/displayapp/screens/Clock.h
index 58149a7..4c5f60a 100644
--- a/src/displayapp/screens/Clock.h
+++ b/src/displayapp/screens/Clock.h
@@ -1,17 +1,19 @@
#pragma once
-#include <cstdint>
+#include <lvgl/src/lv_core/lv_obj.h>
#include <chrono>
-
+#include <cstdint>
+#include <memory>
#include "Screen.h"
-#include <bits/unique_ptr.h>
-#include <libs/lvgl/src/lv_core/lv_style.h>
-#include <libs/lvgl/src/lv_core/lv_obj.h>
-#include "components/ble/NotificationManager.h"
-#include "components/battery/BatteryController.h"
-#include "components/ble/BleController.h"
+#include "components/datetime/DateTimeController.h"
namespace Pinetime {
+ namespace Controllers {
+ class Battery;
+ class Ble;
+ class NotificationManager;
+ }
+
namespace Applications {
namespace Screens {
@@ -34,7 +36,7 @@ namespace Pinetime {
T value;
bool isUpdated = true;
};
- class Clock : public Screen{
+ class Clock : public Screen {
public:
Clock(DisplayApp* app,
Controllers::DateTime& dateTimeController,
diff --git a/src/displayapp/screens/DropDownDemo.cpp b/src/displayapp/screens/DropDownDemo.cpp
index ce3acd5..37728e1 100644
--- a/src/displayapp/screens/DropDownDemo.cpp
+++ b/src/displayapp/screens/DropDownDemo.cpp
@@ -1,6 +1,6 @@
-#include <libs/lvgl/lvgl.h>
-#include <libraries/log/nrf_log.h>
#include "DropDownDemo.h"
+#include <lvgl/lvgl.h>
+#include <libraries/log/nrf_log.h>
#include "../DisplayApp.h"
using namespace Pinetime::Applications::Screens;
diff --git a/src/displayapp/screens/DropDownDemo.h b/src/displayapp/screens/DropDownDemo.h
index 7c75efc..d66aeed 100644
--- a/src/displayapp/screens/DropDownDemo.h
+++ b/src/displayapp/screens/DropDownDemo.h
@@ -2,15 +2,13 @@
#include <cstdint>
#include "Screen.h"
-#include <bits/unique_ptr.h>
-#include <libs/lvgl/src/lv_core/lv_style.h>
-#include <libs/lvgl/src/lv_core/lv_obj.h>
+#include <lvgl/src/lv_core/lv_obj.h>
namespace Pinetime {
namespace Applications {
namespace Screens {
- class DropDownDemo : public Screen{
+ class DropDownDemo : public Screen {
public:
DropDownDemo(DisplayApp* app);
~DropDownDemo() override;
diff --git a/src/displayapp/screens/FirmwareUpdate.cpp b/src/displayapp/screens/FirmwareUpdate.cpp
index 778409e..b9f891d 100644
--- a/src/displayapp/screens/FirmwareUpdate.cpp
+++ b/src/displayapp/screens/FirmwareUpdate.cpp
@@ -1,5 +1,6 @@
-#include <libs/lvgl/lvgl.h>
#include "FirmwareUpdate.h"
+#include <lvgl/lvgl.h>
+#include "components/ble/BleController.h"
#include "../DisplayApp.h"
using namespace Pinetime::Applications::Screens;
diff --git a/src/displayapp/screens/FirmwareUpdate.h b/src/displayapp/screens/FirmwareUpdate.h
index 893fe68..262e7af 100644
--- a/src/displayapp/screens/FirmwareUpdate.h
+++ b/src/displayapp/screens/FirmwareUpdate.h
@@ -1,15 +1,12 @@
#pragma once
-#include <cstdint>
-#include <chrono>
-
#include "Screen.h"
-#include <bits/unique_ptr.h>
-#include <libs/lvgl/src/lv_core/lv_style.h>
-#include <libs/lvgl/src/lv_core/lv_obj.h>
-#include "components/ble/BleController.h"
+#include <lvgl/src/lv_core/lv_obj.h>
namespace Pinetime {
+ namespace Controllers {
+ class Ble;
+ }
namespace Applications {
namespace Screens {
diff --git a/src/displayapp/screens/FirmwareValidation.cpp b/src/displayapp/screens/FirmwareValidation.cpp
index 4ac399f..d4165dc 100644
--- a/src/displayapp/screens/FirmwareValidation.cpp
+++ b/src/displayapp/screens/FirmwareValidation.cpp
@@ -1,8 +1,8 @@
-#include <libs/lvgl/lvgl.h>
#include "FirmwareValidation.h"
-#include "../DisplayApp.h"
-#include "../../Version.h"
+#include <lvgl/lvgl.h>
+#include "Version.h"
#include "components/firmwarevalidator/FirmwareValidator.h"
+#include "../DisplayApp.h"
using namespace Pinetime::Applications::Screens;
extern lv_font_t jetbrains_mono_extrabold_compressed;
@@ -87,5 +87,3 @@ void FirmwareValidation::OnButtonEvent(lv_obj_t *object, lv_event_t event) {
}
}
-
-
diff --git a/src/displayapp/screens/FirmwareValidation.h b/src/displayapp/screens/FirmwareValidation.h
index 947f557..9eea86b 100644
--- a/src/displayapp/screens/FirmwareValidation.h
+++ b/src/displayapp/screens/FirmwareValidation.h
@@ -1,10 +1,7 @@
#pragma once
-#include <cstdint>
#include "Screen.h"
-#include <bits/unique_ptr.h>
-#include <libs/lvgl/src/lv_core/lv_style.h>
-#include <libs/lvgl/src/lv_core/lv_obj.h>
+#include <lvgl/src/lv_core/lv_obj.h>
namespace Pinetime {
namespace Controllers {
diff --git a/src/displayapp/screens/Gauge.cpp b/src/displayapp/screens/Gauge.cpp
index 81c283c..1b9f2c6 100644
--- a/src/displayapp/screens/Gauge.cpp
+++ b/src/displayapp/screens/Gauge.cpp
@@ -1,4 +1,3 @@
-#include <libs/lvgl/lvgl.h>
#include "Gauge.h"
#include "../DisplayApp.h"
diff --git a/src/displayapp/screens/Gauge.h b/src/displayapp/screens/Gauge.h
index 03c06be..2a6b8f8 100644
--- a/src/displayapp/screens/Gauge.h
+++ b/src/displayapp/screens/Gauge.h
@@ -2,9 +2,7 @@
#include <cstdint>
#include "Screen.h"
-#include <bits/unique_ptr.h>
-#include <libs/lvgl/src/lv_core/lv_style.h>
-#include <libs/lvgl/src/lv_core/lv_obj.h>
+#include <lvgl/lvgl.h>
namespace Pinetime {
namespace Applications {
diff --git a/src/displayapp/screens/InfiniPaint.cpp b/src/displayapp/screens/InfiniPaint.cpp
index 3ea75e9..65be662 100644
--- a/src/displayapp/screens/InfiniPaint.cpp
+++ b/src/displayapp/screens/InfiniPaint.cpp
@@ -1,7 +1,6 @@
-#include <libs/lvgl/lvgl.h>
-#include <libraries/log/nrf_log.h>
#include "InfiniPaint.h"
#include "../DisplayApp.h"
+#include "../LittleVgl.h"
using namespace Pinetime::Applications::Screens;
extern lv_font_t jetbrains_mono_extrabold_compressed;
diff --git a/src/displayapp/screens/InfiniPaint.h b/src/displayapp/screens/InfiniPaint.h
index f29135d..9a7ac07 100644
--- a/src/displayapp/screens/InfiniPaint.h
+++ b/src/displayapp/screens/InfiniPaint.h
@@ -1,31 +1,30 @@
#pragma once
+#include <lvgl/lvgl.h>
#include <cstdint>
#include "Screen.h"
-#include <bits/unique_ptr.h>
-#include <libs/lvgl/src/lv_core/lv_style.h>
-#include <libs/lvgl/src/lv_core/lv_obj.h>
-#include <drivers/St7789.h>
-#include "displayapp/LittleVgl.h"
namespace Pinetime {
+ namespace Components {
+ class LittleVgl;
+ }
namespace Applications {
namespace Screens {
-
+
class InfiniPaint : public Screen {
public:
InfiniPaint(DisplayApp* app, Pinetime::Components::LittleVgl& lvgl);
-
+
~InfiniPaint() override;
-
+
bool Refresh() override;
-
+
bool OnButtonPushed() override;
-
+
bool OnTouchEvent(TouchEvents event) override;
-
+
bool OnTouchEvent(uint16_t x, uint16_t y) override;
-
+
private:
Pinetime::Components::LittleVgl& lvgl;
static constexpr uint16_t width = 10;
diff --git a/src/displayapp/screens/Label.cpp b/src/displayapp/screens/Label.cpp
index 540776c..4be7742 100644
--- a/src/displayapp/screens/Label.cpp
+++ b/src/displayapp/screens/Label.cpp
@@ -1,4 +1,3 @@
-#include <libs/lvgl/lvgl.h>
#include "Label.h"
using namespace Pinetime::Applications::Screens;
diff --git a/src/displayapp/screens/Label.h b/src/displayapp/screens/Label.h
index 3e7b379..dba89bb 100644
--- a/src/displayapp/screens/Label.h
+++ b/src/displayapp/screens/Label.h
@@ -1,6 +1,5 @@
#pragma once
-#include <vector>
#include "Screen.h"
#include <lvgl/lvgl.h>
diff --git a/src/displayapp/screens/Meter.cpp b/src/displayapp/screens/Meter.cpp
index 273e111..3c8e703 100644
--- a/src/displayapp/screens/Meter.cpp
+++ b/src/displayapp/screens/Meter.cpp
@@ -1,5 +1,5 @@
-#include <libs/lvgl/lvgl.h>
#include "Meter.h"
+#include <lvgl/lvgl.h>
#include "../DisplayApp.h"
using namespace Pinetime::Applications::Screens;
diff --git a/src/displayapp/screens/Meter.h b/src/displayapp/screens/Meter.h
index ddf8be8..86888dd 100644
--- a/src/displayapp/screens/Meter.h
+++ b/src/displayapp/screens/Meter.h
@@ -1,11 +1,9 @@
#pragma once
#include <cstdint>
-#include <chrono>
#include "Screen.h"
-#include <bits/unique_ptr.h>
-#include <libs/lvgl/src/lv_core/lv_style.h>
-#include <libs/lvgl/src/lv_core/lv_obj.h>
+#include <lvgl/src/lv_core/lv_style.h>
+#include <lvgl/src/lv_core/lv_obj.h>
namespace Pinetime {
namespace Applications {
diff --git a/src/displayapp/screens/Modal.cpp b/src/displayapp/screens/Modal.cpp
index 29f7bfa..d1a110e 100644
--- a/src/displayapp/screens/Modal.cpp
+++ b/src/displayapp/screens/Modal.cpp
@@ -1,5 +1,5 @@
-#include <libs/lvgl/lvgl.h>
#include "Modal.h"
+#include <lvgl/lvgl.h>
#include "../DisplayApp.h"
using namespace Pinetime::Applications::Screens;
diff --git a/src/displayapp/screens/Modal.h b/src/displayapp/screens/Modal.h
index c616c29..9cc177f 100644
--- a/src/displayapp/screens/Modal.h
+++ b/src/displayapp/screens/Modal.h
@@ -1,11 +1,8 @@
#pragma once
-#include <cstdint>
-#include <chrono>
#include "Screen.h"
-#include <bits/unique_ptr.h>
-#include <libs/lvgl/src/lv_core/lv_style.h>
-#include <libs/lvgl/src/lv_core/lv_obj.h>
+#include <lvgl/src/lv_core/lv_style.h>
+#include <lvgl/src/lv_core/lv_obj.h>
namespace Pinetime {
namespace Applications {
diff --git a/src/displayapp/screens/Music.cpp b/src/displayapp/screens/Music.cpp
index 225a15a..c4ae3ac 100644
--- a/src/displayapp/screens/Music.cpp
+++ b/src/displayapp/screens/Music.cpp
@@ -15,9 +15,13 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-#include <libs/lvgl/lvgl.h>
-
#include "Music.h"
+#include <cstdint>
+#include "../DisplayApp.h"
+#include "components/ble/MusicService.h"
+#include "displayapp/icons/music/disc.cpp"
+#include "displayapp/icons/music/disc_f_1.cpp"
+#include "displayapp/icons/music/disc_f_2.cpp"
using namespace Pinetime::Applications::Screens;
diff --git a/src/displayapp/screens/Music.h b/src/displayapp/screens/Music.h
index 81ba793..66bde21 100644
--- a/src/displayapp/screens/Music.h
+++ b/src/displayapp/screens/Music.h
@@ -17,24 +17,16 @@
*/
#pragma once
-#include <cstdint>
-#include <chrono>
+#include <FreeRTOS.h>
+#include <lvgl/src/lv_core/lv_obj.h>
#include <string>
-
-#include "components/gfx/Gfx.h"
-#include "components/battery/BatteryController.h"
-#include "components/ble/BleController.h"
-#include "components/ble/MusicService.h"
#include "Screen.h"
-#include <bits/unique_ptr.h>
-#include <libs/lvgl/src/lv_core/lv_style.h>
-#include <libs/lvgl/src/lv_core/lv_obj.h>
-#include "../../Version.h"
-#include "displayapp/icons/music/disc.cpp"
-#include "displayapp/icons/music/disc_f_1.cpp"
-#include "displayapp/icons/music/disc_f_2.cpp"
namespace Pinetime {
+ namespace Controllers {
+ class MusicService;
+ }
+
namespace Applications {
namespace Screens {
class Music : public Screen {
diff --git a/src/displayapp/screens/Notifications.cpp b/src/displayapp/screens/Notifications.cpp
index 85848b2..51a601c 100644
--- a/src/displayapp/screens/Notifications.cpp
+++ b/src/displayapp/screens/Notifications.cpp
@@ -1,7 +1,5 @@
-#include <libs/lvgl/lvgl.h>
-#include <displayapp/DisplayApp.h>
-#include <functional>
#include "Notifications.h"
+#include <displayapp/DisplayApp.h>
using namespace Pinetime::Applications::Screens;
diff --git a/src/displayapp/screens/Notifications.h b/src/displayapp/screens/Notifications.h
index fb4e1ef..f5c6a86 100644
--- a/src/displayapp/screens/Notifications.h
+++ b/src/displayapp/screens/Notifications.h
@@ -1,11 +1,10 @@
#pragma once
-#include <functional>
-#include <vector>
-
+#include <lvgl/lvgl.h>
+#include <cstdint>
+#include <memory>
#include "Screen.h"
-#include "ScreenList.h"
-
+#include "components/ble/NotificationManager.h"
namespace Pinetime {
namespace Applications {
diff --git a/src/displayapp/screens/ScreenList.h b/src/displayapp/screens/ScreenList.h
index b198634..736e363 100644
--- a/src/displayapp/screens/ScreenList.h
+++ b/src/displayapp/screens/ScreenList.h
@@ -1,10 +1,10 @@
#pragma once
-#include <vector>
+#include <array>
#include <functional>
-#include "components/ble/NimbleController.h"
+#include <memory>
#include "Screen.h"
-#include "Label.h"
+#include "../DisplayApp.h"
namespace Pinetime {
namespace Applications {
diff --git a/src/displayapp/screens/SystemInfo.cpp b/src/displayapp/screens/SystemInfo.cpp
index 83384fb..d821ac7 100644
--- a/src/displayapp/screens/SystemInfo.cpp
+++ b/src/displayapp/screens/SystemInfo.cpp
@@ -1,9 +1,13 @@
-#include <libs/lvgl/lvgl.h>
-#include <displayapp/DisplayApp.h>
-#include <functional>
#include "SystemInfo.h"
-#include "../../Version.h"
-#include "Tile.h"
+#include <lvgl/lvgl.h>
+#include "../DisplayApp.h"
+#include "Label.h"
+#include "Version.h"
+#include "components/battery/BatteryController.h"
+#include "components/ble/BleController.h"
+#include "components/brightness/BrightnessController.h"
+#include "components/datetime/DateTimeController.h"
+#include "drivers/Watchdog.h"
using namespace Pinetime::Applications::Screens;
diff --git a/src/displayapp/screens/SystemInfo.h b/src/displayapp/screens/SystemInfo.h
index 987a584..a71bacc 100644
--- a/src/displayapp/screens/SystemInfo.h
+++ b/src/displayapp/screens/SystemInfo.h
@@ -1,17 +1,24 @@
#pragma once
-#include <functional>
-#include <vector>
-
-#include "components/ble/NimbleController.h"
+#include <memory>
#include "Screen.h"
-#include "Label.h"
#include "ScreenList.h"
-#include "Gauge.h"
-#include "Meter.h"
namespace Pinetime {
+ namespace Controllers {
+ class DateTime;
+ class Battery;
+ class BrightnessController;
+ class Ble;
+ }
+
+ namespace Drivers {
+ class WatchdogView;
+ }
+
namespace Applications {
+ class DisplayApp;
+
namespace Screens {
class SystemInfo : public Screen {
public:
diff --git a/src/displayapp/screens/Tab.cpp b/src/displayapp/screens/Tab.cpp
deleted file mode 100644
index 44b806c..0000000
--- a/src/displayapp/screens/Tab.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-#include <cstdio>
-#include <libs/date/includes/date/date.h>
-#include "components/datetime/DateTimeController.h"
-#include <Version.h>
-#include <libs/lvgl/src/lv_core/lv_obj.h>
-#include <libs/lvgl/src/lv_font/lv_font.h>
-#include <libs/lvgl/lvgl.h>
-#include <libraries/log/nrf_log.h>
-#include "Tab.h"
-#include "displayapp/DisplayApp.h"
-
-
-using namespace Pinetime::Applications::Screens;
-
-extern lv_font_t jetbrains_mono_bold_20;
-
-//static void event_handler(lv_obj_t * obj, lv_event_t event) {
-// Tile* screen = static_cast<Tile *>(obj->user_data);
-// screen->OnObjectEvent(obj, event);
-//}
-
-Tab::Tab(DisplayApp* app, Pinetime::Components::Gfx &gfx) : Screen(app, gfx) {
-/*Create a Tab view object*/
- lv_obj_t *tabview;
- tabview = lv_tabview_create(lv_scr_act(), NULL);
-
- /*Add 3 tabs (the tabs are page (lv_page) and can be scrolled*/
- lv_obj_t *tab1 = lv_tabview_add_tab(tabview, "Tab 1");
- lv_obj_t *tab2 = lv_tabview_add_tab(tabview, "Tab 2");
- lv_obj_t *tab3 = lv_tabview_add_tab(tabview, "Tab 3");
-
-
- /*Add content to the tabs*/
- lv_obj_t * label = lv_label_create(tab1, NULL);
- lv_label_set_text(label, "This the first tab\n\n"
- "If the content\n"
- "of a tab\n"
- "become too long\n"
- "the it \n"
- "automatically\n"
- "become\n"
- "scrollable.");
-
- label = lv_label_create(tab2, NULL);
- lv_label_set_text(label, "Second tab");
-
- label = lv_label_create(tab3, NULL);
- lv_label_set_text(label, "Third tab");
-
-}
-
-Tab::~Tab() {
- lv_obj_clean(lv_scr_act());
-}
-
-void Tab::Refresh(bool fullRefresh) {
-
-}
-
-void Tab::OnObjectEvent(lv_obj_t *obj, lv_event_t event) {
- if(event == LV_EVENT_CLICKED) {
- NRF_LOG_INFO("Clicked");
- }
- else if(event == LV_EVENT_VALUE_CHANGED) {
- NRF_LOG_INFO("Toggled");
- }
-}
diff --git a/src/displayapp/screens/Tab.h b/src/displayapp/screens/Tab.h
deleted file mode 100644
index e16dbb9..0000000
--- a/src/displayapp/screens/Tab.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#pragma once
-
-#include <cstdint>
-#include "Screen.h"
-#include <bits/unique_ptr.h>
-#include <lvgl/src/lv_core/lv_style.h>
-
-namespace Pinetime {
- namespace Applications {
- namespace Screens {
- class Tab : public Screen {
- public:
- explicit Tab(DisplayApp* app, Components::Gfx& gfx);
- ~Tab() override;
- void Refresh(bool fullRefresh) override;
- void OnObjectEvent(lv_obj_t* obj, lv_event_t event);
-
- private:
-
- };
- }
- }
-}
diff --git a/src/displayapp/screens/Tile.cpp b/src/displayapp/screens/Tile.cpp
index 75fa6ef..c1a5e94 100644
--- a/src/displayapp/screens/Tile.cpp
+++ b/src/displayapp/screens/Tile.cpp
@@ -1,11 +1,5 @@
-#include <libs/lvgl/src/lv_core/lv_obj.h>
-#include <libs/lvgl/src/lv_font/lv_font.h>
-#include <libs/lvgl/lvgl.h>
-
#include "Tile.h"
-#include "displayapp/DisplayApp.h"
-#include "Symbols.h"
-#include "../../Version.h"
+#include "../DisplayApp.h"
using namespace Pinetime::Applications::Screens;
diff --git a/src/displayapp/screens/Tile.h b/src/displayapp/screens/Tile.h
index cf5fcf1..7edf67b 100644
--- a/src/displayapp/screens/Tile.h
+++ b/src/displayapp/screens/Tile.h
@@ -1,11 +1,11 @@
#pragma once
+#include <lvgl/lvgl.h>
#include <cstdint>
-#include "Screen.h"
-#include <bits/unique_ptr.h>
+#include <memory>
#include "Modal.h"
-#include <lvgl/src/lv_core/lv_style.h>
-#include <displayapp/Apps.h>
+#include "Screen.h"
+#include "../Apps.h"
namespace Pinetime {
namespace Applications {
diff --git a/src/drivers/BufferProvider.h b/src/drivers/BufferProvider.h
index 50fa253..1be4317 100644
--- a/src/drivers/BufferProvider.h
+++ b/src/drivers/BufferProvider.h
@@ -1,5 +1,6 @@
#pragma once
#include <cstddef>
+#include <cstdint>
namespace Pinetime {
namespace Drivers {
diff --git a/src/drivers/Cst816s.cpp b/src/drivers/Cst816s.cpp
index 94db3b3..e703b73 100644
--- a/src/drivers/Cst816s.cpp
+++ b/src/drivers/Cst816s.cpp
@@ -1,8 +1,9 @@
+#include "Cst816s.h"
#include <FreeRTOS.h>
-#include <task.h>
-#include <nrfx_log.h>
#include <legacy/nrf_drv_gpiote.h>
-#include "Cst816s.h"
+#include <nrfx_log.h>
+#include <task.h>
+
using namespace Pinetime::Drivers;
/* References :
diff --git a/src/drivers/Cst816s.h b/src/drivers/Cst816s.h
index 4569e82..b7876b8 100644
--- a/src/drivers/Cst816s.h
+++ b/src/drivers/Cst816s.h
@@ -1,6 +1,5 @@
#pragma once
-#include <nrfx_twi.h>
#include "TwiMaster.h"
namespace Pinetime {
diff --git a/src/drivers/DebugPins.cpp b/src/drivers/DebugPins.cpp
index 5a12fd8..8457ba5 100644
--- a/src/drivers/DebugPins.cpp
+++ b/src/drivers/DebugPins.cpp
@@ -1,5 +1,5 @@
-#include <hal/nrf_gpio.h>
#include "DebugPins.h"
+#include <hal/nrf_gpio.h>
#ifdef USE_DEBUG_PINS
void debugpins_init() {
diff --git a/src/drivers/InternalFlash.cpp b/src/drivers/InternalFlash.cpp
index db705d7..33c1447 100644
--- a/src/drivers/InternalFlash.cpp
+++ b/src/drivers/InternalFlash.cpp
@@ -1,5 +1,5 @@
-#include <mdk/nrf.h>
#include "InternalFlash.h"
+#include <mdk/nrf.h>
using namespace Pinetime::Drivers;
void InternalFlash::ErasePage(uint32_t address) {
diff --git a/src/drivers/Spi.cpp b/src/drivers/Spi.cpp
index 2d8aa3b..0e7de4d 100644
--- a/src/drivers/Spi.cpp
+++ b/src/drivers/Spi.cpp
@@ -1,6 +1,6 @@
+#include "Spi.h"
#include <hal/nrf_gpio.h>
#include <nrfx_log.h>
-#include "Spi.h"
using namespace Pinetime::Drivers;
diff --git a/src/drivers/Spi.h b/src/drivers/Spi.h
index 82ba8a6..e3cab45 100644
--- a/src/drivers/Spi.h
+++ b/src/drivers/Spi.h
@@ -1,12 +1,6 @@
#pragma once
-#include <FreeRTOS.h>
#include <cstdint>
#include <cstddef>
-#include <array>
-#include <atomic>
-#include <task.h>
-
-#include "BufferProvider.h"
#include "SpiMaster.h"
namespace Pinetime {
diff --git a/src/drivers/SpiMaster.cpp b/src/drivers/SpiMaster.cpp
index 2e5852a..5f7c064 100644
--- a/src/drivers/SpiMaster.cpp
+++ b/src/drivers/SpiMaster.cpp
@@ -1,10 +1,8 @@
-#include <FreeRTOS.h>
+#include "SpiMaster.h"
#include <hal/nrf_gpio.h>
#include <hal/nrf_spim.h>
-#include "SpiMaster.h"
-#include <algorithm>
-#include <task.h>
#include <nrfx_log.h>
+#include <algorithm>
using namespace Pinetime::Drivers;
diff --git a/src/drivers/SpiMaster.h b/src/drivers/SpiMaster.h
index cd3193e..cb79d90 100644
--- a/src/drivers/SpiMaster.h
+++ b/src/drivers/SpiMaster.h
@@ -1,14 +1,10 @@
#pragma once
-#include <FreeRTOS.h>
-#include <cstdint>
#include <cstddef>
-#include <array>
-#include <atomic>
-#include <task.h>
-#include <semphr.h>
+#include <cstdint>
-#include "BufferProvider.h"
+#include <FreeRTOS.h>
#include <semphr.h>
+#include <task.h>
namespace Pinetime {
namespace Drivers {
diff --git a/src/drivers/SpiNorFlash.cpp b/src/drivers/SpiNorFlash.cpp
index bd24834..3ea5afe 100644
--- a/src/drivers/SpiNorFlash.cpp
+++ b/src/drivers/SpiNorFlash.cpp
@@ -1,7 +1,7 @@
+#include "SpiNorFlash.h"
#include <hal/nrf_gpio.h>
#include <libraries/delay/nrf_delay.h>
#include <libraries/log/nrf_log.h>
-#include "SpiNorFlash.h"
#include "Spi.h"
using namespace Pinetime::Drivers;
diff --git a/src/drivers/SpiNorFlash.h b/src/drivers/SpiNorFlash.h
index 10c25a0..7702d43 100644
--- a/src/drivers/SpiNorFlash.h
+++ b/src/drivers/SpiNorFlash.h
@@ -1,5 +1,6 @@
#pragma once
#include <cstddef>
+#include <cstdint>
namespace Pinetime {
namespace Drivers {
diff --git a/src/drivers/St7789.cpp b/src/drivers/St7789.cpp
index ed28c82..2df2c53 100644
--- a/src/drivers/St7789.cpp
+++ b/src/drivers/St7789.cpp
@@ -1,7 +1,7 @@
+#include "St7789.h"
#include <hal/nrf_gpio.h>
#include <libraries/delay/nrf_delay.h>
#include <nrfx_log.h>
-#include "St7789.h"
#include "Spi.h"
using namespace Pinetime::Drivers;
diff --git a/src/drivers/St7789.h b/src/drivers/St7789.h
index 0b94cf2..053cacc 100644
--- a/src/drivers/St7789.h
+++ b/src/drivers/St7789.h
@@ -1,5 +1,6 @@
#pragma once
#include <cstddef>
+#include <cstdint>
namespace Pinetime {
namespace Drivers {
diff --git a/src/drivers/TwiMaster.cpp b/src/drivers/TwiMaster.cpp
index 3ff8a95..6a063ec 100644
--- a/src/drivers/TwiMaster.cpp
+++ b/src/drivers/TwiMaster.cpp
@@ -1,7 +1,7 @@
-#include <nrfx_log.h>
-#include <hal/nrf_gpio.h>
-#include <cstring>
#include "TwiMaster.h"
+#include <cstring>
+#include <hal/nrf_gpio.h>
+#include <nrfx_log.h>
using namespace Pinetime::Drivers;
diff --git a/src/drivers/TwiMaster.h b/src/drivers/TwiMaster.h
index 52e3909..399e3d0 100644
--- a/src/drivers/TwiMaster.h
+++ b/src/drivers/TwiMaster.h
@@ -1,8 +1,8 @@
#pragma once
#include <FreeRTOS.h>
#include <semphr.h>
-#include <drivers/include/nrfx_twi.h>
-
+#include <drivers/include/nrfx_twi.h> // NRF_TWIM_Type
+#include <cstdint>
namespace Pinetime {
namespace Drivers {
diff --git a/src/drivers/Watchdog.cpp b/src/drivers/Watchdog.cpp
index 11da121..d09fbcd 100644
--- a/src/drivers/Watchdog.cpp
+++ b/src/drivers/Watchdog.cpp
@@ -1,7 +1,5 @@
-#include <mdk/nrf52.h>
-#include <mdk/nrf52_bitfields.h>
-#include <nrf_soc.h>
#include "Watchdog.h"
+#include <mdk/nrf.h>
using namespace Pinetime::Drivers;
diff --git a/src/drivers/Watchdog.h b/src/drivers/Watchdog.h
index 73f99ea..0c816a4 100644
--- a/src/drivers/Watchdog.h
+++ b/src/drivers/Watchdog.h
@@ -1,4 +1,5 @@
#pragma once
+#include <cstdint>
namespace Pinetime {
namespace Drivers {
diff --git a/src/logging/NrfLogger.cpp b/src/logging/NrfLogger.cpp
index 0d95c06..9f7624b 100644
--- a/src/logging/NrfLogger.cpp
+++ b/src/logging/NrfLogger.cpp
@@ -1,9 +1,8 @@
+#include "NrfLogger.h"
+
+#include <libraries/log/nrf_log.h>
#include <libraries/log/nrf_log_ctrl.h>
#include <libraries/log/nrf_log_default_backends.h>
-#include <FreeRTOS.h>
-#include <task.h>
-#include <libraries/log/nrf_log.h>
-#include "NrfLogger.h"
using namespace Pinetime::Logging;
diff --git a/src/logging/NrfLogger.h b/src/logging/NrfLogger.h
index cb7089f..fb68b91 100644
--- a/src/logging/NrfLogger.h
+++ b/src/logging/NrfLogger.h
@@ -1,6 +1,9 @@
#pragma once
#include "Logger.h"
+#include <FreeRTOS.h>
+#include <task.h>
+
namespace Pinetime {
namespace Logging{
class NrfLogger : public Logger {
diff --git a/src/main.cpp b/src/main.cpp
index 45aac6d..3505704 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1,32 +1,44 @@
-#include <FreeRTOS.h>
-#include <task.h>
-#include <timers.h>
-#include <legacy/nrf_drv_clock.h>
+// nrf
#include <hal/nrf_rtc.h>
#include <hal/nrf_wdt.h>
-#include <os/os_cputime.h>
-#include <libraries/timer/app_timer.h>
+#include <legacy/nrf_drv_clock.h>
#include <libraries/gpiote/app_gpiote.h>
-#include "displayapp/DisplayApp.h"
+#include <libraries/timer/app_timer.h>
#include <softdevice/common/nrf_sdh.h>
-#include "components/datetime/DateTimeController.h"
-#include "components/battery/BatteryController.h"
-#include "components/ble/BleController.h"
-#include "components/ble/NotificationManager.h"
-#include <drivers/St7789.h>
-#include <drivers/SpiMaster.h>
-#include <drivers/Spi.h>
-#include "displayapp/LittleVgl.h"
-#include <systemtask/SystemTask.h>
-#include <nimble/nimble_port_freertos.h>
-#include <nimble/npl_freertos.h>
-#include <nimble/nimble_port.h>
-#include <host/ble_hs.h>
+
+// nimble
+#define min // workaround: nimble's min/max macros conflict with libstdc++
+#define max
#include <controller/ble_ll.h>
-#include <transport/ram/ble_hci_ram.h>
+#include <host/ble_hs.h>
#include <host/util/util.h>
+#include <nimble/nimble_port.h>
+#include <nimble/nimble_port_freertos.h>
+#include <nimble/npl_freertos.h>
+#include <os/os_cputime.h>
#include <services/gap/ble_svc_gap.h>
+#include <transport/ram/ble_hci_ram.h>
+#undef max
+#undef min
+
+// FreeRTOS
+#include <FreeRTOS.h>
+#include <task.h>
+#include <timers.h>
+#include "components/battery/BatteryController.h"
+#include "components/ble/BleController.h"
+#include "components/ble/NotificationManager.h"
+#include "components/datetime/DateTimeController.h"
+#include "displayapp/DisplayApp.h"
+#include "displayapp/LittleVgl.h"
+#include "drivers/Spi.h"
+#include "drivers/SpiMaster.h"
+#include "drivers/SpiNorFlash.h"
+#include "drivers/St7789.h"
+#include "drivers/TwiMaster.h"
+#include "drivers/Cst816s.h"
+#include "systemtask/SystemTask.h"
#if NRF_LOG_ENABLED
#include "logging/NrfLogger.h"
diff --git a/src/main.h b/src/main.h
index b0a8a57..2ff32b8 100644
--- a/src/main.h
+++ b/src/main.h
@@ -2,6 +2,7 @@
#include <FreeRTOS.h>
#include <timers.h>
+#include <nrfx_gpiote.h>
void nrfx_gpiote_evt_handler(nrfx_gpiote_pin_t pin, nrf_gpiote_polarity_t action);
void DebounceTimerCallback(TimerHandle_t xTimer); \ No newline at end of file
diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp
index dac4ce2..9cd2f5e 100644
--- a/src/systemtask/SystemTask.cpp
+++ b/src/systemtask/SystemTask.cpp
@@ -1,19 +1,27 @@
-#include <libraries/log/nrf_log.h>
-#include <libraries/gpiote/app_gpiote.h>
-#include <drivers/Cst816s.h>
-#include "displayapp/LittleVgl.h"
-#include <hal/nrf_rtc.h>
-#include "components/ble/NotificationManager.h"
-#include <host/ble_gatt.h>
-#include <host/ble_hs_adv.h>
#include "SystemTask.h"
-#include <nimble/hci_common.h>
+#define min // workaround: nimble's min/max macros conflict with libstdc++
+#define max
#include <host/ble_gap.h>
+#include <host/ble_gatt.h>
+#include <host/ble_hs_adv.h>
#include <host/util/util.h>
-#include <drivers/InternalFlash.h>
+#include <nimble/hci_common.h>
+#undef max
+#undef min
+#include <hal/nrf_rtc.h>
+#include <libraries/gpiote/app_gpiote.h>
+#include <libraries/log/nrf_log.h>
+
+#include "BootloaderVersion.h"
+#include "components/ble/BleController.h"
+#include "displayapp/LittleVgl.h"
+#include "drivers/Cst816s.h"
+#include "drivers/St7789.h"
+#include "drivers/InternalFlash.h"
+#include "drivers/SpiMaster.h"
+#include "drivers/SpiNorFlash.h"
+#include "drivers/TwiMaster.h"
#include "main.h"
-#include "components/ble/NimbleController.h"
-#include "../BootloaderVersion.h"
using namespace Pinetime::System;
@@ -107,21 +115,22 @@ void SystemTask::Work() {
while(true) {
uint8_t msg;
if (xQueueReceive(systemTasksMsgQueue, &msg, isSleeping ? 2500 : 1000)) {
+ batteryController.Update();
Messages message = static_cast<Messages >(msg);
switch(message) {
case Messages::GoToRunning:
spi.Wakeup();
twiMaster.Wakeup();
+ nimbleController.StartAdvertising();
+ xTimerStart(idleTimer, 0);
spiNorFlash.Wakeup();
- lcd.Wakeup();
touchPanel.Wakeup();
+ lcd.Wakeup();
displayApp->PushMessage(Applications::DisplayApp::Messages::GoToRunning);
displayApp->PushMessage(Applications::DisplayApp::Messages::UpdateBatteryLevel);
- xTimerStart(idleTimer, 0);
- nimbleController.StartAdvertising();
isSleeping = false;
isWakingUp = false;
break;
@@ -190,12 +199,9 @@ void SystemTask::Work() {
}
}
+ monitor.Process();
uint32_t systick_counter = nrf_rtc_counter_get(portNRF_RTC_REG);
dateTimeController.UpdateTime(systick_counter);
- batteryController.Update();
-
- monitor.Process();
-
if(!nrf_gpio_pin_read(pinButton))
watchdog.Kick();
}
diff --git a/src/systemtask/SystemTask.h b/src/systemtask/SystemTask.h
index 6ef0cfb..fe6e7cb 100644
--- a/src/systemtask/SystemTask.h
+++ b/src/systemtask/SystemTask.h
@@ -4,17 +4,23 @@
#include <FreeRTOS.h>
#include <task.h>
-#include <drivers/SpiMaster.h>
-#include <drivers/St7789.h>
-#include "components/battery/BatteryController.h"
-#include "displayapp/DisplayApp.h"
-#include <drivers/Watchdog.h>
-#include <drivers/SpiNorFlash.h>
+#include <timers.h>
+
#include "SystemMonitor.h"
+#include "components/battery/BatteryController.h"
#include "components/ble/NimbleController.h"
-#include "timers.h"
+#include "components/ble/NotificationManager.h"
+#include "displayapp/DisplayApp.h"
+#include "drivers/Watchdog.h"
namespace Pinetime {
+ namespace Drivers {
+ class Cst816S;
+ class SpiMaster;
+ class SpiNorFlash;
+ class St7789;
+ class TwiMaster;
+ }
namespace System {
class SystemTask {
public: