Merge branch 'develop' of JF/PineTime into master

This commit is contained in:
JF 2021-04-21 20:19:57 +02:00 committed by Gitea
commit a80e782f26
518 changed files with 71347 additions and 10750 deletions

56
.vscode/settings.json vendored
View File

@ -1,5 +1,59 @@
{ {
"files.associations": { "files.associations": {
"chrono": "cpp" "chrono": "cpp",
"list": "cpp",
"array": "cpp",
"atomic": "cpp",
"bit": "cpp",
"*.tcc": "cpp",
"cctype": "cpp",
"charconv": "cpp",
"clocale": "cpp",
"cmath": "cpp",
"condition_variable": "cpp",
"cstdarg": "cpp",
"cstddef": "cpp",
"cstdint": "cpp",
"cstdio": "cpp",
"cstdlib": "cpp",
"cstring": "cpp",
"ctime": "cpp",
"cwchar": "cpp",
"cwctype": "cpp",
"deque": "cpp",
"unordered_map": "cpp",
"vector": "cpp",
"exception": "cpp",
"algorithm": "cpp",
"functional": "cpp",
"iterator": "cpp",
"memory": "cpp",
"memory_resource": "cpp",
"netfwd": "cpp",
"numeric": "cpp",
"optional": "cpp",
"random": "cpp",
"ratio": "cpp",
"string": "cpp",
"string_view": "cpp",
"system_error": "cpp",
"tuple": "cpp",
"type_traits": "cpp",
"utility": "cpp",
"fstream": "cpp",
"initializer_list": "cpp",
"iosfwd": "cpp",
"iostream": "cpp",
"istream": "cpp",
"limits": "cpp",
"mutex": "cpp",
"new": "cpp",
"ostream": "cpp",
"sstream": "cpp",
"stdexcept": "cpp",
"streambuf": "cpp",
"thread": "cpp",
"cinttypes": "cpp",
"typeinfo": "cpp"
} }
} }

View File

@ -1,5 +1,15 @@
cmake_minimum_required(VERSION 3.10) cmake_minimum_required(VERSION 3.10)
project(pinetime VERSION 0.15.0 LANGUAGES C CXX ASM) project(pinetime VERSION 1.0.0 LANGUAGES C CXX ASM)
set(CMAKE_C_STANDARD 99)
set(CMAKE_CXX_STANDARD 14)
# set(CMAKE_GENERATOR "Unix Makefiles")
set(CMAKE_C_EXTENSIONS OFF)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(NRF_TARGET "nrf52") set(NRF_TARGET "nrf52")

View File

@ -1,7 +1,7 @@
# PineTime # PineTime
![Build PineTime Firmware](https://github.com/JF002/InfiniTime/workflows/Build%20PineTime%20Firmware/badge.svg?branch=master) [![Build PineTime Firmware](https://github.com/JF002/InfiniTime/workflows/Build%20PineTime%20Firmware/badge.svg?branch=master)](https://github.com/JF002/InfiniTime/actions)
> The PineTime is a free and open source smartwatch capable of running custom-built open operating systems. Some of the notable features include a heart rate monitor, a week-long battery as well as a capacitive touch IPS display that is legible in direct sunlight. It is a fully community driven side-project, which means that it will ultimately be up to the developers and end-users to determine when they deem the PineTime ready to ship. > The PineTime is a free and open source smartwatch capable of running custom-built open operating systems. Some of the notable features include a heart rate monitor, a week-long battery as well as a capacitive touch IPS display that is legible in direct sunlight. It is a fully community driven side-project, which means that it will ultimately be up to the developers and end-users to determine when they deem the PineTime ready to ship.
@ -34,6 +34,9 @@ As of now, here is the list of achievements of this project:
- Rich user interface via display, touchscreen and pushbutton - Rich user interface via display, touchscreen and pushbutton
- Time synchronization via BLE - Time synchronization via BLE
- Notification via BLE - Notification via BLE
- Heart rate measurements
- Step counting
- Wake-up on wrist rotation
- Multiple 'apps' : - Multiple 'apps' :
* Clock (displays the date, time, battery level, ble connection status, heart rate) * Clock (displays the date, time, battery level, ble connection status, heart rate)
* System info (displays various info : BLE MAC, build date/time, uptime, version,...) * System info (displays various info : BLE MAC, build date/time, uptime, version,...)
@ -45,9 +48,10 @@ As of now, here is the list of achievements of this project:
* Paddle (single player pong-like game) * Paddle (single player pong-like game)
* Two (2048 clone game) * Two (2048 clone game)
* Stopwatch (with all the necessary functions such as play, pause, lap, stop) * Stopwatch (with all the necessary functions such as play, pause, lap, stop)
- Supported by 2 companion apps (development is in progress): - Supported by 3 companion apps (development is in progress):
* [Gadgetbridge](https://codeberg.org/Freeyourgadget/Gadgetbridge/) (on Android) * [Gadgetbridge](https://codeberg.org/Freeyourgadget/Gadgetbridge/) (on Android)
* [Amazfish](https://openrepos.net/content/piggz/amazfish) (on SailfishOS and Linux) * [Amazfish](https://openrepos.net/content/piggz/amazfish) (on SailfishOS and Linux)
* [Siglo](https://github.com/alexr4535/siglo) (on Linux)
* **[Experimental]** [WebBLEWatch](https://hubmartin.github.io/WebBLEWatch/) Synchronize time directly from your web browser. [video](https://youtu.be/IakiuhVDdrY) * **[Experimental]** [WebBLEWatch](https://hubmartin.github.io/WebBLEWatch/) Synchronize time directly from your web browser. [video](https://youtu.be/IakiuhVDdrY)
- **[Experimental]** OTA (Over-the-air) update via BLE - **[Experimental]** OTA (Over-the-air) update via BLE
- **[Experimental]** Bootloader based on [MCUBoot](https://juullabs-oss.github.io/mcuboot/) - **[Experimental]** Bootloader based on [MCUBoot](https://juullabs-oss.github.io/mcuboot/)
@ -59,6 +63,7 @@ As of now, here is the list of achievements of this project:
### Develop ### Develop
- [Generate the fonts and symbols](src/displayapp/fonts/Readme.md) - [Generate the fonts and symbols](src/displayapp/fonts/Readme.md)
- [Creating a stopwatch in Pinetime(article)](https://pankajraghav.com/2021/04/03/PINETIME-STOPCLOCK.html)
### Build, flash and debug ### Build, flash and debug
- [Project branches](doc/branches.md) - [Project branches](doc/branches.md)

View File

@ -36,9 +36,6 @@ macro(nRF5x_setup)
set(CMAKE_OSX_SYSROOT "/") set(CMAKE_OSX_SYSROOT "/")
set(CMAKE_OSX_DEPLOYMENT_TARGET "") set(CMAKE_OSX_DEPLOYMENT_TARGET "")
# language standard/version settings
set(CMAKE_C_STANDARD 99)
set(CMAKE_CXX_STANDARD 11)
# CPU specyfic settings # CPU specyfic settings
if (NRF_TARGET MATCHES "nrf51") if (NRF_TARGET MATCHES "nrf51")
@ -86,8 +83,8 @@ macro(nRF5x_setup)
set(CMAKE_CXX_FLAGS "${COMMON_FLAGS}") set(CMAKE_CXX_FLAGS "${COMMON_FLAGS}")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g3") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g3")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3")
set(CMAKE_ASM_FLAGS "-MP -MD -std=c99 -x assembler-with-cpp") set(CMAKE_ASM_FLAGS "-MP -MD -x assembler-with-cpp")
set(CMAKE_EXE_LINKER_FLAGS "-mthumb -mabi=aapcs -std=gnu++98 -std=c99 -L ${NRF5_SDK_PATH}/modules/nrfx/mdk -T${NRF5_LINKER_SCRIPT} ${CPU_FLAGS} -Wl,--gc-sections --specs=nano.specs -lc -lnosys -lm") set(CMAKE_EXE_LINKER_FLAGS "-mthumb -mabi=aapcs -L ${NRF5_SDK_PATH}/modules/nrfx/mdk -T${NRF5_LINKER_SCRIPT} ${CPU_FLAGS} -Wl,--gc-sections --specs=nano.specs -lc -lnosys -lm")
# note: we must override the default cmake linker flags so that CMAKE_C_FLAGS are not added implicitly # note: we must override the default cmake linker flags so that CMAKE_C_FLAGS are not added implicitly
set(CMAKE_C_LINK_EXECUTABLE "${CMAKE_C_COMPILER} <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>") set(CMAKE_C_LINK_EXECUTABLE "${CMAKE_C_COMPILER} <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_C_COMPILER} <LINK_FLAGS> <OBJECTS> -lstdc++ -o <TARGET> <LINK_LIBRARIES>") set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_C_COMPILER} <LINK_FLAGS> <OBJECTS> -lstdc++ -o <TARGET> <LINK_LIBRARIES>")

View File

@ -91,7 +91,7 @@ Good news! Gadgetbridge **automatically** synchronizes the time when connecting
### Using NRFConnect ### Using NRFConnect
You must enable the **CTS** *GATT server* into NRFConnect so that InfiniTime can synchronize the time with your smartphone. 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*: Launch NRFConnect, tap the sandwich button on the top left and select *Configure GATT server*:
![NRFConnect CTS 0](nrfconnectcts0.jpg) ![NRFConnect CTS 0](nrfconnectcts0.jpg)

View File

@ -23,6 +23,7 @@ RUN apt-get update -qq \
# Needs to be installed as root # Needs to be installed as root
RUN pip3 install adafruit-nrfutil RUN pip3 install adafruit-nrfutil
RUN pip3 install -Iv cryptography==3.3
COPY docker/build.sh /opt/ COPY docker/build.sh /opt/
# Lets get each in a separate docker layer for better downloads # Lets get each in a separate docker layer for better downloads
@ -34,6 +35,6 @@ RUN bash -c "source /opt/build.sh; GetNrfSdk;"
RUN bash -c "source /opt/build.sh; GetMcuBoot;" RUN bash -c "source /opt/build.sh; GetMcuBoot;"
# Link the default checkout workspace in to the default $SOURCES_DIR # Link the default checkout workspace in to the default $SOURCES_DIR
RUN ln -s /workspace/Pinetime /sources RUN ln -s /workspace/InfiniTime /sources
USER gitpod USER gitpod

View File

@ -3,16 +3,6 @@ cmake_minimum_required(VERSION 3.10)
project(pinetime-app C CXX ASM) project(pinetime-app C CXX ASM)
set(CMAKE_C_STANDARD 99)
set(CMAKE_CXX_STANDARD 14)
# set(CMAKE_GENERATOR "Unix Makefiles")
set(CMAKE_C_EXTENSIONS OFF)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# define some variables just for this example to determine file locations # define some variables just for this example to determine file locations
set(NRF_PROJECT_NAME pinetime-app) set(NRF_PROJECT_NAME pinetime-app)
set(NRF_BOARD pca10040) set(NRF_BOARD pca10040)
@ -93,7 +83,7 @@ set(SDK_SOURCE_FILES
"${NRF5_SDK_PATH}/external/fprintf/nrf_fprintf_format.c" "${NRF5_SDK_PATH}/external/fprintf/nrf_fprintf_format.c"
# TWI # TWI
"${NRF5_SDK_PATH}/modules/nrfx/drivers/src/nrfx_twi.c" "${NRF5_SDK_PATH}/modules/nrfx/drivers/src/nrfx_twim.c"
# GPIOTE # GPIOTE
"${NRF5_SDK_PATH}/components/libraries/gpiote/app_gpiote.c" "${NRF5_SDK_PATH}/components/libraries/gpiote/app_gpiote.c"
@ -384,95 +374,6 @@ list(APPEND IMAGE_FILES
displayapp/icons/bluetooth/os_bt_connected.c displayapp/icons/bluetooth/os_bt_connected.c
displayapp/icons/bluetooth/os_bt_disconnected.c displayapp/icons/bluetooth/os_bt_disconnected.c
displayapp/icons/navigation/arrive-left.c
displayapp/icons/navigation/arrive-right.c
displayapp/icons/navigation/arrive-straight.c
displayapp/icons/navigation/arrive.c
displayapp/icons/navigation/close.c
displayapp/icons/navigation/continue-left.c
displayapp/icons/navigation/continue-right.c
displayapp/icons/navigation/continue-slight-left.c
displayapp/icons/navigation/continue-slight-right.c
displayapp/icons/navigation/continue-straight.c
displayapp/icons/navigation/continue-uturn.c
displayapp/icons/navigation/continue.c
displayapp/icons/navigation/depart-left.c
displayapp/icons/navigation/depart-right.c
displayapp/icons/navigation/depart-straight.c
displayapp/icons/navigation/end-of-road-left.c
displayapp/icons/navigation/end-of-road-right.c
displayapp/icons/navigation/ferry.c
displayapp/icons/navigation/flag.c
displayapp/icons/navigation/fork-left.c
displayapp/icons/navigation/fork-right.c
displayapp/icons/navigation/fork-slight-left.c
displayapp/icons/navigation/fork-slight-right.c
displayapp/icons/navigation/fork-straight.c
displayapp/icons/navigation/invalid.c
displayapp/icons/navigation/invalid-left.c
displayapp/icons/navigation/invalid-right.c
displayapp/icons/navigation/invalid-slight-left.c
displayapp/icons/navigation/invalid-slight-right.c
displayapp/icons/navigation/invalid-straight.c
displayapp/icons/navigation/invalid-uturn.c
displayapp/icons/navigation/merge-left.c
displayapp/icons/navigation/merge-right.c
displayapp/icons/navigation/merge-slight-left.c
displayapp/icons/navigation/merge-slight-right.c
displayapp/icons/navigation/merge-straight.c
displayapp/icons/navigation/new-name-left.c
displayapp/icons/navigation/new-name-right.c
displayapp/icons/navigation/new-name-sharp-left.c
displayapp/icons/navigation/new-name-sharp-right.c
displayapp/icons/navigation/new-name-slight-left.c
displayapp/icons/navigation/new-name-slight-right.c
displayapp/icons/navigation/new-name-straight.c
displayapp/icons/navigation/notification-left.c
displayapp/icons/navigation/notification-right.c
displayapp/icons/navigation/notification-sharp-left.c
displayapp/icons/navigation/notification-sharp-right.c
displayapp/icons/navigation/notification-slight-left.c
displayapp/icons/navigation/notification-slight-right.c
displayapp/icons/navigation/notification-straight.c
displayapp/icons/navigation/off-ramp-left.c
displayapp/icons/navigation/off-ramp-right.c
displayapp/icons/navigation/off-ramp-sharp-left.c
displayapp/icons/navigation/off-ramp-sharp-right.c
displayapp/icons/navigation/off-ramp-slight-left.c
displayapp/icons/navigation/off-ramp-slight-right.c
displayapp/icons/navigation/off-ramp-straight.c
displayapp/icons/navigation/on-ramp-left.c
displayapp/icons/navigation/on-ramp-right.c
displayapp/icons/navigation/on-ramp-sharp-left.c
displayapp/icons/navigation/on-ramp-sharp-right.c
displayapp/icons/navigation/on-ramp-slight-left.c
displayapp/icons/navigation/on-ramp-slight-right.c
displayapp/icons/navigation/on-ramp-straight.c
displayapp/icons/navigation/rotary.c
displayapp/icons/navigation/rotary-left.c
displayapp/icons/navigation/rotary-right.c
displayapp/icons/navigation/rotary-sharp-left.c
displayapp/icons/navigation/rotary-sharp-right.c
displayapp/icons/navigation/rotary-slight-left.c
displayapp/icons/navigation/rotary-slight-right.c
displayapp/icons/navigation/rotary-straight.c
displayapp/icons/navigation/roundabout.c
displayapp/icons/navigation/roundabout-left.c
displayapp/icons/navigation/roundabout-right.c
displayapp/icons/navigation/roundabout-sharp-left.c
displayapp/icons/navigation/roundabout-sharp-right.c
displayapp/icons/navigation/roundabout-slight-left.c
displayapp/icons/navigation/roundabout-slight-right.c
displayapp/icons/navigation/roundabout-straight.c
displayapp/icons/navigation/turn-left.c
displayapp/icons/navigation/turn-right.c
displayapp/icons/navigation/turn-sharp-left.c
displayapp/icons/navigation/turn-sharp-right.c
displayapp/icons/navigation/turn-slight-left.c
displayapp/icons/navigation/turn-slight-right.c
displayapp/icons/navigation/turn-stright.c
displayapp/icons/navigation/updown.c
displayapp/icons/navigation/uturn.c
) )
list(APPEND SOURCE_FILES list(APPEND SOURCE_FILES
@ -495,16 +396,28 @@ list(APPEND SOURCE_FILES
displayapp/screens/FirmwareUpdate.cpp displayapp/screens/FirmwareUpdate.cpp
displayapp/screens/Music.cpp displayapp/screens/Music.cpp
displayapp/screens/Navigation.cpp displayapp/screens/Navigation.cpp
displayapp/screens/Motion.cpp
displayapp/screens/FirmwareValidation.cpp displayapp/screens/FirmwareValidation.cpp
displayapp/screens/ApplicationList.cpp displayapp/screens/ApplicationList.cpp
displayapp/screens/Notifications.cpp displayapp/screens/Notifications.cpp
displayapp/screens/Twos.cpp displayapp/screens/Twos.cpp
displayapp/screens/HeartRate.cpp displayapp/screens/HeartRate.cpp
displayapp/screens/Motion.cpp
displayapp/screens/FlashLight.cpp
displayapp/screens/List.cpp
displayapp/screens/BatteryInfo.cpp
## Settings
displayapp/screens/settings/QuickSettings.cpp
displayapp/screens/settings/Settings.cpp
displayapp/screens/settings/SettingWatchFace.cpp
displayapp/screens/settings/SettingTimeFormat.cpp
displayapp/screens/settings/SettingWakeUp.cpp
displayapp/screens/settings/SettingDisplay.cpp
## Watch faces ## Watch faces
displayapp/icons/bg_clock.c displayapp/icons/bg_clock.c
displayapp/screens/WatchFaceAnalog.cpp displayapp/screens/WatchFaceAnalog.cpp
displayapp/screens/WatchFaceDigital.cpp displayapp/screens/WatchFaceDigital.cpp
## ##
@ -518,11 +431,15 @@ list(APPEND SOURCE_FILES
drivers/DebugPins.cpp drivers/DebugPins.cpp
drivers/InternalFlash.cpp drivers/InternalFlash.cpp
drivers/Hrs3300.cpp drivers/Hrs3300.cpp
drivers/Bma421.cpp
drivers/Bma421_C/bma4.c
drivers/Bma421_C/bma423.c
components/battery/BatteryController.cpp components/battery/BatteryController.cpp
components/ble/BleController.cpp components/ble/BleController.cpp
components/ble/NotificationManager.cpp components/ble/NotificationManager.cpp
components/datetime/DateTimeController.cpp components/datetime/DateTimeController.cpp
components/brightness/BrightnessController.cpp components/brightness/BrightnessController.cpp
components/motion/MotionController.cpp
components/ble/NimbleController.cpp components/ble/NimbleController.cpp
components/ble/DeviceInformationService.cpp components/ble/DeviceInformationService.cpp
components/ble/CurrentTimeClient.cpp components/ble/CurrentTimeClient.cpp
@ -532,6 +449,7 @@ list(APPEND SOURCE_FILES
components/ble/AlertNotificationService.cpp components/ble/AlertNotificationService.cpp
components/ble/MusicService.cpp components/ble/MusicService.cpp
components/ble/NavigationService.cpp components/ble/NavigationService.cpp
displayapp/fonts/lv_font_navi_80.c
components/ble/BatteryInformationService.cpp components/ble/BatteryInformationService.cpp
components/ble/ImmediateAlertService.cpp components/ble/ImmediateAlertService.cpp
components/ble/ServiceDiscovery.cpp components/ble/ServiceDiscovery.cpp
@ -547,6 +465,8 @@ list(APPEND SOURCE_FILES
displayapp/LittleVgl.cpp displayapp/LittleVgl.cpp
displayapp/fonts/jetbrains_mono_extrabold_compressed.c displayapp/fonts/jetbrains_mono_extrabold_compressed.c
displayapp/fonts/jetbrains_mono_bold_20.c displayapp/fonts/jetbrains_mono_bold_20.c
displayapp/fonts/jetbrains_mono_76.c
displayapp/fonts/lv_font_sys_48.c
displayapp/lv_pinetime_theme.c displayapp/lv_pinetime_theme.c
systemtask/SystemTask.cpp systemtask/SystemTask.cpp
@ -573,11 +493,15 @@ list(APPEND RECOVERY_SOURCE_FILES
drivers/DebugPins.cpp drivers/DebugPins.cpp
drivers/InternalFlash.cpp drivers/InternalFlash.cpp
drivers/Hrs3300.cpp drivers/Hrs3300.cpp
drivers/Bma421.cpp
drivers/Bma421_C/bma4.c
drivers/Bma421_C/bma423.c
components/battery/BatteryController.cpp components/battery/BatteryController.cpp
components/ble/BleController.cpp components/ble/BleController.cpp
components/ble/NotificationManager.cpp components/ble/NotificationManager.cpp
components/datetime/DateTimeController.cpp components/datetime/DateTimeController.cpp
components/brightness/BrightnessController.cpp components/brightness/BrightnessController.cpp
components/motion/MotionController.cpp
components/ble/NimbleController.cpp components/ble/NimbleController.cpp
components/ble/DeviceInformationService.cpp components/ble/DeviceInformationService.cpp
components/ble/CurrentTimeClient.cpp components/ble/CurrentTimeClient.cpp
@ -634,6 +558,7 @@ list(APPEND RECOVERYLOADER_SOURCE_FILES
set(INCLUDE_FILES set(INCLUDE_FILES
BootloaderVersion.h BootloaderVersion.h
logging/Logger.h logging/Logger.h
logging/NrfLogger.h logging/NrfLogger.h
@ -661,6 +586,7 @@ set(INCLUDE_FILES
displayapp/Apps.h displayapp/Apps.h
displayapp/screens/Notifications.h displayapp/screens/Notifications.h
displayapp/screens/HeartRate.h displayapp/screens/HeartRate.h
displayapp/screens/Motion.h
drivers/St7789.h drivers/St7789.h
drivers/SpiNorFlash.h drivers/SpiNorFlash.h
drivers/SpiMaster.h drivers/SpiMaster.h
@ -669,11 +595,15 @@ set(INCLUDE_FILES
drivers/DebugPins.h drivers/DebugPins.h
drivers/InternalFlash.h drivers/InternalFlash.h
drivers/Hrs3300.h drivers/Hrs3300.h
drivers/Bma421.h
drivers/Bma421_C/bma4.c
drivers/Bma421_C/bma423.c
components/battery/BatteryController.h components/battery/BatteryController.h
components/ble/BleController.h components/ble/BleController.h
components/ble/NotificationManager.h components/ble/NotificationManager.h
components/datetime/DateTimeController.h components/datetime/DateTimeController.h
components/brightness/BrightnessController.h components/brightness/BrightnessController.h
components/motion/MotionController.h
components/ble/NimbleController.h components/ble/NimbleController.h
components/ble/DeviceInformationService.h components/ble/DeviceInformationService.h
components/ble/CurrentTimeClient.h components/ble/CurrentTimeClient.h
@ -875,8 +805,6 @@ target_compile_options(${EXECUTABLE_NAME} PUBLIC
set_target_properties(${EXECUTABLE_NAME} PROPERTIES set_target_properties(${EXECUTABLE_NAME} PROPERTIES
SUFFIX ".out" SUFFIX ".out"
LINK_FLAGS "-mthumb -mabi=aapcs -L ${NRF5_SDK_PATH}/modules/nrfx/mdk -T${NRF5_LINKER_SCRIPT} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wl,--gc-sections --specs=nano.specs -lc -lnosys -lm -Wl,-Map=${EXECUTABLE_FILE_NAME}.map" LINK_FLAGS "-mthumb -mabi=aapcs -L ${NRF5_SDK_PATH}/modules/nrfx/mdk -T${NRF5_LINKER_SCRIPT} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wl,--gc-sections --specs=nano.specs -lc -lnosys -lm -Wl,-Map=${EXECUTABLE_FILE_NAME}.map"
CXX_STANDARD 11
C_STANDARD 99
) )
add_custom_command(TARGET ${EXECUTABLE_NAME} add_custom_command(TARGET ${EXECUTABLE_NAME}
@ -907,8 +835,6 @@ target_compile_options(${EXECUTABLE_MCUBOOT_NAME} PUBLIC
set_target_properties(${EXECUTABLE_MCUBOOT_NAME} PROPERTIES set_target_properties(${EXECUTABLE_MCUBOOT_NAME} PROPERTIES
SUFFIX ".out" SUFFIX ".out"
LINK_FLAGS "-mthumb -mabi=aapcs -L ${NRF5_SDK_PATH}/modules/nrfx/mdk -T${NRF5_LINKER_SCRIPT_MCUBOOT} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wl,--gc-sections --specs=nano.specs -lc -lnosys -lm -Wl,-Map=${EXECUTABLE_MCUBOOT_FILE_NAME}.map" LINK_FLAGS "-mthumb -mabi=aapcs -L ${NRF5_SDK_PATH}/modules/nrfx/mdk -T${NRF5_LINKER_SCRIPT_MCUBOOT} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wl,--gc-sections --specs=nano.specs -lc -lnosys -lm -Wl,-Map=${EXECUTABLE_MCUBOOT_FILE_NAME}.map"
CXX_STANDARD 11
C_STANDARD 99
) )
add_custom_command(TARGET ${EXECUTABLE_MCUBOOT_NAME} add_custom_command(TARGET ${EXECUTABLE_MCUBOOT_NAME}
@ -946,8 +872,6 @@ target_compile_options(${EXECUTABLE_RECOVERY_NAME} PUBLIC
set_target_properties(${EXECUTABLE_RECOVERY_NAME} PROPERTIES set_target_properties(${EXECUTABLE_RECOVERY_NAME} PROPERTIES
SUFFIX ".out" SUFFIX ".out"
LINK_FLAGS "-mthumb -mabi=aapcs -L ${NRF5_SDK_PATH}/modules/nrfx/mdk -T${NRF5_LINKER_SCRIPT} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wl,--gc-sections --specs=nano.specs -lc -lnosys -lm -Wl,-Map=${EXECUTABLE_RECOVERY_FILE_NAME}.map" LINK_FLAGS "-mthumb -mabi=aapcs -L ${NRF5_SDK_PATH}/modules/nrfx/mdk -T${NRF5_LINKER_SCRIPT} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wl,--gc-sections --specs=nano.specs -lc -lnosys -lm -Wl,-Map=${EXECUTABLE_RECOVERY_FILE_NAME}.map"
CXX_STANDARD 11
C_STANDARD 99
) )
add_custom_command(TARGET ${EXECUTABLE_RECOVERY_NAME} add_custom_command(TARGET ${EXECUTABLE_RECOVERY_NAME}
@ -977,9 +901,7 @@ target_compile_options(${EXECUTABLE_RECOVERY_MCUBOOT_NAME} PUBLIC
set_target_properties(${EXECUTABLE_RECOVERY_MCUBOOT_NAME} PROPERTIES set_target_properties(${EXECUTABLE_RECOVERY_MCUBOOT_NAME} PROPERTIES
SUFFIX ".out" SUFFIX ".out"
LINK_FLAGS "-mthumb -mabi=aapcs -L ${NRF5_SDK_PATH}/modules/nrfx/mdk -T${NRF5_LINKER_SCRIPT_MCUBOOT} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wl,--gc-sections --specs=nano.specs -lc -lnosys -lm -Wl,-Map=${EXECUTABLE_RECOVERY_MCUBOOT_FILE_NAME}.map" LINK_FLAGS "-mthumb -mabi=aapcs -L ${NRF5_SDK_PATH}/modules/nrfx/mdk -T${NRF5_LINKER_SCRIPT} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wl,--gc-sections --specs=nano.specs -lc -lnosys -lm -Wl,-Map=${EXECUTABLE_GRAPHICS_FILE_NAME}.map"
CXX_STANDARD 11
C_STANDARD 99
) )
add_custom_command(TARGET ${EXECUTABLE_RECOVERY_MCUBOOT_NAME} add_custom_command(TARGET ${EXECUTABLE_RECOVERY_MCUBOOT_NAME}
@ -988,7 +910,7 @@ add_custom_command(TARGET ${EXECUTABLE_RECOVERY_MCUBOOT_NAME}
COMMAND ${CMAKE_OBJCOPY} -O binary ${EXECUTABLE_RECOVERY_MCUBOOT_FILE_NAME}.out "${EXECUTABLE_RECOVERY_MCUBOOT_FILE_NAME}.bin" COMMAND ${CMAKE_OBJCOPY} -O binary ${EXECUTABLE_RECOVERY_MCUBOOT_FILE_NAME}.out "${EXECUTABLE_RECOVERY_MCUBOOT_FILE_NAME}.bin"
COMMAND ${CMAKE_OBJCOPY} -O ihex ${EXECUTABLE_RECOVERY_MCUBOOT_FILE_NAME}.out "${EXECUTABLE_RECOVERYY_MCUBOOT_FILE_NAME}.hex" COMMAND ${CMAKE_OBJCOPY} -O ihex ${EXECUTABLE_RECOVERY_MCUBOOT_FILE_NAME}.out "${EXECUTABLE_RECOVERYY_MCUBOOT_FILE_NAME}.hex"
COMMAND ${CMAKE_SOURCE_DIR}/tools/mcuboot/imgtool.py create --align 4 --version 1.0.0 --header-size 32 --slot-size 475136 --pad-header ${EXECUTABLE_RECOVERY_MCUBOOT_FILE_NAME}.bin ${IMAGE_RECOVERY_MCUBOOT_FILE_NAME} COMMAND ${CMAKE_SOURCE_DIR}/tools/mcuboot/imgtool.py create --align 4 --version 1.0.0 --header-size 32 --slot-size 475136 --pad-header ${EXECUTABLE_RECOVERY_MCUBOOT_FILE_NAME}.bin ${IMAGE_RECOVERY_MCUBOOT_FILE_NAME}
COMMAND python ${CMAKE_SOURCE_DIR}/tools/bin2c.py ${IMAGE_RECOVERY_MCUBOOT_FILE_NAME} recoveryImage > recoveryImage.h COMMAND python3 ${CMAKE_SOURCE_DIR}/tools/bin2c.py ${IMAGE_RECOVERY_MCUBOOT_FILE_NAME} recoveryImage > recoveryImage.h
COMMENT "post build steps for ${EXECUTABLE_RECOVERY_MCUBOOT_FILE_NAME}" COMMENT "post build steps for ${EXECUTABLE_RECOVERY_MCUBOOT_FILE_NAME}"
) )
@ -1021,8 +943,6 @@ add_dependencies(${EXECUTABLE_RECOVERYLOADER_NAME} ${EXECUTABLE_RECOVERY_MCUBOOT
set_target_properties(${EXECUTABLE_RECOVERYLOADER_NAME} PROPERTIES set_target_properties(${EXECUTABLE_RECOVERYLOADER_NAME} PROPERTIES
SUFFIX ".out" SUFFIX ".out"
LINK_FLAGS "-mthumb -mabi=aapcs -L ${NRF5_SDK_PATH}/modules/nrfx/mdk -T${NRF5_LINKER_SCRIPT} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wl,--gc-sections --specs=nano.specs -lc -lnosys -lm -Wl,-Map=${EXECUTABLE_RECOVERYLOADER_FILE_NAME}.map" LINK_FLAGS "-mthumb -mabi=aapcs -L ${NRF5_SDK_PATH}/modules/nrfx/mdk -T${NRF5_LINKER_SCRIPT} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wl,--gc-sections --specs=nano.specs -lc -lnosys -lm -Wl,-Map=${EXECUTABLE_RECOVERYLOADER_FILE_NAME}.map"
CXX_STANDARD 11
C_STANDARD 99
) )
add_custom_command(TARGET ${EXECUTABLE_RECOVERYLOADER_NAME} add_custom_command(TARGET ${EXECUTABLE_RECOVERYLOADER_NAME}
@ -1056,8 +976,6 @@ add_dependencies(${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME} ${EXECUTABLE_RECOVERY
set_target_properties(${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME} PROPERTIES set_target_properties(${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME} PROPERTIES
SUFFIX ".out" SUFFIX ".out"
LINK_FLAGS "-mthumb -mabi=aapcs -std=gnu++98 -std=c99 -L ${NRF5_SDK_PATH}/modules/nrfx/mdk -T${NRF5_LINKER_SCRIPT_MCUBOOT} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wl,--gc-sections --specs=nano.specs -lc -lnosys -lm -Wl,-Map=${EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME}.map" LINK_FLAGS "-mthumb -mabi=aapcs -std=gnu++98 -std=c99 -L ${NRF5_SDK_PATH}/modules/nrfx/mdk -T${NRF5_LINKER_SCRIPT_MCUBOOT} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wl,--gc-sections --specs=nano.specs -lc -lnosys -lm -Wl,-Map=${EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME}.map"
CXX_STANDARD 11
C_STANDARD 99
) )
add_custom_command(TARGET ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME} add_custom_command(TARGET ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME}
@ -1066,7 +984,7 @@ add_custom_command(TARGET ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME}
COMMAND ${CMAKE_OBJCOPY} -O binary ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME}.out "${EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME}.bin" COMMAND ${CMAKE_OBJCOPY} -O binary ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME}.out "${EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME}.bin"
COMMAND ${CMAKE_OBJCOPY} -O ihex ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME}.out "${EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME}.hex" COMMAND ${CMAKE_OBJCOPY} -O ihex ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME}.out "${EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME}.hex"
COMMAND ${CMAKE_SOURCE_DIR}/tools/mcuboot/imgtool.py create --align 4 --version 1.0.0 --header-size 32 --slot-size 475136 --pad-header ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME}.bin ${IMAGE_MCUBOOT_RECOVERYLOADER_FILE_NAME} COMMAND ${CMAKE_SOURCE_DIR}/tools/mcuboot/imgtool.py create --align 4 --version 1.0.0 --header-size 32 --slot-size 475136 --pad-header ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME}.bin ${IMAGE_MCUBOOT_RECOVERYLOADER_FILE_NAME}
COMMAND python ${CMAKE_SOURCE_DIR}/tools/bin2c.py ${IMAGE_MCUBOOT_RECOVERYLOADER_FILE_NAME} recoveryLoaderImage > recoveryLoaderImage.h COMMAND python3 ${CMAKE_SOURCE_DIR}/tools/bin2c.py ${IMAGE_MCUBOOT_RECOVERYLOADER_FILE_NAME} recoveryLoaderImage > recoveryLoaderImage.h
COMMENT "post build steps for ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME}" COMMENT "post build steps for ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME}"
) )

View File

@ -63,7 +63,7 @@
#define configTICK_RATE_HZ 1024 #define configTICK_RATE_HZ 1024
#define configMAX_PRIORITIES ( 3 ) #define configMAX_PRIORITIES ( 3 )
#define configMINIMAL_STACK_SIZE ( 120 ) #define configMINIMAL_STACK_SIZE ( 120 )
#define configTOTAL_HEAP_SIZE ( 1024*15 ) #define configTOTAL_HEAP_SIZE ( 1024*16 )
#define configMAX_TASK_NAME_LEN ( 4 ) #define configMAX_TASK_NAME_LEN ( 4 )
#define configUSE_16_BIT_TICKS 0 #define configUSE_16_BIT_TICKS 0
#define configIDLE_SHOULD_YIELD 1 #define configIDLE_SHOULD_YIELD 1
@ -96,7 +96,7 @@
#define configUSE_TIMERS 1 #define configUSE_TIMERS 1
#define configTIMER_TASK_PRIORITY ( 0 ) #define configTIMER_TASK_PRIORITY ( 0 )
#define configTIMER_QUEUE_LENGTH 32 #define configTIMER_QUEUE_LENGTH 32
#define configTIMER_TASK_STACK_DEPTH ( 200 ) #define configTIMER_TASK_STACK_DEPTH ( 300 )
/* Tickless Idle configuration. */ /* Tickless Idle configuration. */
#define configEXPECTED_IDLE_TIME_BEFORE_SLEEP 2 #define configEXPECTED_IDLE_TIME_BEFORE_SLEEP 2

View File

@ -1,16 +1,46 @@
#include "BatteryController.h" #include "BatteryController.h"
#include <hal/nrf_gpio.h> #include <hal/nrf_gpio.h>
#include <nrfx_saadc.h>
#include <libraries/log/nrf_log.h> #include <libraries/log/nrf_log.h>
#include <algorithm> #include <algorithm>
#include <math.h>
using namespace Pinetime::Controllers; using namespace Pinetime::Controllers;
Battery *Battery::instance = nullptr;
Battery::Battery() {
instance = this;
}
void Battery::Init() { void Battery::Init() {
nrf_gpio_cfg_input(chargingPin, (nrf_gpio_pin_pull_t)GPIO_PIN_CNF_PULL_Pullup); nrf_gpio_cfg_input(chargingPin, (nrf_gpio_pin_pull_t)GPIO_PIN_CNF_PULL_Pullup);
nrf_gpio_cfg_input(powerPresentPin, (nrf_gpio_pin_pull_t)GPIO_PIN_CNF_PULL_Pullup); nrf_gpio_cfg_input(powerPresentPin, (nrf_gpio_pin_pull_t)GPIO_PIN_CNF_PULL_Pullup);
}
void Battery::Update() {
isCharging = !nrf_gpio_pin_read(chargingPin);
isPowerPresent = !nrf_gpio_pin_read(powerPresentPin);
if ( isReading ) return;
// Non blocking read
samples = 0;
isReading = true;
SaadcInit();
nrfx_saadc_sample();
}
void Battery::adcCallbackStatic(nrfx_saadc_evt_t const *event) {
instance->SaadcEventHandler(event);
}
void Battery::SaadcInit() {
nrfx_saadc_config_t adcConfig = NRFX_SAADC_DEFAULT_CONFIG; nrfx_saadc_config_t adcConfig = NRFX_SAADC_DEFAULT_CONFIG;
nrfx_saadc_init(&adcConfig, SaadcEventHandler); APP_ERROR_CHECK(nrfx_saadc_init(&adcConfig, adcCallbackStatic));
nrf_saadc_channel_config_t adcChannelConfig = { nrf_saadc_channel_config_t adcChannelConfig = {
.resistor_p = NRF_SAADC_RESISTOR_DISABLED, .resistor_p = NRF_SAADC_RESISTOR_DISABLED,
.resistor_n = NRF_SAADC_RESISTOR_DISABLED, .resistor_n = NRF_SAADC_RESISTOR_DISABLED,
@ -18,32 +48,41 @@ void Battery::Init() {
.reference = NRF_SAADC_REFERENCE_INTERNAL, .reference = NRF_SAADC_REFERENCE_INTERNAL,
.acq_time = NRF_SAADC_ACQTIME_3US, .acq_time = NRF_SAADC_ACQTIME_3US,
.mode = NRF_SAADC_MODE_SINGLE_ENDED, .mode = NRF_SAADC_MODE_SINGLE_ENDED,
.burst = NRF_SAADC_BURST_DISABLED, .burst = NRF_SAADC_BURST_ENABLED,
.pin_p = batteryVoltageAdcInput, .pin_p = batteryVoltageAdcInput,
.pin_n = NRF_SAADC_INPUT_DISABLED .pin_n = NRF_SAADC_INPUT_DISABLED
}; };
nrfx_saadc_channel_init(0, &adcChannelConfig); APP_ERROR_CHECK(nrfx_saadc_channel_init(0, &adcChannelConfig));
APP_ERROR_CHECK(nrfx_saadc_buffer_convert(&saadc_value, 1));
} }
void Battery::Update() { void Battery::SaadcEventHandler(nrfx_saadc_evt_t const * p_event) {
isCharging = !nrf_gpio_pin_read(chargingPin);
isPowerPresent = !nrf_gpio_pin_read(powerPresentPin);
nrf_saadc_value_t value = 0; const float battery_max = 4.18; // maximum voltage of battery ( max charging voltage is 4.21 )
nrfx_saadc_sample_convert(0, &value); const float battery_min = 3.20; // minimum voltage of battery before shutdown ( depends on the battery )
if (p_event->type == NRFX_SAADC_EVT_DONE) {
APP_ERROR_CHECK(nrfx_saadc_buffer_convert(&saadc_value, 1));
voltage = (static_cast<float>(p_event->data.done.p_buffer[0]) * 2.04f) / (1024 / 3.0f);
voltage = roundf(voltage * 100) / 100;
percentRemaining = static_cast<int>(((voltage - battery_min) / (battery_max - battery_min)) * 100);
// see https://forum.pine64.org/showthread.php?tid=8147
voltage = (value * 2.0f) / (1024/3.0f);
int percentRemaining = ((voltage - 3.55f)*100.0f)*3.9f;
percentRemaining = std::max(percentRemaining, 0); percentRemaining = std::max(percentRemaining, 0);
percentRemaining = std::min(percentRemaining, 100); percentRemaining = std::min(percentRemaining, 100);
percentRemainingBuffer.insert(percentRemaining); percentRemainingBuffer.insert(percentRemaining);
// NRF_LOG_INFO("BATTERY " NRF_LOG_FLOAT_MARKER " %% - " NRF_LOG_FLOAT_MARKER " v", NRF_LOG_FLOAT(percentRemaining), NRF_LOG_FLOAT(voltage)); samples++;
// NRF_LOG_INFO("POWER Charging : %d - Power : %d", isCharging, isPowerPresent); if ( samples > percentRemainingSamples ) {
nrfx_saadc_uninit();
isReading = false;
} else {
nrfx_saadc_sample();
}
}
} }
void Battery::SaadcEventHandler(nrfx_saadc_evt_t const * event) {
}

View File

@ -6,6 +6,7 @@
namespace Pinetime { namespace Pinetime {
namespace Controllers { namespace Controllers {
/** A simple circular buffer that can be used to average /** A simple circular buffer that can be used to average
out the sensor values. The total capacity of the CircBuffer out the sensor values. The total capacity of the CircBuffer
is given as the template parameter N. is given as the template parameter N.
@ -40,23 +41,42 @@ namespace Pinetime {
class Battery { class Battery {
public: public:
Battery();
void Init(); void Init();
void Update(); void Update();
int PercentRemaining() const { return percentRemainingBuffer.GetAverage(); } int PercentRemaining() const { return percentRemainingBuffer.GetAverage(); }
float Voltage() const { return voltage; } float Voltage() const { return voltage; }
bool IsCharging() const { return isCharging; } bool IsCharging() const { return isCharging; }
bool IsPowerPresent() const { return isPowerPresent; } bool IsPowerPresent() const { return isPowerPresent; }
private: private:
static Battery *instance;
nrf_saadc_value_t saadc_value;
static constexpr uint8_t percentRemainingSamples = 5;
CircBuffer<percentRemainingSamples> percentRemainingBuffer {};
static constexpr uint32_t chargingPin = 12; static constexpr uint32_t chargingPin = 12;
static constexpr uint32_t powerPresentPin = 19; static constexpr uint32_t powerPresentPin = 19;
static constexpr nrf_saadc_input_t batteryVoltageAdcInput = NRF_SAADC_INPUT_AIN7; static constexpr nrf_saadc_input_t batteryVoltageAdcInput = NRF_SAADC_INPUT_AIN7;
static constexpr uint8_t percentRemainingSamples = 10;
static void SaadcEventHandler(nrfx_saadc_evt_t const * p_event);
CircBuffer<percentRemainingSamples> percentRemainingBuffer {};
float voltage = 0.0f; float voltage = 0.0f;
int percentRemaining = -1;
bool isCharging = false; bool isCharging = false;
bool isPowerPresent = false; bool isPowerPresent = false;
void SaadcInit();
void SaadcEventHandler(nrfx_saadc_evt_t const * p_event);
static void adcCallbackStatic(nrfx_saadc_evt_t const *event);
bool isReading = false;
uint8_t samples = 0;
}; };
} }
} }

View File

@ -158,13 +158,17 @@ void AlertNotificationClient::OnNotification(ble_gap_event *event) {
const auto maxMessageSize{NotificationManager::MaximumMessageSize()}; const auto maxMessageSize{NotificationManager::MaximumMessageSize()};
const auto maxBufferSize{maxMessageSize + headerSize}; const auto maxBufferSize{maxMessageSize + headerSize};
const auto dbgPacketLen = OS_MBUF_PKTLEN(event->notify_rx.om); // Ignore notifications with empty message
size_t bufferSize = std::min(dbgPacketLen + stringTerminatorSize, maxBufferSize); const auto packetLen = OS_MBUF_PKTLEN(event->notify_rx.om);
if(packetLen <= headerSize) return;
size_t bufferSize = std::min(packetLen + stringTerminatorSize, maxBufferSize);
auto messageSize = std::min(maxMessageSize, (bufferSize - headerSize)); auto messageSize = std::min(maxMessageSize, (bufferSize - headerSize));
NotificationManager::Notification notif; NotificationManager::Notification notif;
os_mbuf_copydata(event->notify_rx.om, headerSize, messageSize - 1, notif.message.data()); os_mbuf_copydata(event->notify_rx.om, headerSize, messageSize - 1, notif.message.data());
notif.message[messageSize - 1] = '\0'; notif.message[messageSize - 1] = '\0';
notif.size = messageSize;
notif.category = Pinetime::Controllers::NotificationManager::Categories::SimpleAlert; notif.category = Pinetime::Controllers::NotificationManager::Categories::SimpleAlert;
notificationManager.Push(std::move(notif)); notificationManager.Push(std::move(notif));

View File

@ -66,8 +66,11 @@ int AlertNotificationService::OnAlert(uint16_t conn_handle, uint16_t attr_handle
const auto maxMessageSize {NotificationManager::MaximumMessageSize()}; const auto maxMessageSize {NotificationManager::MaximumMessageSize()};
const auto maxBufferSize{maxMessageSize + headerSize}; const auto maxBufferSize{maxMessageSize + headerSize};
const auto dbgPacketLen = OS_MBUF_PKTLEN(ctxt->om); // Ignore notifications with empty message
size_t bufferSize = std::min(dbgPacketLen + stringTerminatorSize, maxBufferSize); const auto packetLen = OS_MBUF_PKTLEN(ctxt->om);
if(packetLen <= headerSize) return 0;
size_t bufferSize = std::min(packetLen + stringTerminatorSize, maxBufferSize);
auto messageSize = std::min(maxMessageSize, (bufferSize-headerSize)); auto messageSize = std::min(maxMessageSize, (bufferSize-headerSize));
Categories category; Categories category;
@ -75,6 +78,7 @@ int AlertNotificationService::OnAlert(uint16_t conn_handle, uint16_t attr_handle
os_mbuf_copydata(ctxt->om, headerSize, messageSize-1, notif.message.data()); os_mbuf_copydata(ctxt->om, headerSize, messageSize-1, notif.message.data());
os_mbuf_copydata(ctxt->om, 0, 1, &category); os_mbuf_copydata(ctxt->om, 0, 1, &category);
notif.message[messageSize-1] = '\0'; notif.message[messageSize-1] = '\0';
notif.size = messageSize;
// TODO convert all ANS categories to NotificationController categories // TODO convert all ANS categories to NotificationController categories
switch(category) { switch(category) {

View File

@ -164,7 +164,7 @@ Pinetime::Controllers::MusicService::MusicService(Pinetime::System::SystemTask &
artistName = "Waiting for"; artistName = "Waiting for";
albumName = ""; albumName = "";
trackName = "track information..."; trackName = "track information..";
playing = false; playing = false;
repeat = false; repeat = false;
shuffle = false; shuffle = false;
@ -191,7 +191,6 @@ int Pinetime::Controllers::MusicService::OnCommand(uint16_t conn_handle, uint16_
data[notifSize] = '\0'; data[notifSize] = '\0';
os_mbuf_copydata(ctxt->om, 0, notifSize, data); os_mbuf_copydata(ctxt->om, 0, notifSize, data);
char *s = (char *) &data[0]; char *s = (char *) &data[0];
NRF_LOG_INFO("DATA : %s", s);
if (ble_uuid_cmp(ctxt->chr->uuid, (ble_uuid_t *) &msArtistCharUuid) == 0) { if (ble_uuid_cmp(ctxt->chr->uuid, (ble_uuid_t *) &msArtistCharUuid) == 0) {
artistName = s; artistName = s;
} else if (ble_uuid_cmp(ctxt->chr->uuid, (ble_uuid_t *) &msTrackCharUuid) == 0) { } else if (ble_uuid_cmp(ctxt->chr->uuid, (ble_uuid_t *) &msTrackCharUuid) == 0) {

View File

@ -101,7 +101,6 @@ int Pinetime::Controllers::NavigationService::OnCommand(uint16_t conn_handle, ui
data[notifSize] = '\0'; data[notifSize] = '\0';
os_mbuf_copydata(ctxt->om, 0, notifSize, data); os_mbuf_copydata(ctxt->om, 0, notifSize, data);
char *s = (char *) &data[0]; char *s = (char *) &data[0];
NRF_LOG_INFO("DATA : %s", s);
if (ble_uuid_cmp(ctxt->chr->uuid, (ble_uuid_t *) &navFlagCharUuid) == 0) { if (ble_uuid_cmp(ctxt->chr->uuid, (ble_uuid_t *) &navFlagCharUuid) == 0) {
m_flag = s; m_flag = s;
} else if (ble_uuid_cmp(ctxt->chr->uuid, (ble_uuid_t *) &navNarrativeCharUuid) == 0) { } else if (ble_uuid_cmp(ctxt->chr->uuid, (ble_uuid_t *) &navNarrativeCharUuid) == 0) {

View File

@ -87,3 +87,19 @@ size_t NotificationManager::NbNotifications() const {
return std::count_if(notifications.begin(), notifications.end(), [](const Notification& n){ return n.valid;}); return std::count_if(notifications.begin(), notifications.end(), [](const Notification& n){ return n.valid;});
} }
const char* NotificationManager::Notification::Message() const {
const char* itField = std::find(message.begin(), message.begin()+size-1, '\0');
if(itField != message.begin()+size-1) {
const char* ptr = (itField)+1;
return ptr;
}
return const_cast<char*>(message.data());
}
const char* NotificationManager::Notification::Title() const {
const char * itField = std::find(message.begin(), message.begin()+size-1, '\0');
if(itField != message.begin()+size-1) {
return message.data();
}
return {};
}

View File

@ -17,8 +17,12 @@ namespace Pinetime {
Id id; Id id;
bool valid = false; bool valid = false;
uint8_t index; uint8_t index;
uint8_t size;
std::array<char, MessageSize+1> message; std::array<char, MessageSize+1> message;
Categories category = Categories::Unknown; Categories category = Categories::Unknown;
const char* Message() const;
const char* Title() const;
}; };
Notification::Id nextId {0}; Notification::Id nextId {0};

View File

@ -1,5 +1,6 @@
#include "BrightnessController.h" #include "BrightnessController.h"
#include <hal/nrf_gpio.h> #include <hal/nrf_gpio.h>
#include "displayapp/screens/Symbols.h"
using namespace Pinetime::Controllers; using namespace Pinetime::Controllers;
@ -68,3 +69,30 @@ void BrightnessController::Restore() {
Set(backupLevel); Set(backupLevel);
} }
void BrightnessController::Step() {
switch(level) {
case Levels::Low: Set(Levels::Medium); break;
case Levels::Medium: Set(Levels::High); break;
case Levels::High: Set(Levels::Low); break;
default: break;
}
}
const char* BrightnessController::GetIcon() {
switch(level) {
case Levels::Medium: return Applications::Screens::Symbols::brightnessMedium;
case Levels::High: return Applications::Screens::Symbols::brightnessHigh;
default: break;
}
return Applications::Screens::Symbols::brightnessLow;
}
const char* BrightnessController::ToString() {
switch(level) {
case Levels::Off: return "Off";
case Levels::Low: return "Low";
case Levels::Medium: return "Medium";
case Levels::High: return "High";
default : return "???";
}
}

View File

@ -13,10 +13,14 @@ namespace Pinetime {
Levels Level() const; Levels Level() const;
void Lower(); void Lower();
void Higher(); void Higher();
void Step();
void Backup(); void Backup();
void Restore(); void Restore();
const char* GetIcon();
const char* ToString();
private: private:
static constexpr uint8_t pinLcdBacklight1 = 14; static constexpr uint8_t pinLcdBacklight1 = 14;
static constexpr uint8_t pinLcdBacklight2 = 22; static constexpr uint8_t pinLcdBacklight2 = 22;

View File

@ -1,9 +1,14 @@
#include "DateTimeController.h" #include "DateTimeController.h"
#include <date/date.h> #include <date/date.h>
#include <libraries/log/nrf_log.h> #include <libraries/log/nrf_log.h>
#include <systemtask/SystemTask.h>
using namespace Pinetime::Controllers; using namespace Pinetime::Controllers;
DateTime::DateTime(System::SystemTask& systemTask) : systemTask{systemTask} {
}
void DateTime::SetTime(uint16_t year, uint8_t month, uint8_t day, uint8_t dayOfWeek, uint8_t hour, uint8_t minute, void DateTime::SetTime(uint16_t year, uint8_t month, uint8_t day, uint8_t dayOfWeek, uint8_t hour, uint8_t minute,
uint8_t second, uint32_t systickCounter) { uint8_t second, uint32_t systickCounter) {
@ -62,6 +67,14 @@ void DateTime::UpdateTime(uint32_t systickCounter) {
hour = time.hours().count(); hour = time.hours().count();
minute = time.minutes().count(); minute = time.minutes().count();
second = time.seconds().count(); second = time.seconds().count();
// Notify new day to SystemTask
if(hour == 0 and not isMidnightAlreadyNotified) {
isMidnightAlreadyNotified = true;
systemTask.PushMessage(System::SystemTask::Messages::OnNewDay);
} else if (hour != 0) {
isMidnightAlreadyNotified = false;
}
} }
const char *DateTime::MonthShortToString() { const char *DateTime::MonthShortToString() {

View File

@ -4,12 +4,17 @@
#include <chrono> #include <chrono>
namespace Pinetime { namespace Pinetime {
namespace System {
class SystemTask;
}
namespace Controllers { namespace Controllers {
class DateTime { class DateTime {
public: public:
enum class Days : uint8_t {Unknown, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday}; enum class Days : uint8_t {Unknown, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday};
enum class Months : uint8_t {Unknown, January, February, March, April, May, June, July, August, September, October, November, December}; enum class Months : uint8_t {Unknown, January, February, March, April, May, June, July, August, September, October, November, December};
DateTime(System::SystemTask& systemTask);
void SetTime(uint16_t year, uint8_t month, uint8_t day, uint8_t dayOfWeek, uint8_t hour, uint8_t minute, uint8_t second, uint32_t systickCounter); void SetTime(uint16_t year, uint8_t month, uint8_t day, uint8_t dayOfWeek, uint8_t hour, uint8_t minute, uint8_t second, uint32_t systickCounter);
void UpdateTime(uint32_t systickCounter); void UpdateTime(uint32_t systickCounter);
uint16_t Year() const { return year; } uint16_t Year() const { return year; }
@ -31,6 +36,7 @@ namespace Pinetime {
std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds> CurrentDateTime() const { return currentDateTime; } std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds> CurrentDateTime() const { return currentDateTime; }
std::chrono::seconds Uptime() const { return uptime; } std::chrono::seconds Uptime() const { return uptime; }
private: private:
System::SystemTask& systemTask;
uint16_t year = 0; uint16_t year = 0;
Months month = Months::Unknown; Months month = Months::Unknown;
uint8_t day = 0; uint8_t day = 0;
@ -43,6 +49,8 @@ namespace Pinetime {
std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds> currentDateTime; std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds> currentDateTime;
std::chrono::seconds uptime {0}; std::chrono::seconds uptime {0};
bool isMidnightAlreadyNotified = false;
static char const *DaysString[]; static char const *DaysString[];
static char const *DaysStringShort[]; static char const *DaysStringShort[];
static char const *DaysStringLow[]; static char const *DaysStringLow[];

View File

@ -0,0 +1,36 @@
#include "MotionController.h"
using namespace Pinetime::Controllers;
void MotionController::Update(int16_t x, int16_t y, int16_t z, uint32_t nbSteps) {
this->x = x;
this->y = y;
this->z = z;
this->nbSteps = nbSteps;
}
bool MotionController::ShouldWakeUp(bool isSleeping) {
if ((x + 335) <= 670 && z < 0) {
if (not isSleeping) {
if (y <= 0) {
return false;
} else {
lastYForWakeUp = 0;
return false;
}
}
if (y >= 0) {
lastYForWakeUp = 0;
return false;
}
if (y + 230 < lastYForWakeUp) {
lastYForWakeUp = y;
return true;
}
}
return false;
}
void MotionController::IsSensorOk(bool isOk) {
isSensorOk = isOk;
}

View File

@ -0,0 +1,29 @@
#pragma once
#include <cstdint>
namespace Pinetime {
namespace Controllers {
class MotionController {
public:
void Update(int16_t x, int16_t y, int16_t z, uint32_t nbSteps);
uint16_t X() const { return x; }
uint16_t Y() const { return y; }
uint16_t Z() const { return z; }
uint32_t NbSteps() const { return nbSteps; }
bool ShouldWakeUp(bool isSleeping);
void IsSensorOk(bool isOk);
bool IsSensorOk() const { return isSensorOk; }
private:
uint32_t nbSteps;
int16_t x;
int16_t y;
int16_t z;
int16_t lastYForWakeUp = 0;
bool isSensorOk = false;
};
}
}

View File

@ -7,6 +7,8 @@ APP_TIMER_DEF(vibTimer);
using namespace Pinetime::Controllers; using namespace Pinetime::Controllers;
MotorController::MotorController( Controllers::Settings &settingsController ) : settingsController{settingsController} {}
void MotorController::Init() { void MotorController::Init() {
nrf_gpio_cfg_output(pinMotor); nrf_gpio_cfg_output(pinMotor);
nrf_gpio_pin_set(pinMotor); nrf_gpio_pin_set(pinMotor);
@ -15,6 +17,9 @@ void MotorController::Init() {
} }
void MotorController::SetDuration(uint8_t motorDuration) { void MotorController::SetDuration(uint8_t motorDuration) {
if ( settingsController.GetVibrationStatus() == Controllers::Settings::Vibration::OFF ) return;
nrf_gpio_pin_clear(pinMotor); nrf_gpio_pin_clear(pinMotor);
/* Start timer for motorDuration miliseconds and timer triggers vibrate() when it finishes*/ /* Start timer for motorDuration miliseconds and timer triggers vibrate() when it finishes*/
app_timer_start(vibTimer, APP_TIMER_TICKS(motorDuration), NULL); app_timer_start(vibTimer, APP_TIMER_TICKS(motorDuration), NULL);

View File

@ -2,6 +2,7 @@
#include <cstdint> #include <cstdint>
#include "app_timer.h" #include "app_timer.h"
#include "components/settings/Settings.h"
namespace Pinetime { namespace Pinetime {
namespace Controllers { namespace Controllers {
@ -9,10 +10,12 @@ namespace Pinetime {
class MotorController { class MotorController {
public: public:
MotorController( Controllers::Settings &settingsController );
void Init(); void Init();
void SetDuration(uint8_t motorDuration); void SetDuration(uint8_t motorDuration);
private: private:
Controllers::Settings& settingsController;
static void vibrate(void * p_context); static void vibrate(void * p_context);
}; };
} }

View File

@ -1,16 +1,114 @@
#include "Settings.h" #include "Settings.h"
#include <cstdlib>
#include <cstring>
using namespace Pinetime::Controllers; using namespace Pinetime::Controllers;
struct SettingsHeader {
uint8_t isActive; // 0xF1 = Block is active, 0xF0 = Block is inactive
uint16_t version; // Current version, to verify if the saved data is for the current Version
};
#define HEADER_SIZE sizeof(SettingsHeader)
Settings::Settings( Pinetime::Drivers::SpiNorFlash &spiNorFlash ) : spiNorFlash{spiNorFlash} {}
// TODO (team):
// Read and write the settings to Flash
//
void Settings::Init() { void Settings::Init() {
// default Clock face
clockFace = 0;
clockType = ClockType::H24; // Load default settings from Flash
LoadSettingsFromFlash();
} }
void Settings::SaveSettings() {
// verify if is necessary to save
if ( settingsChanged ) {
SaveSettingsToFlash();
}
settingsChanged = false;
}
bool Settings::FindHeader() {
SettingsHeader settingsHeader;
uint8_t bufferHead[sizeof(settingsHeader)];
for (uint8_t block = 0; block < 10; block++) {
spiNorFlash.Read( settingsBaseAddr + (block * 0x1000), bufferHead, sizeof(settingsHeader) );
std::memcpy(&settingsHeader, bufferHead, sizeof(settingsHeader));
if ( settingsHeader.isActive == 0xF1 && settingsHeader.version == settingsVersion ) {
settingsFlashBlock = block;
return true;
}
}
return false;
}
void Settings::ReadSettingsData() {
uint8_t bufferSettings[sizeof(settings)];
spiNorFlash.Read( settingsBaseAddr + (settingsFlashBlock * 0x1000) + HEADER_SIZE, bufferSettings, sizeof(settings) );
std::memcpy(&settings, bufferSettings, sizeof(settings));
}
void Settings::EraseBlock() {
spiNorFlash.SectorErase(settingsBaseAddr + (settingsFlashBlock * 0x1000));
}
void Settings::SetHeader( bool state ) {
SettingsHeader settingsHeader;
uint8_t bufferHead[sizeof(settingsHeader)];
settingsHeader.isActive = state ? 0xF1 : 0xF0;
settingsHeader.version = settingsVersion;
std::memcpy(bufferHead, &settingsHeader, sizeof(settingsHeader));
spiNorFlash.Write(settingsBaseAddr + (settingsFlashBlock * 0x1000), bufferHead, sizeof(settingsHeader));
}
void Settings::SaveSettingsData() {
uint8_t bufferSettings[sizeof(settings)];
std::memcpy(bufferSettings, &settings, sizeof(settings));
spiNorFlash.Write(settingsBaseAddr + (settingsFlashBlock * 0x1000) + HEADER_SIZE, bufferSettings, sizeof(settings));
}
void Settings::LoadSettingsFromFlash() {
if ( settingsFlashBlock == 99 ) {
// Find current Block, if can't find use default settings and set block to 0 ans save !
if ( FindHeader() ) {
ReadSettingsData();
} else {
SaveSettingsToFlash();
}
} else {
// Read Settings from flash...
// never used :)
ReadSettingsData();
}
}
void Settings::SaveSettingsToFlash() {
// calculate where to save...
// mark current to inactive
// erase the new location and save
// set settingsFlashBlock
// if first time hever, only saves to block 0 and set settingsFlashBlock
if ( settingsFlashBlock != 99 ) {
SetHeader( false );
}
settingsFlashBlock++;
if ( settingsFlashBlock > 9 ) settingsFlashBlock = 0;
EraseBlock();
SetHeader( true );
SaveSettingsData();
}

View File

@ -1,29 +1,104 @@
#pragma once #pragma once
#include <cstdint> #include <cstdint>
#include "components/datetime/DateTimeController.h"
#include "components/brightness/BrightnessController.h"
#include "drivers/SpiNorFlash.h"
#include "drivers/Cst816s.h"
namespace Pinetime { namespace Pinetime {
namespace Controllers { namespace Controllers {
class Settings { class Settings {
public: public:
enum class ClockType {H24, H12}; enum class ClockType {H24, H12};
enum class Vibration {ON, OFF};
enum class WakeUpMode {None, SingleTap, DoubleTap, RaiseWrist};
Settings( Pinetime::Drivers::SpiNorFlash &spiNorFlash );
void Init(); void Init();
void SaveSettings();
void SetClockFace( uint8_t face ) { clockFace = face; }; void SetClockFace( uint8_t face ) {
uint8_t GetClockFace() { return clockFace; }; if ( face != settings.clockFace ) settingsChanged = true;
settings.clockFace = face;
};
uint8_t GetClockFace() const { return settings.clockFace; };
void SetAppMenu( uint8_t menu ) { appMenu = menu; }; void SetAppMenu( uint8_t menu ) { appMenu = menu; };
uint8_t GetAppMenu() { return appMenu; }; uint8_t GetAppMenu() { return appMenu; };
void SetClockType( ClockType clocktype ) { clockType = clocktype; }; void SetSettingsMenu( uint8_t menu ) { settingsMenu = menu; };
ClockType GetClockType() { return clockType; }; uint8_t GetSettingsMenu() const { return settingsMenu; };
void SetClockType( ClockType clocktype ) {
if ( clocktype != settings.clockType ) settingsChanged = true;
settings.clockType = clocktype;
};
ClockType GetClockType() const { return settings.clockType; };
void SetVibrationStatus( Vibration status ) {
if ( status != settings.vibrationStatus ) settingsChanged = true;
settings.vibrationStatus = status;
};
Vibration GetVibrationStatus() const { return settings.vibrationStatus; };
void SetScreenTimeOut( uint32_t timeout ) {
if ( timeout != settings.screenTimeOut ) settingsChanged = true;
settings.screenTimeOut = timeout;
};
uint32_t GetScreenTimeOut() const { return settings.screenTimeOut; };
void setWakeUpMode( WakeUpMode wakeUp ) {
if ( wakeUp != settings.wakeUpMode ) settingsChanged = true;
settings.wakeUpMode = wakeUp;
};
WakeUpMode getWakeUpMode() const { return settings.wakeUpMode; };
void SetBrightness( Controllers::BrightnessController::Levels level ) {
if ( level != settings.brightLevel ) settingsChanged = true;
settings.brightLevel = level;
};
Controllers::BrightnessController::Levels GetBrightness() const { return settings.brightLevel; };
private: private:
uint8_t clockFace = 0;
uint8_t appMenu = 0; Pinetime::Drivers::SpiNorFlash& spiNorFlash;
struct SettingsData {
ClockType clockType = ClockType::H24; ClockType clockType = ClockType::H24;
Vibration vibrationStatus = Vibration::ON;
uint8_t clockFace = 0;
uint32_t stepsGoal = 1000;
uint32_t screenTimeOut = 15000;
WakeUpMode wakeUpMode = WakeUpMode::None;
Controllers::BrightnessController::Levels brightLevel = Controllers::BrightnessController::Levels::Medium;
};
SettingsData settings;
bool settingsChanged = false;
uint8_t appMenu = 0;
uint8_t settingsMenu = 0;
// There are 10 blocks of reserved flash to save settings
// to minimize wear, the recording is done in a rotating way by the 10 blocks
uint8_t settingsFlashBlock = 99; // default to indicate it needs to find the active block
static constexpr uint32_t settingsBaseAddr = 0x3F6000; // Flash Settings Location
static constexpr uint16_t settingsVersion = 0x0100; // Flash Settings Version
bool FindHeader();
void ReadSettingsData();
void EraseBlock();
void SetHeader( bool state );
void SaveSettingsData();
void LoadSettingsFromFlash();
void SaveSettingsToFlash();
}; };
} }

View File

@ -2,6 +2,10 @@
namespace Pinetime { namespace Pinetime {
namespace Applications { namespace Applications {
enum class Apps {None, Launcher, Clock, SysInfo, Meter, Brightness, Music, FirmwareValidation, Paint, Paddle, Notifications, Twos, HeartRate, Navigation, StopWatch}; enum class Apps {
None, Launcher, Clock, SysInfo, FirmwareUpdate, FirmwareValidation, NotificationsPreview, Notifications, FlashLight, BatteryInfo,
Music, Paint, Paddle, Twos, HeartRate, Navigation, StopWatch, Motion,
QuickSettings, Settings, SettingWatchFace, SettingTimeFormat, SettingDisplay, SettingWakeUp
};
} }
} }

View File

@ -1,10 +1,12 @@
#include "DisplayApp.h" #include "DisplayApp.h"
#include <libraries/log/nrf_log.h> #include <libraries/log/nrf_log.h>
#include <displayapp/screens/HeartRate.h> #include <displayapp/screens/HeartRate.h>
#include <displayapp/screens/Motion.h>
#include "components/battery/BatteryController.h" #include "components/battery/BatteryController.h"
#include "components/ble/BleController.h" #include "components/ble/BleController.h"
#include "components/datetime/DateTimeController.h" #include "components/datetime/DateTimeController.h"
#include "components/ble/NotificationManager.h" #include "components/ble/NotificationManager.h"
#include "components/motion/MotionController.h"
#include "displayapp/screens/ApplicationList.h" #include "displayapp/screens/ApplicationList.h"
#include "displayapp/screens/Brightness.h" #include "displayapp/screens/Brightness.h"
#include "displayapp/screens/Clock.h" #include "displayapp/screens/Clock.h"
@ -20,11 +22,21 @@
#include "displayapp/screens/SystemInfo.h" #include "displayapp/screens/SystemInfo.h"
#include "displayapp/screens/Tile.h" #include "displayapp/screens/Tile.h"
#include "displayapp/screens/Twos.h" #include "displayapp/screens/Twos.h"
#include "displayapp/screens/FlashLight.h"
#include "displayapp/screens/BatteryInfo.h"
#include "drivers/Cst816s.h" #include "drivers/Cst816s.h"
#include "drivers/St7789.h" #include "drivers/St7789.h"
#include "drivers/Watchdog.h" #include "drivers/Watchdog.h"
#include "systemtask/SystemTask.h" #include "systemtask/SystemTask.h"
#include "displayapp/screens/settings/QuickSettings.h"
#include "displayapp/screens/settings/Settings.h"
#include "displayapp/screens/settings/SettingWatchFace.h"
#include "displayapp/screens/settings/SettingTimeFormat.h"
#include "displayapp/screens/settings/SettingWakeUp.h"
#include "displayapp/screens/settings/SettingDisplay.h"
using namespace Pinetime::Applications; using namespace Pinetime::Applications;
using namespace Pinetime::Applications::Display; using namespace Pinetime::Applications::Display;
@ -34,25 +46,27 @@ DisplayApp::DisplayApp(Drivers::St7789 &lcd, Components::LittleVgl &lvgl, Driver
System::SystemTask &systemTask, System::SystemTask &systemTask,
Pinetime::Controllers::NotificationManager& notificationManager, Pinetime::Controllers::NotificationManager& notificationManager,
Pinetime::Controllers::HeartRateController& heartRateController, Pinetime::Controllers::HeartRateController& heartRateController,
Controllers::Settings &settingsController) : Controllers::Settings &settingsController,
Pinetime::Controllers::MotionController& motionController) :
lcd{lcd}, lcd{lcd},
lvgl{lvgl}, lvgl{lvgl},
touchPanel{touchPanel},
batteryController{batteryController}, batteryController{batteryController},
bleController{bleController}, bleController{bleController},
dateTimeController{dateTimeController}, dateTimeController{dateTimeController},
watchdog{watchdog}, watchdog{watchdog},
touchPanel{touchPanel},
currentScreen{new Screens::Clock(this, dateTimeController, batteryController, bleController, notificationManager, settingsController, heartRateController) },
systemTask{systemTask}, systemTask{systemTask},
notificationManager{notificationManager}, notificationManager{notificationManager},
heartRateController{heartRateController}, heartRateController{heartRateController},
settingsController{settingsController} { settingsController{settingsController},
motionController{motionController} {
msgQueue = xQueueCreate(queueSize, itemSize); msgQueue = xQueueCreate(queueSize, itemSize);
onClockApp = true; // Start clock when smartwatch boots
LoadApp( Apps::Clock, DisplayApp::FullRefreshDirections::None );
} }
void DisplayApp::Start() { void DisplayApp::Start() {
if (pdPASS != xTaskCreate(DisplayApp::Process, "displayapp", 512, this, 0, &taskHandle)) if (pdPASS != xTaskCreate(DisplayApp::Process, "displayapp", 800, this, 0, &taskHandle))
APP_ERROR_HANDLER(NRF_ERROR_NO_MEM); APP_ERROR_HANDLER(NRF_ERROR_NO_MEM);
} }
@ -65,14 +79,13 @@ void DisplayApp::Process(void *instance) {
xTaskNotifyGive(xTaskGetCurrentTaskHandle()); xTaskNotifyGive(xTaskGetCurrentTaskHandle());
while (1) { while (1) {
app->Refresh(); app->Refresh();
} }
} }
void DisplayApp::InitHw() { void DisplayApp::InitHw() {
brightnessController.Init(); brightnessController.Init();
brightnessController.Set(settingsController.GetBrightness());
} }
uint32_t acc = 0; uint32_t acc = 0;
@ -112,69 +125,61 @@ void DisplayApp::Refresh() {
brightnessController.Restore(); brightnessController.Restore();
state = States::Running; state = States::Running;
break; break;
case Messages::UpdateTimeOut:
systemTask.PushMessage(System::SystemTask::Messages::UpdateTimeOut);
break;
case Messages::UpdateBleConnection: case Messages::UpdateBleConnection:
// clockScreen.SetBleConnectionState(bleController.IsConnected() ? Screens::Clock::BleConnectionStates::Connected : Screens::Clock::BleConnectionStates::NotConnected); // clockScreen.SetBleConnectionState(bleController.IsConnected() ? Screens::Clock::BleConnectionStates::Connected : Screens::Clock::BleConnectionStates::NotConnected);
break; break;
case Messages::UpdateBatteryLevel: case Messages::UpdateBatteryLevel:
// clockScreen.SetBatteryPercentRemaining(batteryController.PercentRemaining()); batteryController.Update();
break; break;
case Messages::NewNotification: { case Messages::NewNotification:
if(onClockApp) { LoadApp( Apps::NotificationsPreview, DisplayApp::FullRefreshDirections::Down );
currentScreen.reset(nullptr);
lvgl.SetFullRefresh(Components::LittleVgl::FullRefreshDirections::Up);
onClockApp = false;
currentScreen.reset(new Screens::Notifications(this, notificationManager, systemTask.nimble().alertService(), Screens::Notifications::Modes::Preview));
}
}
break; break;
case Messages::TouchEvent: { case Messages::TouchEvent: {
if (state != States::Running) break; if (state != States::Running) break;
auto gesture = OnTouchEvent(); auto gesture = OnTouchEvent();
if(!currentScreen->OnTouchEvent(gesture)) { if(!currentScreen->OnTouchEvent(gesture)) {
if ( currentApp == Apps::Clock ) {
switch (gesture) { switch (gesture) {
case TouchEvents::SwipeUp: case TouchEvents::SwipeUp:
currentScreen->OnButtonPushed(); LoadApp( Apps::Launcher, DisplayApp::FullRefreshDirections::Up );
lvgl.SetFullRefresh(Components::LittleVgl::FullRefreshDirections::Up);
break; break;
case TouchEvents::SwipeDown: case TouchEvents::SwipeDown:
currentScreen->OnButtonPushed(); LoadApp( Apps::Notifications, DisplayApp::FullRefreshDirections::Down );
lvgl.SetFullRefresh(Components::LittleVgl::FullRefreshDirections::Down); break;
case TouchEvents::SwipeRight:
LoadApp( Apps::QuickSettings, DisplayApp::FullRefreshDirections::RightAnim );
break;
case TouchEvents::DoubleTap:
systemTask.PushMessage(System::SystemTask::Messages::GoToSleep);
break; break;
default: default:
break; break;
} }
} else if ( returnTouchEvent == gesture ) {
LoadApp( returnToApp, returnDirection );
}
} }
} }
break; break;
case Messages::ButtonPushed: case Messages::ButtonPushed:
if(onClockApp) if( currentApp == Apps::Clock ) {
systemTask.PushMessage(System::SystemTask::Messages::GoToSleep);
else {
auto buttonUsedByApp = currentScreen->OnButtonPushed();
if (!buttonUsedByApp) {
systemTask.PushMessage(System::SystemTask::Messages::GoToSleep); systemTask.PushMessage(System::SystemTask::Messages::GoToSleep);
} else { } else {
lvgl.SetFullRefresh(Components::LittleVgl::FullRefreshDirections::Up); if ( !currentScreen->OnButtonPushed() ) {
LoadApp( returnToApp, returnDirection );
} }
} }
// lvgl.SetFullRefresh(components::LittleVgl::FullRefreshDirections::Down);
// currentScreen.reset(nullptr);
// if(toggle) {
// currentScreen.reset(new Screens::Tile(this));
// toggle = false;
// } else {
// currentScreen.reset(new Screens::Clock(this, dateTimeController, batteryController, bleController));
// toggle = true;
// }
break; break;
case Messages::BleFirmwareUpdateStarted:
lvgl.SetFullRefresh(Components::LittleVgl::FullRefreshDirections::Down);
currentScreen.reset(nullptr);
currentScreen.reset(new Screens::FirmwareUpdate(this, bleController));
onClockApp = false;
case Messages::BleFirmwareUpdateStarted:
LoadApp( Apps::FirmwareUpdate, DisplayApp::FullRefreshDirections::Down );
break;
case Messages::UpdateDateTime:
// Added to remove warning
// What should happen here?
break; break;
} }
} }
@ -190,37 +195,123 @@ void DisplayApp::Refresh() {
} }
void DisplayApp::RunningState() { void DisplayApp::RunningState() {
// clockScreen.SetCurrentDateTime(dateTimeController.CurrentDateTime());
if(!currentScreen->Refresh()) { if(!currentScreen->Refresh()) {
currentScreen.reset(nullptr); LoadApp( returnToApp, returnDirection );
lvgl.SetFullRefresh(Components::LittleVgl::FullRefreshDirections::Up);
onClockApp = false;
switch(nextApp) {
case Apps::None:
case Apps::Launcher: currentScreen.reset(new Screens::ApplicationList(this, settingsController)); break;
case Apps::Clock:
currentScreen.reset(new Screens::Clock(this, dateTimeController, batteryController, bleController, notificationManager, settingsController, heartRateController));
onClockApp = true;
break;
case Apps::SysInfo: currentScreen.reset(new Screens::SystemInfo(this, dateTimeController, batteryController, brightnessController, bleController, watchdog)); break;
case Apps::Meter: currentScreen.reset(new Screens::Meter(this)); break;
case Apps::StopWatch: currentScreen.reset(new Screens::StopWatch(this)); break;
case Apps::Twos: currentScreen.reset(new Screens::Twos(this)); break;
case Apps::Paint: currentScreen.reset(new Screens::InfiniPaint(this, lvgl)); break;
case Apps::Paddle: currentScreen.reset(new Screens::Paddle(this, lvgl)); break;
case Apps::Brightness : currentScreen.reset(new Screens::Brightness(this, brightnessController)); break;
case Apps::Music : currentScreen.reset(new Screens::Music(this, systemTask.nimble().music())); break;
case Apps::Navigation : currentScreen.reset(new Screens::Navigation(this, systemTask.nimble().navigation())); break;
case Apps::FirmwareValidation: currentScreen.reset(new Screens::FirmwareValidation(this, validator)); break;
case Apps::Notifications: currentScreen.reset(new Screens::Notifications(this, notificationManager, systemTask.nimble().alertService(), Screens::Notifications::Modes::Normal)); break;
case Apps::HeartRate: currentScreen.reset(new Screens::HeartRate(this, heartRateController)); break;
}
nextApp = Apps::None;
} }
lv_task_handler(); lv_task_handler();
} }
void DisplayApp::StartApp(Apps app, DisplayApp::FullRefreshDirections direction) {
LoadApp( app, direction );
}
void DisplayApp::returnApp(Apps app, DisplayApp::FullRefreshDirections direction, TouchEvents touchEvent) {
returnToApp = app;
returnDirection = direction;
returnTouchEvent = touchEvent;
}
void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) {
currentScreen.reset(nullptr);
SetFullRefresh( direction );
// default return to launcher
returnApp(Apps::Launcher, FullRefreshDirections::Down, TouchEvents::SwipeDown);
switch(app) {
case Apps::Launcher:
currentScreen = std::make_unique<Screens::ApplicationList>(this, settingsController, batteryController, dateTimeController);
returnApp(Apps::Clock, FullRefreshDirections::Down, TouchEvents::SwipeDown);
break;
case Apps::None:
case Apps::Clock:
currentScreen = std::make_unique<Screens::Clock>(this, dateTimeController, batteryController, bleController, notificationManager, settingsController, heartRateController, motionController);
break;
case Apps::FirmwareValidation:
currentScreen = std::make_unique<Screens::FirmwareValidation>(this, validator);
returnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown);
break;
case Apps::FirmwareUpdate:
currentScreen = std::make_unique<Screens::FirmwareUpdate>(this, bleController);
break;
case Apps::Notifications:
currentScreen = std::make_unique<Screens::Notifications>(this, notificationManager, systemTask.nimble().alertService(), Screens::Notifications::Modes::Normal);
returnApp(Apps::Clock, FullRefreshDirections::Up, TouchEvents::SwipeUp);
break;
case Apps::NotificationsPreview:
currentScreen = std::make_unique<Screens::Notifications>(this, notificationManager, systemTask.nimble().alertService(), Screens::Notifications::Modes::Preview);
returnApp(Apps::Clock, FullRefreshDirections::Up, TouchEvents::SwipeUp);
break;
// Settings
case Apps::QuickSettings:
currentScreen = std::make_unique<Screens::QuickSettings>(this, batteryController, dateTimeController, brightnessController, settingsController);
returnApp(Apps::Clock, FullRefreshDirections::LeftAnim, TouchEvents::SwipeLeft);
break;
case Apps::Settings:
currentScreen = std::make_unique<Screens::Settings>(this, settingsController);
returnApp(Apps::QuickSettings, FullRefreshDirections::Down, TouchEvents::SwipeDown);
break;
case Apps::SettingWatchFace:
currentScreen = std::make_unique<Screens::SettingWatchFace>(this, settingsController);
returnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown);
break;
case Apps::SettingTimeFormat:
currentScreen = std::make_unique<Screens::SettingTimeFormat>(this, settingsController);
returnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown);
break;
case Apps::SettingWakeUp:
currentScreen = std::make_unique<Screens::SettingWakeUp>(this, settingsController);
returnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown);
break;
case Apps::SettingDisplay:
currentScreen = std::make_unique<Screens::SettingDisplay>(this, settingsController);
returnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown);
break;
case Apps::BatteryInfo:
currentScreen = std::make_unique<Screens::BatteryInfo>(this, batteryController);
returnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown);
break;
case Apps::SysInfo:
currentScreen = std::make_unique<Screens::SystemInfo>(this, dateTimeController, batteryController, brightnessController, bleController, watchdog);
returnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown);
break;
//
case Apps::FlashLight:
currentScreen = std::make_unique<Screens::FlashLight>(this, systemTask, brightnessController);
returnApp(Apps::Clock, FullRefreshDirections::Down, TouchEvents::None);
break;
case Apps::StopWatch:
currentScreen = std::make_unique<Screens::StopWatch>(this);
break;
case Apps::Twos:
currentScreen = std::make_unique<Screens::Twos>(this);
break;
case Apps::Paint:
currentScreen = std::make_unique<Screens::InfiniPaint>(this, lvgl);
break;
case Apps::Paddle:
currentScreen = std::make_unique<Screens::Paddle>(this, lvgl);
break;
case Apps::Music:
currentScreen = std::make_unique<Screens::Music>(this, systemTask.nimble().music());
break;
case Apps::Navigation:
currentScreen = std::make_unique<Screens::Navigation>(this, systemTask.nimble().navigation());
break;
case Apps::HeartRate:
currentScreen = std::make_unique<Screens::HeartRate>(this, heartRateController, systemTask);
break;
case Apps::Motion:
currentScreen = std::make_unique<Screens::Motion>(this, motionController);
break;
}
currentApp = app;
}
void DisplayApp::IdleState() { void DisplayApp::IdleState() {
} }
@ -263,10 +354,6 @@ TouchEvents DisplayApp::OnTouchEvent() {
return TouchEvents::None; return TouchEvents::None;
} }
void DisplayApp::StartApp(Apps app) {
nextApp = app;
}
void DisplayApp::SetFullRefresh(DisplayApp::FullRefreshDirections direction) { void DisplayApp::SetFullRefresh(DisplayApp::FullRefreshDirections direction) {
switch(direction){ switch(direction){
case DisplayApp::FullRefreshDirections::Down: case DisplayApp::FullRefreshDirections::Down:
@ -275,9 +362,20 @@ void DisplayApp::SetFullRefresh(DisplayApp::FullRefreshDirections direction) {
case DisplayApp::FullRefreshDirections::Up: case DisplayApp::FullRefreshDirections::Up:
lvgl.SetFullRefresh(Components::LittleVgl::FullRefreshDirections::Up); lvgl.SetFullRefresh(Components::LittleVgl::FullRefreshDirections::Up);
break; break;
case DisplayApp::FullRefreshDirections::Left:
lvgl.SetFullRefresh(Components::LittleVgl::FullRefreshDirections::Left);
break;
case DisplayApp::FullRefreshDirections::Right:
lvgl.SetFullRefresh(Components::LittleVgl::FullRefreshDirections::Right);
break;
case DisplayApp::FullRefreshDirections::LeftAnim:
lvgl.SetFullRefresh(Components::LittleVgl::FullRefreshDirections::LeftAnim);
break;
case DisplayApp::FullRefreshDirections::RightAnim:
lvgl.SetFullRefresh(Components::LittleVgl::FullRefreshDirections::RightAnim);
break;
default: break; default: break;
} }
} }
void DisplayApp::SetTouchMode(DisplayApp::TouchModes mode) { void DisplayApp::SetTouchMode(DisplayApp::TouchModes mode) {

View File

@ -27,6 +27,7 @@ namespace Pinetime {
class DateTime; class DateTime;
class NotificationManager; class NotificationManager;
class HeartRateController; class HeartRateController;
class MotionController;
} }
namespace System { namespace System {
@ -36,7 +37,7 @@ namespace Pinetime {
class DisplayApp { class DisplayApp {
public: public:
enum class States {Idle, Running}; enum class States {Idle, Running};
enum class FullRefreshDirections { None, Up, Down }; enum class FullRefreshDirections { None, Up, Down, Left, Right, LeftAnim, RightAnim };
enum class TouchModes { Gestures, Polling }; enum class TouchModes { Gestures, Polling };
DisplayApp(Drivers::St7789 &lcd, Components::LittleVgl &lvgl, Drivers::Cst816S &, DisplayApp(Drivers::St7789 &lcd, Components::LittleVgl &lvgl, Drivers::Cst816S &,
@ -45,53 +46,61 @@ namespace Pinetime {
System::SystemTask &systemTask, System::SystemTask &systemTask,
Pinetime::Controllers::NotificationManager& notificationManager, Pinetime::Controllers::NotificationManager& notificationManager,
Pinetime::Controllers::HeartRateController& heartRateController, Pinetime::Controllers::HeartRateController& heartRateController,
Controllers::Settings &settingsController Controllers::Settings &settingsController,
Pinetime::Controllers::MotionController& motionController
); );
void Start(); void Start();
void PushMessage(Display::Messages msg); void PushMessage(Display::Messages msg);
void StartApp(Apps app); void StartApp(Apps app, DisplayApp::FullRefreshDirections direction);
void SetFullRefresh(FullRefreshDirections direction); void SetFullRefresh(FullRefreshDirections direction);
void SetTouchMode(TouchModes mode); void SetTouchMode(TouchModes mode);
private: private:
TaskHandle_t taskHandle;
static void Process(void* instance);
void InitHw();
Pinetime::Drivers::St7789& lcd; Pinetime::Drivers::St7789& lcd;
Pinetime::Components::LittleVgl& lvgl; Pinetime::Components::LittleVgl& lvgl;
void Refresh(); Pinetime::Drivers::Cst816S& touchPanel;
Pinetime::Controllers::Battery &batteryController;
Pinetime::Controllers::Ble &bleController;
Pinetime::Controllers::DateTime& dateTimeController;
Pinetime::Drivers::WatchdogView& watchdog;
Pinetime::System::SystemTask& systemTask;
Pinetime::Controllers::NotificationManager& notificationManager;
Pinetime::Controllers::HeartRateController& heartRateController;
Pinetime::Controllers::Settings& settingsController;
Pinetime::Controllers::MotionController& motionController;
Pinetime::Controllers::FirmwareValidator validator;
Controllers::BrightnessController brightnessController;
TaskHandle_t taskHandle;
States state = States::Running; States state = States::Running;
void RunningState();
void IdleState();
QueueHandle_t msgQueue; QueueHandle_t msgQueue;
static constexpr uint8_t queueSize = 10; static constexpr uint8_t queueSize = 10;
static constexpr uint8_t itemSize = 1; static constexpr uint8_t itemSize = 1;
Pinetime::Controllers::Battery &batteryController;
Pinetime::Controllers::Ble &bleController;
Pinetime::Controllers::DateTime& dateTimeController;
Pinetime::Drivers::WatchdogView& watchdog;
Pinetime::Drivers::Cst816S& touchPanel;
TouchEvents OnTouchEvent();
std::unique_ptr<Screens::Screen> currentScreen; std::unique_ptr<Screens::Screen> currentScreen;
bool isClock = true; Apps currentApp = Apps::None;
Apps returnToApp = Apps::None;
FullRefreshDirections returnDirection = FullRefreshDirections::None;
TouchEvents returnTouchEvent = TouchEvents::None;
Pinetime::System::SystemTask& systemTask;
Apps nextApp = Apps::None;
bool onClockApp = false; // TODO find a better way to know that we should handle gestures and button differently for the Clock app.
Controllers::BrightnessController brightnessController;
Pinetime::Controllers::NotificationManager& notificationManager;
Pinetime::Controllers::FirmwareValidator validator;
TouchModes touchMode = TouchModes::Gestures; TouchModes touchMode = TouchModes::Gestures;
Pinetime::Controllers::HeartRateController& heartRateController;
Pinetime::Controllers::Settings& settingsController; TouchEvents OnTouchEvent();
void RunningState();
void IdleState();
static void Process(void* instance);
void InitHw();
void Refresh();
void returnApp(Apps app, DisplayApp::FullRefreshDirections direction, TouchEvents touchEvent);
void LoadApp(Apps app, DisplayApp::FullRefreshDirections direction);
}; };
} }
} }

View File

@ -13,7 +13,8 @@ DisplayApp::DisplayApp(Drivers::St7789 &lcd, Components::LittleVgl &lvgl, Driver
System::SystemTask &systemTask, System::SystemTask &systemTask,
Pinetime::Controllers::NotificationManager& notificationManager, Pinetime::Controllers::NotificationManager& notificationManager,
Pinetime::Controllers::HeartRateController& heartRateController, Pinetime::Controllers::HeartRateController& heartRateController,
Pinetime::Controllers::Settings& settingsController): Pinetime::Controllers::Settings& settingsController,
Pinetime::Controllers::MotionController& motionController):
lcd{lcd}, bleController{bleController} { lcd{lcd}, bleController{bleController} {
msgQueue = xQueueCreate(queueSize, itemSize); msgQueue = xQueueCreate(queueSize, itemSize);

View File

@ -16,6 +16,7 @@
#include <date/date.h> #include <date/date.h>
#include <drivers/Watchdog.h> #include <drivers/Watchdog.h>
#include <components/heartrate/HeartRateController.h> #include <components/heartrate/HeartRateController.h>
#include <components/motion/MotionController.h>
#include <components/settings/Settings.h> #include <components/settings/Settings.h>
#include "TouchEvents.h" #include "TouchEvents.h"
#include "Apps.h" #include "Apps.h"
@ -35,7 +36,8 @@ namespace Pinetime {
System::SystemTask &systemTask, System::SystemTask &systemTask,
Pinetime::Controllers::NotificationManager& notificationManager, Pinetime::Controllers::NotificationManager& notificationManager,
Pinetime::Controllers::HeartRateController& heartRateController, Pinetime::Controllers::HeartRateController& heartRateController,
Pinetime::Controllers::Settings& settingsController); Pinetime::Controllers::Settings& settingsController,
Pinetime::Controllers::MotionController& motionController);
void Start(); void Start();
void PushMessage(Pinetime::Applications::Display::Messages msg); void PushMessage(Pinetime::Applications::Display::Messages msg);

View File

@ -61,17 +61,26 @@ void LittleVgl::InitTouchpad() {
void LittleVgl::SetFullRefresh(FullRefreshDirections direction) { void LittleVgl::SetFullRefresh(FullRefreshDirections direction) {
if(scrollDirection == FullRefreshDirections::None) { if(scrollDirection == FullRefreshDirections::None) {
scrollDirection = direction; scrollDirection = direction;
if (scrollDirection == FullRefreshDirections::Down) if (scrollDirection == FullRefreshDirections::Down) {
lv_disp_set_direction(lv_disp_get_default(), 1); lv_disp_set_direction(lv_disp_get_default(), 1);
} else if (scrollDirection == FullRefreshDirections::Right) {
lv_disp_set_direction(lv_disp_get_default(), 2);
} else if (scrollDirection == FullRefreshDirections::Left) {
lv_disp_set_direction(lv_disp_get_default(), 3);
} else if (scrollDirection == FullRefreshDirections::RightAnim) {
lv_disp_set_direction(lv_disp_get_default(), 5);
} else if (scrollDirection == FullRefreshDirections::LeftAnim) {
lv_disp_set_direction(lv_disp_get_default(), 4);
}
} }
} }
void LittleVgl::FlushDisplay(const lv_area_t *area, lv_color_t *color_p) { void LittleVgl::FlushDisplay(const lv_area_t *area, lv_color_t *color_p) {
uint16_t y1, y2, width, height = 0; uint16_t y1, y2, width, height = 0;
ulTaskNotifyTake(pdTRUE, 500); ulTaskNotifyTake(pdTRUE, 200);
// Notification is still needed (even if there is a mutex on SPI) because of the DataCommand pin // NOtification is still needed (even if there is a mutex on SPI) because of the DataCommand pin
// which cannot be set/clear during a transfer. // which cannot be set/clear during a transfert.
if( (scrollDirection == LittleVgl::FullRefreshDirections::Down) && (area->y2 == visibleNbLines - 1)) { if( (scrollDirection == LittleVgl::FullRefreshDirections::Down) && (area->y2 == visibleNbLines - 1)) {
writeOffset = ((writeOffset + totalNbLines) - visibleNbLines) % totalNbLines; writeOffset = ((writeOffset + totalNbLines) - visibleNbLines) % totalNbLines;
@ -86,6 +95,7 @@ void LittleVgl::FlushDisplay(const lv_area_t *area, lv_color_t *color_p) {
height = (area->y2 - area->y1) + 1; height = (area->y2 - area->y1) + 1;
if(scrollDirection == LittleVgl::FullRefreshDirections::Down) { if(scrollDirection == LittleVgl::FullRefreshDirections::Down) {
if(area->y2 < visibleNbLines - 1) { if(area->y2 < visibleNbLines - 1) {
uint16_t toScroll = 0; uint16_t toScroll = 0;
if(area->y1 == 0) { if(area->y1 == 0) {
@ -95,6 +105,7 @@ void LittleVgl::FlushDisplay(const lv_area_t *area, lv_color_t *color_p) {
} else { } else {
toScroll = height; toScroll = height;
} }
if(scrollOffset >= toScroll) if(scrollOffset >= toScroll)
scrollOffset -= toScroll; scrollOffset -= toScroll;
else { else {
@ -117,6 +128,16 @@ void LittleVgl::FlushDisplay(const lv_area_t *area, lv_color_t *color_p) {
scrollOffset = scrollOffset % totalNbLines; scrollOffset = scrollOffset % totalNbLines;
lcd.VerticalScrollStartAddress(scrollOffset); lcd.VerticalScrollStartAddress(scrollOffset);
} }
} else if(scrollDirection == FullRefreshDirections::Left or scrollDirection == FullRefreshDirections::LeftAnim) {
if(area->x2 == visibleNbLines - 1) {
scrollDirection = FullRefreshDirections::None;
lv_disp_set_direction(lv_disp_get_default(), 0);
}
} else if(scrollDirection == FullRefreshDirections::Right or scrollDirection == FullRefreshDirections::RightAnim) {
if(area->x1 == 0) {
scrollDirection = FullRefreshDirections::None;
lv_disp_set_direction(lv_disp_get_default(), 0);
}
} }
if (y2 < y1) { if (y2 < y1) {
@ -124,8 +145,9 @@ void LittleVgl::FlushDisplay(const lv_area_t *area, lv_color_t *color_p) {
if ( height > 0 ) { if ( height > 0 ) {
lcd.DrawBuffer(area->x1, y1, width, height, reinterpret_cast<const uint8_t *>(color_p), width * height * 2); lcd.DrawBuffer(area->x1, y1, width, height, reinterpret_cast<const uint8_t *>(color_p), width * height * 2);
ulTaskNotifyTake(pdTRUE, 320); ulTaskNotifyTake(pdTRUE, 100);
} }
uint16_t pixOffset = width * height; uint16_t pixOffset = width * height;
height = y2 + 1; height = y2 + 1;
lcd.DrawBuffer(area->x1, 0, width, height, reinterpret_cast<const uint8_t *>(color_p + pixOffset), width * height * 2); lcd.DrawBuffer(area->x1, 0, width, height, reinterpret_cast<const uint8_t *>(color_p + pixOffset), width * height * 2);

View File

@ -11,7 +11,7 @@ namespace Pinetime {
namespace Components { namespace Components {
class LittleVgl { class LittleVgl {
public: public:
enum class FullRefreshDirections { None, Up, Down }; enum class FullRefreshDirections { None, Up, Down, Left, Right, LeftAnim, RightAnim };
LittleVgl(Pinetime::Drivers::St7789& lcd, Pinetime::Drivers::Cst816S& touchPanel); LittleVgl(Pinetime::Drivers::St7789& lcd, Pinetime::Drivers::Cst816S& touchPanel);
LittleVgl(const LittleVgl&) = delete; LittleVgl(const LittleVgl&) = delete;

View File

@ -4,7 +4,7 @@ namespace Pinetime {
namespace Display { namespace Display {
enum class Messages : uint8_t { enum class Messages : uint8_t {
GoToSleep, GoToRunning, UpdateDateTime, UpdateBleConnection, UpdateBatteryLevel, TouchEvent, ButtonPushed, GoToSleep, GoToRunning, UpdateDateTime, UpdateBleConnection, UpdateBatteryLevel, TouchEvent, ButtonPushed,
NewNotification, BleFirmwareUpdateStarted NewNotification, BleFirmwareUpdateStarted, UpdateTimeOut
}; };
} }
} }

View File

@ -22,3 +22,20 @@ Add new symbols:
static constex char* newSymbol = "\xEF\x86\x85"; static constex char* newSymbol = "\xEF\x86\x85";
``` ```
#### Navigation font
To create the navigtion.ttf I use the web app [icomoon](https://icomoon.io/app)
this app can import the svg files from the folder *src/displayapp/icons/navigation/unique* and creat a ttf file
the project for the site is *lv_font_navi_80.json* you can import it to add or remove icons
You can also use the online LVGL tool to create the .c
ttf file : navigation.ttf
name : lv_font_navi_80
size : 80px
Bpp : 2 bit-per-pixel
range : 0xe900-0xe929
$lv_font_conv --font navigation.ttf -r '0xe900-0xe929' --size 80 --format lvgl --bpp 2 --no-prefilter -o lv_font_navi_80.c
#### I use the method above to create the other ttf

Binary file not shown.

View File

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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

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

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -1,93 +0,0 @@
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
#include "lvgl.h"
#else
#include "../lvgl/lvgl.h"
#endif
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_
#define LV_ATTRIBUTE_IMG_
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_ uint8_t _map[] = {
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x80,
0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0,
0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0,
0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xf0,
0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf8,
0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8,
0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfc,
0x00, 0x00, 0x3f, 0xff, 0xff, 0x7f, 0xff, 0xfe,
0x00, 0x00, 0x3f, 0xff, 0xf0, 0x0f, 0xff, 0xfe,
0x00, 0x00, 0x7f, 0xff, 0xe0, 0x03, 0xff, 0xfe,
0x00, 0x00, 0x7f, 0xff, 0x80, 0x01, 0xff, 0xfe,
0x00, 0x00, 0x7f, 0xff, 0x00, 0x00, 0xff, 0xfe,
0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xfe,
0x00, 0x00, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xfe,
0x00, 0x00, 0xff, 0xfc, 0x00, 0x00, 0x1f, 0xfe,
0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xfe,
0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x0f, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
0x7c, 0x00, 0xff, 0xf0, 0x03, 0xf0, 0x07, 0xfe,
0x7f, 0x00, 0xff, 0xf0, 0x1f, 0xf0, 0x07, 0xfe,
0x7f, 0xc0, 0xff, 0xf0, 0x7f, 0xf0, 0x07, 0xfe,
0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf0, 0x07, 0xfe,
0x7f, 0xfe, 0xff, 0xf7, 0xff, 0xf0, 0x07, 0xfe,
0x7f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xfe,
0x7f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xfe,
0x7f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xfe,
0x7f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xfe,
0x3f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xfe,
0x3f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x07, 0xfe,
0x1f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0xfe,
0x0f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0xfe,
0x07, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x07, 0xfe,
0x03, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x07, 0xfe,
0x03, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x07, 0xfe,
0x01, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x07, 0xfe,
0x00, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x07, 0xfe,
0x00, 0x7f, 0xff, 0xff, 0xe0, 0x00, 0x07, 0xfe,
0x00, 0x7f, 0xff, 0xff, 0xc0, 0x00, 0x07, 0xfe,
0x00, 0x3f, 0xff, 0xff, 0x80, 0x00, 0x07, 0xfe,
0x00, 0x1f, 0xff, 0xff, 0x80, 0x00, 0x07, 0xfe,
0x00, 0x0f, 0xff, 0xff, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x07, 0xff, 0xfe, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x07, 0xff, 0xfc, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x03, 0xff, 0xfc, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x01, 0xff, 0xf8, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0xff, 0xe0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0x7f, 0xc0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0x3f, 0xc0, 0x00, 0x00, 0x07, 0xfe,
};
const lv_img_dsc_t = {
.header.always_zero = 0,
.header.w = 64,
.header.h = 64,
.data_size = 520,
.header.cf = LV_IMG_CF_INDEXED_1BIT,
.data = _map,
};

View File

@ -1,4 +0,0 @@
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
<title>direction</title>
<path fill="#ffffff" d="M3,12a2,2,0,1,1,2-2A2,2,0,0,1,3,12Zm10.00293-.96332a4.05782,4.05782,0,0,1,3.98877,4.07324H17v1.37775A0.51232,0.51232,0,0,0,17.51233,17h0.97534A0.51232,0.51232,0,0,0,19,16.48767V15H18.98615a6.05607,6.05607,0,0,0-5.9834-5.96332l-0.011-.00183,0.00012,0.02008H12V9.04584a0.35757,0.35757,0,0,1-.37738-0.54242l1.34375-2.95184a0.38659,0.38659,0,0,0-.62354-0.40942L6,10.04584l6.34283,4.90369a0.3866,0.3866,0,0,0,.62354-0.40942l-1.34375-2.95184A0.35757,0.35757,0,0,1,12,11.04584v0.00909h1"/>
</svg>

Before

Width:  |  Height:  |  Size: 672 B

View File

@ -1,96 +0,0 @@
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_ARRIVE_LEFT
#define LV_ATTRIBUTE_IMG_ARRIVE_LEFT
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_ARRIVE_LEFT uint8_t arrive_left_map[] = {
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x0f, 0xf8, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3f, 0xf8, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xf8, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, 0xff, 0xf0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x07, 0xff, 0xf0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 0x00, 0x00,
0x3f, 0xf8, 0x00, 0xff, 0xff, 0xc0, 0x00, 0x00,
0xff, 0xfc, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00,
0xff, 0xfe, 0x07, 0xff, 0xff, 0x80, 0x00, 0x00,
0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0x80, 0x00,
0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xf0, 0x00,
0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xfe, 0x00,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xf8,
0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfc,
0xff, 0xfe, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xfe,
0xff, 0xfe, 0x07, 0xff, 0xff, 0x8f, 0xff, 0xfe,
0xff, 0xfc, 0x03, 0xff, 0xff, 0xc1, 0xff, 0xff,
0x3f, 0xf8, 0x00, 0xff, 0xff, 0xc0, 0x7f, 0xff,
0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 0x3f, 0xff,
0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0, 0x1f, 0xff,
0x00, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x0f, 0xff,
0x00, 0x00, 0x00, 0x07, 0xff, 0xe0, 0x07, 0xff,
0x00, 0x00, 0x00, 0x03, 0xff, 0xf0, 0x07, 0xff,
0x00, 0x00, 0x00, 0x01, 0xff, 0xf8, 0x07, 0xff,
0x00, 0x00, 0x00, 0x00, 0x7f, 0xf8, 0x03, 0xff,
0x00, 0x00, 0x00, 0x00, 0x3f, 0xf8, 0x03, 0xff,
0x00, 0x00, 0x00, 0x00, 0x0f, 0xf8, 0x03, 0xff,
0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x01, 0xff,
0x00, 0x00, 0x00, 0x00, 0x03, 0xf0, 0x01, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
const lv_img_dsc_t arrive_left = {
{
LV_IMG_CF_INDEXED_1BIT,
0,
0,
64,
64
},
520,
arrive_left_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,4 +0,0 @@
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
<title>direction</title>
<path fill="#ffffff" d="M15,10a2,2,0,1,1,2,2A2,2,0,0,1,15,10ZM7,11.05493H8V11.04584a0.35757,0.35757,0,0,1,.37738.54242L7.03363,14.5401a0.3866,0.3866,0,0,0,.62354.40942L14,10.04584,7.65717,5.14215a0.38659,0.38659,0,0,0-.62354.40942L8.37738,8.50342A0.35757,0.35757,0,0,1,8,9.04584V9.05493H7.00818L7.0083,9.03485l-0.011.00183A6.05607,6.05607,0,0,0,1.01385,15H1v1.48767A0.51232,0.51232,0,0,0,1.51233,17H2.48767A0.51232,0.51232,0,0,0,3,16.48767V15.10992H3.0083a4.05782,4.05782,0,0,1,3.98877-4.07324"/>
</svg>

Before

Width:  |  Height:  |  Size: 662 B

View File

@ -1,96 +0,0 @@
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_ARRIVE_RIGHT
#define LV_ATTRIBUTE_IMG_ARRIVE_RIGHT
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_ARRIVE_RIGHT uint8_t arrive_right_map[] = {
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x1f, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0f, 0xff, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0f, 0xff, 0xe0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x07, 0xff, 0xf0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x07, 0xff, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x03, 0xff, 0xfe, 0x00, 0x00, 0x00,
0x00, 0x00, 0x03, 0xff, 0xff, 0x00, 0x1f, 0xfc,
0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x3f, 0xff,
0x00, 0x00, 0x01, 0xff, 0xff, 0xe0, 0x7f, 0xff,
0x00, 0x01, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff,
0x00, 0x0f, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff,
0x00, 0x7f, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x1f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
0x3f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff,
0x7f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x7f, 0xff,
0x7f, 0xff, 0xf1, 0xff, 0xff, 0xe0, 0x7f, 0xff,
0xff, 0xff, 0x83, 0xff, 0xff, 0xc0, 0x3f, 0xff,
0xff, 0xfe, 0x03, 0xff, 0xff, 0x00, 0x1f, 0xfc,
0xff, 0xfc, 0x03, 0xff, 0xfe, 0x00, 0x00, 0x00,
0xff, 0xf8, 0x07, 0xff, 0xfc, 0x00, 0x00, 0x00,
0xff, 0xf0, 0x07, 0xff, 0xf0, 0x00, 0x00, 0x00,
0xff, 0xe0, 0x07, 0xff, 0xe0, 0x00, 0x00, 0x00,
0xff, 0xe0, 0x0f, 0xff, 0xc0, 0x00, 0x00, 0x00,
0xff, 0xc0, 0x1f, 0xff, 0x80, 0x00, 0x00, 0x00,
0xff, 0xc0, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00,
0xff, 0xc0, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00,
0xff, 0xc0, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00,
0xff, 0x80, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00,
0xff, 0x80, 0x0f, 0xc0, 0x00, 0x00, 0x00, 0x00,
0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
const lv_img_dsc_t arrive_right = {
{
LV_IMG_CF_INDEXED_1BIT,
0,
0,
64,
64
},
520,
arrive_right_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -1,4 +0,0 @@
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
<title>direction</title>
<path fill="#ffffff" d="M10,5a2,2,0,1,1,2-2A2,2,0,0,1,10,5Zm4.91284,8.35114L10.00916,7.0083,5.10547,13.35114a0.38659,0.38659,0,0,0,.40942.62354l2.95184-1.34375A0.35542,0.35542,0,0,1,9.00769,13H9v5.50006A0.49992,0.49992,0,0,0,9.49994,19h1.00012A0.49992,0.49992,0,0,0,11,18.50006V13.0083h0.00916a0.35757,0.35757,0,0,1,.54242-0.37738l2.95184,1.34375A0.3866,0.3866,0,0,0,14.91284,13.35114Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 554 B

View File

@ -1,96 +0,0 @@
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_ARRIVE_STRAIGHT
#define LV_ATTRIBUTE_IMG_ARRIVE_STRAIGHT
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_ARRIVE_STRAIGHT uint8_t arrive_straight_map[] = {
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x07, 0xe0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00,
0x00, 0x00, 0x07, 0xff, 0xff, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x07, 0xff, 0xff, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00,
0x00, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00, 0x00,
0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x00,
0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x00,
0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x03, 0xfe, 0x3f, 0xfc, 0x7f, 0xc0, 0x00,
0x00, 0x03, 0xfc, 0x3f, 0xfc, 0x3f, 0xc0, 0x00,
0x00, 0x03, 0xe0, 0x3f, 0xfc, 0x07, 0xc0, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
};
const lv_img_dsc_t arrive_straight = {
{
LV_IMG_CF_INDEXED_1BIT,
0,
0,
64,
64
},
520,
arrive_straight_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,4 +0,0 @@
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
<title>direction</title>
<path fill="#ffffff" d="M10,5a2,2,0,1,1,2-2A2,2,0,0,1,10,5Zm4.91284,8.35114L10.00916,7.0083,5.10547,13.35114a0.38659,0.38659,0,0,0,.40942.62354l2.95184-1.34375A0.35542,0.35542,0,0,1,9.00769,13H9v5.50006A0.49992,0.49992,0,0,0,9.49994,19h1.00012A0.49992,0.49992,0,0,0,11,18.50006V13.0083h0.00916a0.35757,0.35757,0,0,1,.54242-0.37738l2.95184,1.34375A0.3866,0.3866,0,0,0,14.91284,13.35114Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 554 B

View File

@ -1,96 +0,0 @@
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_ARRIVE
#define LV_ATTRIBUTE_IMG_ARRIVE
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_ARRIVE uint8_t arrive_map[] = {
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x07, 0xe0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00,
0x00, 0x00, 0x07, 0xff, 0xff, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x07, 0xff, 0xff, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00,
0x00, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00, 0x00,
0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x00,
0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x00,
0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x03, 0xfe, 0x3f, 0xfc, 0x7f, 0xc0, 0x00,
0x00, 0x03, 0xfc, 0x3f, 0xfc, 0x3f, 0xc0, 0x00,
0x00, 0x03, 0xe0, 0x3f, 0xfc, 0x07, 0xc0, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
};
const lv_img_dsc_t arrive = {
{
LV_IMG_CF_INDEXED_1BIT,
0,
0,
64,
64
},
520,
arrive_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="arrive.svg"
version="1.1"
viewBox="0 0 20 20"
height="20"
width="20"
data-name="WORKING ICONS"
id="WORKING_ICONS">
<metadata
id="metadata11">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs9" />
<sodipodi:namedview
inkscape:current-layer="WORKING_ICONS"
inkscape:window-maximized="1"
inkscape:window-y="22"
inkscape:window-x="-8"
inkscape:cy="15.027627"
inkscape:cx="9.8645323"
inkscape:zoom="21.5"
showgrid="false"
id="namedview7"
inkscape:window-height="1027"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
bordercolor="#666666"
pagecolor="#ffffff" />
<title
id="title2">direction</title>
<path
style="stroke-width:1.05409"
id="path4"
d="m 9.990842,4.4444444 a 2,2.2222222 0 1 1 2,-2.2222222 2,2.2222222 0 0 1 -2,2.2222222 z m 4.91284,9.2790446 -4.90368,-7.0476001 -4.90369,7.0476001 a 0.38659,0.42954444 0 0 0 0.40942,0.692822 l 2.95184,-1.493055 a 0.35542,0.39491111 0 0 1 0.54096,0.410077 h -0.00769 v 6.111178 A 0.49992,0.55546667 0 0 0 9.490782,20 h 1.00012 a 0.49992,0.55546667 0 0 0 0.49994,-0.555489 v -6.101955 h 0.0092 a 0.35757,0.3973 0 0 1 0.54242,-0.419312 l 2.95184,1.493056 a 0.3866,0.42955556 0 0 0 0.40942,-0.692811 z"
fill="#000000" />
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="arrive_left.svg"
version="1.1"
viewBox="0 0 20 20"
height="20"
width="20"
data-name="WORKING ICONS"
id="WORKING_ICONS">
<metadata
id="metadata11">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs9" />
<sodipodi:namedview
inkscape:current-layer="WORKING_ICONS"
inkscape:window-maximized="1"
inkscape:window-y="22"
inkscape:window-x="-8"
inkscape:cy="12.384776"
inkscape:cx="11.145089"
inkscape:zoom="21.5"
showgrid="false"
id="namedview7"
inkscape:window-height="1027"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
bordercolor="#666666"
pagecolor="#ffffff" />
<title
id="title2">direction</title>
<path
style="stroke-width:1.11111"
id="path4"
d="M 2.2222222,11.085944 A 2.2222222,2.2222222 0 1 1 4.4444444,8.8637218 2.2222222,2.2222222 0 0 1 2.2222222,11.085944 Z M 13.336589,10.015589 a 4.5086889,4.5086889 0 0 1 4.431967,4.525822 h 0.0092 v 1.530833 a 0.56924444,0.56924444 0 0 0 0.569255,0.569256 h 1.083711 A 0.56924444,0.56924444 0 0 0 20,16.072244 V 14.419278 H 19.98461 A 6.7289667,6.7289667 0 0 0 13.336389,7.7933663 l -0.01222,-0.00203 1.33e-4,0.022311 h -1.102078 v -0.0101 A 0.3973,0.3973 0 0 1 11.802911,7.2008552 L 13.295967,3.921033 A 0.42954444,0.42954444 0 0 0 12.603144,3.4661219 L 5.5555556,8.9146548 12.603144,14.3632 a 0.42955556,0.42955556 0 0 0 0.692823,-0.454911 l -1.493056,-3.279822 a 0.3973,0.3973 0 0 1 0.419311,-0.6027 v 0.0101 h 1.111111"
fill="#000000" />
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="arrive_right.svg"
version="1.1"
viewBox="0 0 20 20"
height="20"
width="20"
data-name="WORKING ICONS"
id="WORKING_ICONS">
<metadata
id="metadata11">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs9" />
<sodipodi:namedview
inkscape:current-layer="WORKING_ICONS"
inkscape:window-maximized="1"
inkscape:window-y="22"
inkscape:window-x="-8"
inkscape:cy="15.150233"
inkscape:cx="-2.2735076"
inkscape:zoom="21.5"
showgrid="false"
id="namedview7"
inkscape:window-height="1027"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
bordercolor="#666666"
pagecolor="#ffffff" />
<title
id="title2">direction</title>
<path
style="stroke-width:1.11111"
id="path4"
d="M 15.555556,8.8637269 A 2.2222222,2.2222222 0 1 1 17.777778,11.085949 2.2222222,2.2222222 0 0 1 15.555556,8.8637269 Z M 6.6666665,10.035872 h 1.1111111 v -0.0101 a 0.3973,0.3973 0 0 1 0.4193111,0.602689 l -1.4930556,3.279822 a 0.42955556,0.42955556 0 0 0 0.6928223,0.454911 L 14.444444,8.9146609 7.3968554,3.466116 A 0.42954444,0.42954444 0 0 0 6.7040331,3.9210271 L 8.1970887,7.2008604 A 0.3973,0.3973 0 0 1 7.7777776,7.8035493 v 0.0101 H 6.6757554 l 1.333e-4,-0.022311 -0.012222,0.00203 A 6.7289667,6.7289667 0 0 0 0.0153887,14.419283 H -1.999413e-7 v 1.652966 A 0.56924444,0.56924444 0 0 0 0.5692554,16.641505 H 1.6529665 A 0.56924444,0.56924444 0 0 0 2.222222,16.072249 v -1.530833 h 0.00922 a 4.5086889,4.5086889 0 0 1 4.4319689,-4.525822"
fill="#000000" />
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="arrive_straight.svg"
version="1.1"
viewBox="0 0 20 20"
height="20"
width="20"
data-name="WORKING ICONS"
id="WORKING_ICONS">
<metadata
id="metadata11">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs9" />
<sodipodi:namedview
inkscape:current-layer="WORKING_ICONS"
inkscape:window-maximized="1"
inkscape:window-y="22"
inkscape:window-x="-8"
inkscape:cy="13.311136"
inkscape:cx="7.9300748"
inkscape:zoom="21.5"
showgrid="false"
id="namedview7"
inkscape:window-height="1027"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
bordercolor="#666666"
pagecolor="#ffffff" />
<title
id="title2">direction</title>
<path
style="stroke-width:1.11111"
id="path4"
d="M 9.9898459,4.4444444 A 2.2222222,2.2222222 0 1 1 12.212068,2.2222222 2.2222222,2.2222222 0 0 1 9.9898459,4.4444444 Z M 15.448557,13.723489 10.000024,6.6758889 4.551479,13.723489 a 0.42954444,0.42954444 0 0 0 0.4549111,0.692822 l 3.2798222,-1.493055 a 0.39491111,0.39491111 0 0 1 0.6010667,0.410077 h -0.00854 v 6.111178 A 0.55546667,0.55546667 0 0 0 9.4342234,20 h 1.1112446 a 0.55546667,0.55546667 0 0 0 0.555489,-0.555489 v -6.101955 h 0.01018 a 0.3973,0.3973 0 0 1 0.602689,-0.419312 l 3.279822,1.493056 a 0.42955556,0.42955556 0 0 0 0.454911,-0.692811 z"
fill="#000000" />
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -1,4 +0,0 @@
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
<title>direction</title>
<path fill="#ffffff" d="M17.35551,4.05855L11.76558,9.64848a0.49713,0.49713,0,0,0,0,.703l5.58993,5.58993a0.49713,0.49713,0,0,1,0,.703l-0.711.711a0.49713,0.49713,0,0,1-.703,0l-5.58993-5.58993a0.49713,0.49713,0,0,0-.703,0L4.05855,17.35551a0.49713,0.49713,0,0,1-.703,0l-0.711-.711a0.49713,0.49713,0,0,1,0-.703l5.58993-5.58993a0.49713,0.49713,0,0,0,0-.703L2.64449,4.05855a0.49713,0.49713,0,0,1,0-.703l0.711-.711a0.49713,0.49713,0,0,1,.703,0L9.64848,8.23442a0.49713,0.49713,0,0,0,.703,0l5.58993-5.58993a0.49713,0.49713,0,0,1,.703,0l0.711,0.711A0.49713,0.49713,0,0,1,17.35551,4.05855Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 746 B

View File

@ -1,96 +0,0 @@
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CLOSE
#define LV_ATTRIBUTE_IMG_CLOSE
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CLOSE uint8_t close_map[] = {
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff,
0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff,
0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff,
0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff,
0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff,
0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff,
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
0xff, 0xff, 0x80, 0x00, 0x00, 0x01, 0xff, 0xff,
0xff, 0xff, 0xe0, 0x00, 0x00, 0x07, 0xff, 0xff,
0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xff,
0x7f, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0xfe,
0x3f, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xfc,
0x1f, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0xf8,
0x0f, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xf0,
0x07, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xe0,
0x03, 0xff, 0xff, 0x80, 0x01, 0xff, 0xff, 0xc0,
0x01, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xff, 0x80,
0x00, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff, 0x00,
0x00, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0x00,
0x00, 0x7f, 0xff, 0xf8, 0x1f, 0xff, 0xfe, 0x00,
0x00, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x00,
0x00, 0x1f, 0xff, 0xfe, 0x7f, 0xff, 0xf8, 0x00,
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00,
0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x00,
0x00, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00, 0x00,
0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00,
0x00, 0x00, 0x07, 0xff, 0xff, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00,
0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00,
0x00, 0x00, 0x07, 0xff, 0xff, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00,
0x00, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00, 0x00,
0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x00,
0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
0x00, 0x1f, 0xff, 0xfe, 0x7f, 0xff, 0xf8, 0x00,
0x00, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x00,
0x00, 0x7f, 0xff, 0xf8, 0x1f, 0xff, 0xfe, 0x00,
0x00, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0x00,
0x00, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff, 0x00,
0x01, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xff, 0x80,
0x03, 0xff, 0xff, 0x80, 0x01, 0xff, 0xff, 0xc0,
0x07, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xe0,
0x0f, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xf0,
0x1f, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0xf8,
0x3f, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xfc,
0x7f, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0xfe,
0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xff,
0xff, 0xff, 0xe0, 0x00, 0x00, 0x07, 0xff, 0xff,
0xff, 0xff, 0x80, 0x00, 0x00, 0x01, 0xff, 0xff,
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff,
0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff,
0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff,
0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff,
0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff,
0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff,
};
const lv_img_dsc_t close = {
{
LV_IMG_CF_INDEXED_1BIT,
0,
0,
64,
64
},
520,
close_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 847 B

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="close.svg"
version="1.1"
viewBox="0 0 20 20"
height="20"
width="20"
data-name="WORKING ICONS"
id="WORKING_ICONS">
<metadata
id="metadata11">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs9" />
<sodipodi:namedview
inkscape:current-layer="WORKING_ICONS"
inkscape:window-maximized="1"
inkscape:window-y="22"
inkscape:window-x="-8"
inkscape:cy="14.778983"
inkscape:cx="4.2598846"
inkscape:zoom="15.202796"
showgrid="false"
id="namedview7"
inkscape:window-height="1027"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
bordercolor="#666666"
pagecolor="#ffffff" />
<title
id="title2">direction</title>
<path
style="stroke-width:1.33314"
id="path4"
d="M 19.805919,2.0792199 12.353764,9.531375 a 0.6627435,0.6627435 0 0 0 0,0.937197 l 7.452155,7.452155 a 0.6627435,0.6627435 0 0 1 0,0.937197 l -0.947862,0.947862 a 0.6627435,0.6627435 0 0 1 -0.937197,0 l -7.452155,-7.452155 a 0.6627435,0.6627435 0 0 0 -0.9371971,0 l -7.4522881,7.452288 a 0.6627435,0.6627435 0 0 1 -0.9371968,0 L 0.194161,18.858057 a 0.6627435,0.6627435 0 0 1 0,-0.937197 l 7.4521549,-7.452155 a 0.6627435,0.6627435 0 0 0 0,-0.937197 L 0.194081,2.0792199 a 0.6627435,0.6627435 0 0 1 0,-0.9371968 l 0.947862,-0.947862 a 0.6627435,0.6627435 0 0 1 0.9371968,0 L 9.5313749,7.646236 a 0.6627435,0.6627435 0 0 0 0.9371971,0 l 7.452155,-7.4521549 a 0.6627435,0.6627435 0 0 1 0.937197,0 l 0.947862,0.947862 a 0.6627435,0.6627435 0 0 1 1.33e-4,0.9372768 z"
fill="#000000" />
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -1,4 +0,0 @@
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
<title>direction</title>
<path fill="#ffffff" d="M10,5.97986l0.011,0.00183A6.06019,6.06019,0,0,1,16,12.05493V16H15.99689l0.002,1.50317A0.49614,0.49614,0,0,1,15.50269,18H14.49622A0.49622,0.49622,0,0,1,14,17.50378V12.05493a4.05782,4.05782,0,0,0-3.98877-4.07324H8.01245a0.3576,0.3576,0,0,0-.37738.54248L8.97882,11.476a0.38659,0.38659,0,0,1-.62354.40942L2.0083,7l6.347-4.922a0.38659,0.38659,0,0,1,.62354.40942L7.63507,5.43927a0.35757,0.35757,0,0,0,.37738.54242H10"/>
</svg>

Before

Width:  |  Height:  |  Size: 603 B

View File

@ -1,96 +0,0 @@
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CONTINUE_LEFT
#define LV_ATTRIBUTE_IMG_CONTINUE_LEFT
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CONTINUE_LEFT uint8_t continue_left_map[] = {
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
0x00, 0x00, 0x00, 0x7f, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x07, 0xff, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0f, 0xff, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x3f, 0xff, 0x80, 0x00, 0x00, 0x00,
0x00, 0x00, 0x7f, 0xff, 0x80, 0x00, 0x00, 0x00,
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x07, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
0x00, 0x0f, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00,
0x00, 0x7f, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00,
0x00, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00,
0x01, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00,
0x03, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00,
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
0x00, 0xff, 0xff, 0xfc, 0x07, 0xff, 0xff, 0xe0,
0x00, 0x7f, 0xff, 0xfc, 0x00, 0xff, 0xff, 0xf0,
0x00, 0x3f, 0xff, 0xfc, 0x00, 0x3f, 0xff, 0xf0,
0x00, 0x1f, 0xff, 0xfe, 0x00, 0x1f, 0xff, 0xf0,
0x00, 0x07, 0xff, 0xfe, 0x00, 0x07, 0xff, 0xf0,
0x00, 0x03, 0xff, 0xff, 0x00, 0x03, 0xff, 0xf0,
0x00, 0x00, 0xff, 0xff, 0x00, 0x01, 0xff, 0xf0,
0x00, 0x00, 0x7f, 0xff, 0x80, 0x01, 0xff, 0xf0,
0x00, 0x00, 0x3f, 0xff, 0x80, 0x00, 0xff, 0xf0,
0x00, 0x00, 0x1f, 0xff, 0xc0, 0x00, 0x7f, 0xf0,
0x00, 0x00, 0x07, 0xff, 0xc0, 0x00, 0x7f, 0xf0,
0x00, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x7f, 0xf0,
0x00, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x7f, 0xc0, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x3f, 0xc0, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x1f, 0xc0, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
};
const lv_img_dsc_t continue_left = {
{
LV_IMG_CF_INDEXED_1BIT,
0,
0,
64,
64
},
520,
continue_left_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -1,4 +0,0 @@
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
<title>direction</title>
<path fill="#ffffff" d="M9.98877,7.98169A4.05782,4.05782,0,0,0,6,12.05493v5.44885A0.49622,0.49622,0,0,1,5.50378,18H4.49731a0.49614,0.49614,0,0,1-.49615-0.49683L4.00311,16H4V12.05493A6.06019,6.06019,0,0,1,9.989,5.98169L10,5.97986V5.98169h1.98755a0.35757,0.35757,0,0,0,.37738-0.54242L11.02118,2.48743A0.38659,0.38659,0,0,1,11.64471,2.078L17.9917,7l-6.347,4.88544a0.38659,0.38659,0,0,1-.62354-0.40942l1.34375-2.95184a0.3576,0.3576,0,0,0-.37738-0.54248H9.98877Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 626 B

View File

@ -1,96 +0,0 @@
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CONTINUE_RIGHT
#define LV_ATTRIBUTE_IMG_CONTINUE_RIGHT
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CONTINUE_RIGHT uint8_t continue_right_map[] = {
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
0x00, 0x00, 0x00, 0x03, 0xfe, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, 0xff, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, 0xff, 0xf0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0xff, 0xfc, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0xff, 0xfe, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xe0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xf0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xfe, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0x00,
0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0x80,
0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xc0,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
0x07, 0xff, 0xff, 0xe0, 0x3f, 0xff, 0xff, 0x00,
0x0f, 0xff, 0xff, 0x00, 0x3f, 0xff, 0xfe, 0x00,
0x0f, 0xff, 0xfc, 0x00, 0x3f, 0xff, 0xfc, 0x00,
0x0f, 0xff, 0xf8, 0x00, 0x7f, 0xff, 0xf8, 0x00,
0x0f, 0xff, 0xe0, 0x00, 0x7f, 0xff, 0xe0, 0x00,
0x0f, 0xff, 0xc0, 0x00, 0xff, 0xff, 0xc0, 0x00,
0x0f, 0xff, 0x80, 0x00, 0xff, 0xff, 0x00, 0x00,
0x0f, 0xff, 0x80, 0x01, 0xff, 0xfe, 0x00, 0x00,
0x0f, 0xff, 0x00, 0x01, 0xff, 0xfc, 0x00, 0x00,
0x0f, 0xfe, 0x00, 0x03, 0xff, 0xf8, 0x00, 0x00,
0x0f, 0xfe, 0x00, 0x03, 0xff, 0xf0, 0x00, 0x00,
0x0f, 0xfe, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x03, 0xff, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x03, 0xfe, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x03, 0xfc, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
const lv_img_dsc_t continue_right = {
{
LV_IMG_CF_INDEXED_1BIT,
0,
0,
64,
64
},
520,
continue_right_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -1,4 +0,0 @@
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
<title>direction</title>
<path fill="#ffffff" d="M14.9859,14.043v3.46082A0.49621,0.49621,0,0,1,14.48974,18H13.48321a0.49614,0.49614,0,0,1-.49615-0.49683l0.0047-3.60767a5.21819,5.21819,0,0,0-1.665-4.144L8.87854,7.68585a0.35758,0.35758,0,0,0-.6405.16266l-0.91821,3.1106A0.38663,0.38663,0,0,1,6.58044,10.86L5,3l8.00476,0.44965a0.38658,0.38658,0,0,1,.20294.71777L10.25878,5.51758a0.3576,0.3576,0,0,0-.07019.6571l2.45746,2.07385A7.25158,7.25158,0,0,1,14.9859,14.043Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 605 B

View File

@ -1,96 +0,0 @@
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CONTINUE_SLIGHT_LEFT
#define LV_ATTRIBUTE_IMG_CONTINUE_SLIGHT_LEFT
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CONTINUE_SLIGHT_LEFT uint8_t continue_slight_left_map[] = {
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
0x00, 0x1f, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00,
0x00, 0x1f, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00,
0x00, 0x1f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x1f, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
0x00, 0x0f, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x0f, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x0f, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x0f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x0f, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00,
0x00, 0x07, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00,
0x00, 0x07, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00,
0x00, 0x07, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00,
0x00, 0x07, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00,
0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
0x00, 0x03, 0xff, 0xc7, 0xff, 0xff, 0x80, 0x00,
0x00, 0x03, 0xff, 0xc3, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x03, 0xff, 0xc1, 0xff, 0xff, 0xe0, 0x00,
0x00, 0x03, 0xff, 0x80, 0xff, 0xff, 0xe0, 0x00,
0x00, 0x01, 0xff, 0x80, 0x7f, 0xff, 0xf0, 0x00,
0x00, 0x01, 0xff, 0x80, 0x1f, 0xff, 0xf8, 0x00,
0x00, 0x01, 0xff, 0x80, 0x0f, 0xff, 0xf8, 0x00,
0x00, 0x01, 0xff, 0x00, 0x07, 0xff, 0xf8, 0x00,
0x00, 0x01, 0xff, 0x00, 0x03, 0xff, 0xfc, 0x00,
0x00, 0x00, 0xff, 0x00, 0x01, 0xff, 0xfc, 0x00,
0x00, 0x00, 0xfe, 0x00, 0x01, 0xff, 0xfc, 0x00,
0x00, 0x00, 0xfe, 0x00, 0x00, 0xff, 0xfc, 0x00,
0x00, 0x00, 0xfe, 0x00, 0x00, 0x7f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
};
const lv_img_dsc_t continue_slight_left = {
{
LV_IMG_CF_INDEXED_1BIT,
0,
0,
64,
64
},
520,
continue_slight_left_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -1,4 +0,0 @@
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
<title>direction</title>
<path fill="#ffffff" d="M7.35395,8.24854L9.81141,6.17468a0.3576,0.3576,0,0,0-.07019-0.6571L6.7923,4.16742a0.38658,0.38658,0,0,1,.20294-0.71777L15,3l-1.58044,7.86a0.38663,0.38663,0,0,1-.73938.09912L11.762,7.84851a0.35758,0.35758,0,0,0-.6405-0.16266L8.67328,9.75146a5.21819,5.21819,0,0,0-1.665,4.144l0.0047,3.60767A0.49614,0.49614,0,0,1,6.51679,18H5.51026a0.49621,0.49621,0,0,1-.49615-0.49622V14.043A7.25157,7.25157,0,0,1,7.35395,8.24854Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 605 B

View File

@ -1,96 +0,0 @@
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CONTINUE_SLIGHT_RIGHT
#define LV_ATTRIBUTE_IMG_CONTINUE_SLIGHT_RIGHT
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CONTINUE_SLIGHT_RIGHT uint8_t continue_slight_right_map[] = {
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x00,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x00,
0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0x00,
0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xfc, 0x00,
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xf8, 0x00,
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf8, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf8, 0x00,
0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xf0, 0x00,
0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xf0, 0x00,
0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xf0, 0x00,
0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xf0, 0x00,
0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xf0, 0x00,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
0x00, 0x00, 0xff, 0xff, 0xf1, 0xff, 0xe0, 0x00,
0x00, 0x01, 0xff, 0xff, 0xe1, 0xff, 0xe0, 0x00,
0x00, 0x03, 0xff, 0xff, 0xc1, 0xff, 0xe0, 0x00,
0x00, 0x03, 0xff, 0xff, 0x80, 0xff, 0xe0, 0x00,
0x00, 0x07, 0xff, 0xff, 0x00, 0xff, 0xc0, 0x00,
0x00, 0x0f, 0xff, 0xfc, 0x00, 0xff, 0xc0, 0x00,
0x00, 0x0f, 0xff, 0xf8, 0x00, 0xff, 0xc0, 0x00,
0x00, 0x0f, 0xff, 0xf0, 0x00, 0x7f, 0xc0, 0x00,
0x00, 0x1f, 0xff, 0xe0, 0x00, 0x7f, 0xc0, 0x00,
0x00, 0x1f, 0xff, 0xc0, 0x00, 0x7f, 0x80, 0x00,
0x00, 0x1f, 0xff, 0xc0, 0x00, 0x3f, 0x80, 0x00,
0x00, 0x1f, 0xff, 0x80, 0x00, 0x3f, 0x80, 0x00,
0x00, 0x1f, 0xff, 0x00, 0x00, 0x3f, 0x80, 0x00,
0x00, 0x1f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
};
const lv_img_dsc_t continue_slight_right = {
{
LV_IMG_CF_INDEXED_1BIT,
0,
0,
64,
64
},
520,
continue_slight_right_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -1,4 +0,0 @@
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
<title>direction</title>
<path fill="#ffffff" d="M14.50342,8.96637L11.55157,7.62262A0.35755,0.35755,0,0,0,11.00916,8v9.49652A0.50346,0.50346,0,0,1,10.50568,18h-0.993a0.50346,0.50346,0,0,1-.50348-0.50348V8a0.35756,0.35756,0,0,0-.54242-0.37738L5.51489,8.96637a0.38659,0.38659,0,0,1-.40942-0.62354L10.00916,2l4.90369,6.34283A0.3866,0.3866,0,0,1,14.50342,8.96637Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 503 B

View File

@ -1,96 +0,0 @@
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CONTINUE_STRAIGHT
#define LV_ATTRIBUTE_IMG_CONTINUE_STRAIGHT
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CONTINUE_STRAIGHT uint8_t continue_straight_map[] = {
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00,
0x00, 0x00, 0x07, 0xff, 0xff, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x07, 0xff, 0xff, 0xf0, 0x00, 0x00,
0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00,
0x00, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00, 0x00,
0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x00,
0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00,
0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
0x00, 0x0f, 0xfe, 0x3f, 0xfc, 0x7f, 0xf0, 0x00,
0x00, 0x0f, 0xf8, 0x3f, 0xfc, 0x1f, 0xf0, 0x00,
0x00, 0x0f, 0xe0, 0x3f, 0xfc, 0x07, 0xf0, 0x00,
0x00, 0x0f, 0x80, 0x3f, 0xfc, 0x01, 0xf0, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
};
const lv_img_dsc_t continue_straight = {
{
LV_IMG_CF_INDEXED_1BIT,
0,
0,
64,
64
},
520,
continue_straight_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 961 B

View File

@ -1,4 +0,0 @@
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
<title>direction</title>
<path fill="#ffffff" d="M17.00909,8v9.49652A0.50346,0.50346,0,0,1,16.50562,18h-0.993a0.50346,0.50346,0,0,1-.50348-0.50348V8a3.5,3.5,0,1,0-7,0v4H8a0.35757,0.35757,0,0,0,.54242.37738l2.95184-1.34375a0.3866,0.3866,0,0,1,.40942.62354L7,18,2.09625,11.65717a0.3866,0.3866,0,0,1,.40942-0.62354l2.95184,1.34375A0.3576,0.3576,0,0,0,6,12H6.00909V8A5.5,5.5,0,1,1,17.00909,8Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 532 B

View File

@ -1,96 +0,0 @@
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CONTINUE_UTURN
#define LV_ATTRIBUTE_IMG_CONTINUE_UTURN
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CONTINUE_UTURN uint8_t continue_uturn_map[] = {
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x80,
0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0,
0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0,
0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xf0,
0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf8,
0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8,
0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfc,
0x00, 0x00, 0x3f, 0xff, 0xff, 0x7f, 0xff, 0xfe,
0x00, 0x00, 0x3f, 0xff, 0xf8, 0x0f, 0xff, 0xfe,
0x00, 0x00, 0x7f, 0xff, 0xe0, 0x03, 0xff, 0xfe,
0x00, 0x00, 0x7f, 0xff, 0x80, 0x01, 0xff, 0xfe,
0x00, 0x00, 0x7f, 0xff, 0x00, 0x00, 0xff, 0xfe,
0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7f, 0xfe,
0x00, 0x00, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xfe,
0x00, 0x00, 0xff, 0xfc, 0x00, 0x00, 0x1f, 0xfe,
0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xfe,
0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x0f, 0xfe,
0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x0f, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
0x7c, 0x00, 0xff, 0xf0, 0x03, 0xf0, 0x07, 0xfe,
0x7f, 0x00, 0xff, 0xf0, 0x1f, 0xf0, 0x07, 0xfe,
0x7f, 0xc0, 0xff, 0xf0, 0x7f, 0xf0, 0x07, 0xfe,
0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf0, 0x07, 0xfe,
0x7f, 0xfe, 0xff, 0xf7, 0xff, 0xf0, 0x07, 0xfe,
0x7f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xfe,
0x7f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xfe,
0x7f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xfe,
0x7f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xfe,
0x3f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xfe,
0x3f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x07, 0xfe,
0x1f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0xfe,
0x0f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0xfe,
0x07, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x07, 0xfe,
0x03, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x07, 0xfe,
0x03, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x07, 0xfe,
0x01, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x07, 0xfe,
0x00, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x07, 0xfe,
0x00, 0x7f, 0xff, 0xff, 0xe0, 0x00, 0x07, 0xfe,
0x00, 0x7f, 0xff, 0xff, 0xc0, 0x00, 0x07, 0xfe,
0x00, 0x3f, 0xff, 0xff, 0x80, 0x00, 0x07, 0xfe,
0x00, 0x1f, 0xff, 0xff, 0x80, 0x00, 0x07, 0xfe,
0x00, 0x0f, 0xff, 0xff, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x07, 0xff, 0xfe, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x07, 0xff, 0xfc, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x03, 0xff, 0xfc, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x01, 0xff, 0xf8, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0xff, 0xe0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0x7f, 0xc0, 0x00, 0x00, 0x07, 0xfe,
0x00, 0x00, 0x3f, 0xc0, 0x00, 0x00, 0x07, 0xfe,
};
const lv_img_dsc_t continue_uturn = {
{
LV_IMG_CF_INDEXED_1BIT,
0,
0,
64,
64
},
520,
continue_uturn_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,4 +0,0 @@
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
<title>direction</title>
<path fill="#ffffff" d="M14.50342,8.96637L11.55157,7.62262A0.35755,0.35755,0,0,0,11.00916,8v9.49652A0.50346,0.50346,0,0,1,10.50568,18h-0.993a0.50346,0.50346,0,0,1-.50348-0.50348V8a0.35756,0.35756,0,0,0-.54242-0.37738L5.51489,8.96637a0.38659,0.38659,0,0,1-.40942-0.62354L10.00916,2l4.90369,6.34283A0.3866,0.3866,0,0,1,14.50342,8.96637Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 503 B

View File

@ -1,96 +0,0 @@
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_CONTINUE
#define LV_ATTRIBUTE_IMG_CONTINUE
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CONTINUE uint8_t continue_map[] = {
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00,
0x00, 0x00, 0x07, 0xff, 0xff, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x07, 0xff, 0xff, 0xf0, 0x00, 0x00,
0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00,
0x00, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00, 0x00,
0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x00,
0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00,
0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
0x00, 0x0f, 0xfe, 0x3f, 0xfc, 0x7f, 0xf0, 0x00,
0x00, 0x0f, 0xf8, 0x3f, 0xfc, 0x1f, 0xf0, 0x00,
0x00, 0x0f, 0xe0, 0x3f, 0xfc, 0x07, 0xf0, 0x00,
0x00, 0x0f, 0x80, 0x3f, 0xfc, 0x01, 0xf0, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
};
const lv_img_dsc_t continue_icon = {
{
LV_IMG_CF_INDEXED_1BIT,
0,
0,
64,
64
},
520,
continue_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 961 B

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="continue.svg"
version="1.1"
viewBox="0 0 20 20"
height="20"
width="20"
data-name="WORKING ICONS"
id="WORKING_ICONS">
<metadata
id="metadata11">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs9" />
<sodipodi:namedview
inkscape:current-layer="WORKING_ICONS"
inkscape:window-maximized="1"
inkscape:window-y="22"
inkscape:window-x="-8"
inkscape:cy="16.43079"
inkscape:cx="14.864151"
inkscape:zoom="21.5"
showgrid="false"
id="namedview7"
inkscape:window-height="1027"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
bordercolor="#666666"
pagecolor="#ffffff" />
<title
id="title2">direction</title>
<path
style="stroke-width:1.25"
id="path4"
d="M 15.617836,8.707962 11.928024,7.028275 A 0.4469375,0.4469375 0 0 0 11.250011,7.5 V 19.37065 A 0.629325,0.629325 0 0 1 10.620661,20 H 9.3794106 a 0.629325,0.629325 0 0 1 -0.62935,-0.62935 V 7.5 A 0.44695,0.44695 0 0 0 8.0720358,7.028275 L 4.3821733,8.707962 A 0.4832375,0.4832375 0 0 1 3.8703983,7.9285375 L 10.000011,0 16.129624,7.9285375 A 0.48325,0.48325 0 0 1 15.617836,8.707962 Z"
fill="#000000" />
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="continue_left.svg"
version="1.1"
viewBox="0 0 20 20"
height="20"
width="20"
data-name="WORKING ICONS"
id="WORKING_ICONS">
<metadata
id="metadata11">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs9" />
<sodipodi:namedview
inkscape:current-layer="WORKING_ICONS"
inkscape:window-maximized="1"
inkscape:window-y="22"
inkscape:window-x="-8"
inkscape:cy="12.051802"
inkscape:cx="9.084877"
inkscape:zoom="30.405592"
showgrid="false"
id="namedview7"
inkscape:window-height="1027"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
bordercolor="#666666"
pagecolor="#ffffff" />
<title
id="title2">direction</title>
<path
style="stroke-width:1.24853"
id="path4"
d="m 11.243339,4.9925164 0.01373,0.00228 a 7.5663193,7.5663193 0 0 1 7.477437,7.5826126 v 4.925532 h -0.0039 l 0.0025,1.87675 a 0.61944488,0.61944488 0 0 1 -0.61952,0.620306 H 16.856998 A 0.61954476,0.61954476 0 0 1 16.237453,19.380458 V 12.577414 A 5.0663035,5.0663035 0 0 0 11.25736,7.491858 H 8.761827 A 0.44647376,0.44647376 0 0 0 8.2906573,8.1691592 L 9.9683672,11.854603 A 0.48266859,0.48266859 0 0 1 9.18986,12.365776 L 1.2654752,6.2661901 9.189885,0.12093333 a 0.48266859,0.48266859 0 0 1 0.7785072,0.5111725 L 8.2906573,4.3175744 A 0.4464363,0.4464363 0 0 0 8.761827,4.9948012 h 2.481512"
fill="#000000" />
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="continue_right.svg"
version="1.1"
viewBox="0 0 20 20"
height="20"
width="20"
data-name="WORKING ICONS"
id="WORKING_ICONS">
<metadata
id="metadata11">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs9" />
<sodipodi:namedview
inkscape:current-layer="WORKING_ICONS"
inkscape:window-maximized="1"
inkscape:window-y="22"
inkscape:window-x="-8"
inkscape:cy="12.793465"
inkscape:cx="10.886253"
inkscape:zoom="21.5"
showgrid="false"
id="namedview7"
inkscape:window-height="1027"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
bordercolor="#666666"
pagecolor="#ffffff" />
<title
id="title2">direction</title>
<path
style="stroke-width:1.24853"
id="path4"
d="M 8.7426433,7.4918486 A 5.0663062,5.0663062 0 0 0 3.7625481,12.577407 v 6.803048 A 0.61954509,0.61954509 0 0 1 3.143003,20 H 1.886396 A 0.6194452,0.6194452 0 0 1 1.2669383,19.379693 l 0.00243,-1.876751 h -0.00388 v -4.925535 a 7.5663233,7.5663233 0 0 1 7.477442,-7.5826165 l 0.01373,-0.00228 v 0.00228 h 2.4815137 a 0.44643653,0.44643653 0 0 0 0.47117,-0.6772271 L 10.031633,0.63210537 a 0.48266885,0.48266885 0 0 1 0.778495,-0.5111853 L 18.73453,6.2661801 10.810116,12.365794 A 0.48266885,0.48266885 0 0 1 10.031608,11.854621 L 11.709319,8.169163 A 0.44647399,0.44647399 0 0 0 11.238149,7.4918611 H 8.7426393 Z"
fill="#000000" />
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="continue_slight_left.svg"
version="1.1"
viewBox="0 0 20 20"
height="20"
width="20"
data-name="WORKING ICONS"
id="WORKING_ICONS">
<metadata
id="metadata11">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs9" />
<sodipodi:namedview
inkscape:current-layer="WORKING_ICONS"
inkscape:window-maximized="1"
inkscape:window-y="22"
inkscape:window-x="-8"
inkscape:cy="22.774268"
inkscape:cx="16.936746"
inkscape:zoom="15.202796"
showgrid="false"
id="namedview7"
inkscape:window-height="1027"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
bordercolor="#666666"
pagecolor="#ffffff" />
<title
id="title2">direction</title>
<path
style="stroke-width:1.33333"
id="path4"
d="m 16.648074,14.724 v 4.614427 A 0.66161333,0.66161333 0 0 1 15.986528,20 h -1.34204 a 0.66152,0.66152 0 0 1 -0.661534,-0.66244 l 0.0063,-4.810227 A 6.9575867,6.9575867 0 0 0 11.769221,9.002 L 8.5049277,6.2478 A 0.47677333,0.47677333 0 0 0 7.6509274,6.46468 l -1.22428,4.147467 A 0.51550667,0.51550667 0 0 1 5.440794,10.48 L 3.3335407,0 14.006554,0.5995333 A 0.51544,0.51544 0 0 1 14.277141,1.55656 l -3.931893,1.8002133 a 0.4768,0.4768 0 0 0 -0.09359,0.8761334 L 13.528274,6.99804 a 9.6687733,9.6687733 0 0 1 3.1198,7.72596 z"
fill="#000000" />
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="continue_slight_right.svg"
version="1.1"
viewBox="0 0 20 20"
height="20"
width="20"
data-name="WORKING ICONS"
id="WORKING_ICONS">
<metadata
id="metadata11">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs9" />
<sodipodi:namedview
inkscape:current-layer="WORKING_ICONS"
inkscape:window-maximized="1"
inkscape:window-y="22"
inkscape:window-x="-8"
inkscape:cy="14.169382"
inkscape:cx="9.932647"
inkscape:zoom="21.5"
showgrid="false"
id="namedview7"
inkscape:window-height="1027"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
bordercolor="#666666"
pagecolor="#ffffff" />
<title
id="title2">direction</title>
<path
style="stroke-width:1.33333"
id="path4"
d="M 6.4717198,6.9980533 9.7483327,4.2329067 A 0.4768,0.4768 0 0 0 9.6547467,3.3567733 L 5.7228532,1.55656 A 0.51544,0.51544 0 0 1 5.9934398,0.5995333 L 16.666453,0 14.5592,10.48 a 0.51550667,0.51550667 0 0 1 -0.98584,0.13216 L 12.34912,6.46468 A 0.47677333,0.47677333 0 0 0 11.49512,6.2478 L 8.2308265,9.001947 a 6.9575867,6.9575867 0 0 0 -2.22,5.525333 l 0.00627,4.810227 A 0.66152,0.66152 0 0 1 5.3555065,20 h -1.34204 A 0.66161333,0.66161333 0 0 1 3.3519332,19.338373 V 14.724 A 9.66876,9.66876 0 0 1 6.4717198,6.9980533 Z"
fill="#000000" />
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="continue_straight.svg"
version="1.1"
viewBox="0 0 20 20"
height="20"
width="20"
data-name="WORKING ICONS"
id="WORKING_ICONS">
<metadata
id="metadata11">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs9" />
<sodipodi:namedview
inkscape:current-layer="WORKING_ICONS"
inkscape:window-maximized="1"
inkscape:window-y="22"
inkscape:window-x="-8"
inkscape:cy="11.493095"
inkscape:cx="9.9711014"
inkscape:zoom="30.405592"
showgrid="false"
id="namedview7"
inkscape:window-height="1027"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
bordercolor="#666666"
pagecolor="#ffffff" />
<title
id="title2">direction</title>
<path
style="stroke-width:1.25"
id="path4"
d="M 15.617836,8.707962 11.928024,7.028275 A 0.4469375,0.4469375 0 0 0 11.250011,7.5 V 19.37065 A 0.629325,0.629325 0 0 1 10.620661,20 H 9.3794106 a 0.629325,0.629325 0 0 1 -0.62935,-0.62935 V 7.5 A 0.44695,0.44695 0 0 0 8.0720358,7.028275 L 4.3821733,8.707962 A 0.4832375,0.4832375 0 0 1 3.8703983,7.9285375 L 10.000011,0 16.129624,7.9285375 A 0.48325,0.48325 0 0 1 15.617836,8.707962 Z"
fill="#000000" />
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="continue_uturn.svg"
version="1.1"
viewBox="0 0 20 20"
height="20"
width="20"
data-name="WORKING ICONS"
id="WORKING_ICONS">
<metadata
id="metadata11">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs9" />
<sodipodi:namedview
inkscape:current-layer="WORKING_ICONS"
inkscape:window-maximized="1"
inkscape:window-y="22"
inkscape:window-x="-8"
inkscape:cy="11.022162"
inkscape:cx="6.3791168"
inkscape:zoom="15.202796"
showgrid="false"
id="namedview7"
inkscape:window-height="1027"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
bordercolor="#666666"
pagecolor="#ffffff" />
<title
id="title2">direction</title>
<path
style="stroke-width:1.29032"
id="path4"
d="M 19.683663,7.0967743 V 19.350348 A 0.64962581,0.64962581 0 0 1 19.034024,20 h -1.28129 A 0.64962581,0.64962581 0 0 1 17.103082,19.350348 V 7.0967743 a 4.516129,4.516129 0 1 0 -9.032258,0 V 12.258065 H 8.059031 a 0.46138065,0.46138065 0 0 0 0.6998966,0.486941 l 3.8088254,-1.733871 a 0.49883871,0.49883871 0 0 1 0.528284,0.804568 L 6.7687079,20 0.44128852,11.815703 a 0.49883871,0.49883871 0 0 1 0.5282839,-0.804568 l 3.80882578,1.733871 a 0.46141935,0.46141935 0 0 0 0.6999871,-0.486941 h 0.011729 V 7.0967743 a 7.0967744,7.0967744 0 1 1 14.1935487,0 z"
fill="#000000" />
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -1,4 +0,0 @@
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
<title>direction</title>
<path fill="#ffffff" d="M15,19a2,2,0,1,1,2-2A2,2,0,0,1,15,19ZM10.00293,8.03668a4.05782,4.05782,0,0,1,3.98877,4.07324H14v1.37775A0.51232,0.51232,0,0,0,14.51233,14h0.97534A0.51232,0.51232,0,0,0,16,13.48767V12H15.98615a6.05607,6.05607,0,0,0-5.9834-5.96332l-0.011-.00183L9.99182,6.05493H9V6.04584a0.35757,0.35757,0,0,1-.37738-0.54242L9.96637,2.55157a0.38659,0.38659,0,0,0-.62354-0.40942L3,7.04584l6.34283,4.90369a0.3866,0.3866,0,0,0,.62354-0.40942L8.62262,8.58826A0.35757,0.35757,0,0,1,9,8.04584V8.05493h1"/>
</svg>

Before

Width:  |  Height:  |  Size: 670 B

View File

@ -1,96 +0,0 @@
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_DEPART_LEFT
#define LV_ATTRIBUTE_IMG_DEPART_LEFT
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_DEPART_LEFT uint8_t depart_left_map[] = {
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
0x00, 0x00, 0x00, 0x3f, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0f, 0xff, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x1f, 0xff, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x3f, 0xff, 0x80, 0x00, 0x00, 0x00,
0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00,
0x00, 0x01, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x03, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x0f, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1f, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
0x00, 0x3f, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00,
0x00, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00,
0x01, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00,
0x03, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00,
0x03, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00,
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
0x00, 0x3f, 0xff, 0xfe, 0x1f, 0xff, 0xfe, 0x00,
0x00, 0x0f, 0xff, 0xfe, 0x03, 0xff, 0xfe, 0x00,
0x00, 0x07, 0xff, 0xfe, 0x01, 0xff, 0xfe, 0x00,
0x00, 0x03, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00,
0x00, 0x01, 0xff, 0xff, 0x80, 0x7f, 0xff, 0x00,
0x00, 0x00, 0xff, 0xff, 0x80, 0x3f, 0xff, 0x00,
0x00, 0x00, 0x3f, 0xff, 0x80, 0x1f, 0xff, 0x80,
0x00, 0x00, 0x1f, 0xff, 0xc0, 0x0f, 0xff, 0x80,
0x00, 0x00, 0x0f, 0xff, 0xc0, 0x0f, 0xff, 0x80,
0x00, 0x00, 0x03, 0xff, 0xc0, 0x07, 0xff, 0x80,
0x00, 0x00, 0x01, 0xff, 0xc0, 0x07, 0xff, 0x80,
0x00, 0x00, 0x00, 0xff, 0xc0, 0x07, 0xff, 0x80,
0x00, 0x00, 0x00, 0x3f, 0xc0, 0x07, 0xff, 0x80,
0x00, 0x00, 0x00, 0x1f, 0xc0, 0x07, 0xff, 0x80,
0x00, 0x00, 0x00, 0x0f, 0xc0, 0x07, 0xff, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xc0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xe0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xe0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xe0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xe0,
};
const lv_img_dsc_t depart_left = {
{
LV_IMG_CF_INDEXED_1BIT,
0,
0,
64,
64
},
520,
depart_left_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,4 +0,0 @@
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
<title>direction</title>
<path fill="#ffffff" d="M3,17a2,2,0,1,1,2,2A2,2,0,0,1,3,17Zm7-8.94507h1V8.04584a0.35757,0.35757,0,0,1,.37738.54242L10.03363,11.5401a0.3866,0.3866,0,0,0,.62354.40942L17,7.04584,10.65717,2.14215a0.38659,0.38659,0,0,0-.62354.40942l1.34375,2.95184A0.35757,0.35757,0,0,1,11,6.04584V6.05493H10.00818l0.00012-.02008-0.011.00183A6.05607,6.05607,0,0,0,4.01385,12H4v1.48767A0.51232,0.51232,0,0,0,4.51233,14H5.48767A0.51232,0.51232,0,0,0,6,13.48767V12.10992H6.0083A4.05782,4.05782,0,0,1,9.99707,8.03668"/>
</svg>

Before

Width:  |  Height:  |  Size: 660 B

View File

@ -1,96 +0,0 @@
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_DEPART_RIGHT
#define LV_ATTRIBUTE_IMG_DEPART_RIGHT
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_DEPART_RIGHT uint8_t depart_right_map[] = {
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
0x00, 0x00, 0x00, 0x01, 0xfe, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0xff, 0xc0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0xff, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0xff, 0xf8, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0xff, 0xfc, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xe0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xfe, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x80,
0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xc0,
0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0,
0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xe0,
0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xe0,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
0x00, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfe, 0x00,
0x00, 0x3f, 0xff, 0xe0, 0x3f, 0xff, 0xf8, 0x00,
0x00, 0x3f, 0xff, 0xc0, 0x3f, 0xff, 0xf0, 0x00,
0x00, 0x7f, 0xff, 0x80, 0x7f, 0xff, 0xe0, 0x00,
0x00, 0x7f, 0xff, 0x00, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x7f, 0xfe, 0x00, 0xff, 0xff, 0x80, 0x00,
0x00, 0xff, 0xfc, 0x00, 0xff, 0xfe, 0x00, 0x00,
0x00, 0xff, 0xf8, 0x01, 0xff, 0xfc, 0x00, 0x00,
0x00, 0xff, 0xf8, 0x01, 0xff, 0xf8, 0x00, 0x00,
0x00, 0xff, 0xf0, 0x01, 0xff, 0xe0, 0x00, 0x00,
0x00, 0xff, 0xf0, 0x01, 0xff, 0xc0, 0x00, 0x00,
0x00, 0xff, 0xf0, 0x01, 0xff, 0x80, 0x00, 0x00,
0x00, 0xff, 0xf0, 0x01, 0xfe, 0x00, 0x00, 0x00,
0x00, 0xff, 0xf0, 0x01, 0xfc, 0x00, 0x00, 0x00,
0x00, 0xff, 0xf0, 0x01, 0xf8, 0x00, 0x00, 0x00,
0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
};
const lv_img_dsc_t depart_right = {
{
LV_IMG_CF_INDEXED_1BIT,
0,
0,
64,
64
},
520,
depart_right_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,4 +0,0 @@
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
<title>direction</title>
<path fill="#ffffff" d="M10,19a2,2,0,1,1,2-2A2,2,0,0,1,10,19ZM14.91284,7.34283L10.00916,1,5.10547,7.34283a0.38659,0.38659,0,0,0,.40942.62354L8.46674,6.62262a0.35542,0.35542,0,0,1,.541.36908H9v5.50006a0.49992,0.49992,0,0,0,.49994.49994h1.00012A0.49992,0.49992,0,0,0,11,12.49176V7h0.00916a0.35757,0.35757,0,0,1,.54242-0.37738l2.95184,1.34375A0.3866,0.3866,0,0,0,14.91284,7.34283Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 546 B

View File

@ -1,96 +0,0 @@
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_DEPART_STRAIGHT
#define LV_ATTRIBUTE_IMG_DEPART_STRAIGHT
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_DEPART_STRAIGHT uint8_t depart_straight_map[] = {
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00,
0x00, 0x00, 0x07, 0xff, 0xff, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00,
0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00,
0x00, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00, 0x00,
0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x00,
0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x03, 0xff, 0xbf, 0xfd, 0xff, 0xc0, 0x00,
0x00, 0x03, 0xfe, 0x3f, 0xfc, 0x7f, 0xc0, 0x00,
0x00, 0x03, 0xf8, 0x3f, 0xfc, 0x1f, 0xc0, 0x00,
0x00, 0x03, 0xc0, 0x3f, 0xfc, 0x03, 0xc0, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
};
const lv_img_dsc_t depart_straight = {
{
LV_IMG_CF_INDEXED_1BIT,
0,
0,
64,
64
},
520,
depart_straight_map,
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

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