From 5d6bc6be0262c147db04d1868a537787076aa7ac Mon Sep 17 00:00:00 2001 From: Ken Van Hoeylandt Date: Sat, 25 Jul 2026 21:36:20 +0200 Subject: [PATCH 1/8] Module improvements --- Devices/lilygo-tdeck-plus/source/module.cpp | 2 +- Devices/lilygo-tdeck/source/module.cpp | 2 +- Devices/lilygo-tlora-pager/source/module.cpp | 2 +- .../Source/devices/tab5_keyboard.cpp | 2 +- .../include/{tactility => crypt}/crypt.h | 0 .../include/{tactility => crypt}/hash.h | 0 .../crypt_module.h => crypt/module.h} | 0 Modules/crypt-module/source/crypt.cpp | 2 +- Modules/crypt-module/source/hash.cpp | 2 +- Modules/crypt-module/source/module.cpp | 4 +- .../include/gps/{gps_module.h => module.h} | 0 Modules/gps-module/source/module.cpp | 2 +- .../{tactility/lvgl_module.h => lvgl/lvgl.h} | 49 ------------------ .../{tactility => lvgl}/lvgl_display.h | 0 .../include/{tactility => lvgl}/lvgl_fonts.h | 0 .../{tactility => lvgl}/lvgl_icon_launcher.h | 0 .../{tactility => lvgl}/lvgl_icon_shared.h | 0 .../{tactility => lvgl}/lvgl_icon_statusbar.h | 0 .../{tactility => lvgl}/lvgl_keyboard.h | 0 .../{tactility => lvgl}/lvgl_pointer.h | 0 .../include/{tactility => lvgl}/lvgl_ppa.h | 0 Modules/lvgl-module/include/lvgl/module.h | 51 +++++++++++++++++++ Modules/lvgl-module/source/arch/lvgl_esp32.c | 5 +- Modules/lvgl-module/source/arch/lvgl_posix.c | 2 +- Modules/lvgl-module/source/lvgl.c | 6 +++ Modules/lvgl-module/source/lvgl_devices.c | 8 +-- Modules/lvgl-module/source/lvgl_display.c | 4 +- Modules/lvgl-module/source/lvgl_fonts.c | 2 +- Modules/lvgl-module/source/lvgl_keyboard.c | 2 +- Modules/lvgl-module/source/lvgl_pointer.c | 2 +- Modules/lvgl-module/source/lvgl_ppa.c | 2 +- Modules/lvgl-module/source/module.c | 8 +-- Modules/lvgl-module/source/symbols.c | 4 +- Tactility/Source/Tactility.cpp | 6 +-- Tactility/Source/app/addgps/AddGps.cpp | 2 +- Tactility/Source/app/apphub/AppHubApp.cpp | 2 +- Tactility/Source/app/applist/AppList.cpp | 4 +- .../Source/app/appsettings/AppSettings.cpp | 4 +- .../app/audiosettings/AudioSettings.cpp | 4 +- Tactility/Source/app/btmanage/BtManage.cpp | 2 +- Tactility/Source/app/btmanage/View.cpp | 2 +- Tactility/Source/app/chat/ChatApp.cpp | 2 +- Tactility/Source/app/chat/ChatSettings.cpp | 2 +- .../Source/app/development/Development.cpp | 16 +++--- .../Source/app/gpssettings/GpsSettings.cpp | 15 ++---- .../app/grovesettings/GroveSettings.cpp | 2 +- .../Source/app/i2cscanner/I2cScanner.cpp | 2 +- .../app/kerneldisplay/KernelDisplay.cpp | 4 +- .../Source/app/keyboard/KeyboardSettings.cpp | 2 +- Tactility/Source/app/launcher/Launcher.cpp | 6 +-- .../app/localesettings/LocaleSettings.cpp | 2 +- Tactility/Source/app/notes/Notes.cpp | 2 +- Tactility/Source/app/power/Power.cpp | 2 +- Tactility/Source/app/poweroff/PowerOff.cpp | 4 +- .../Source/app/screenshot/Screenshot.cpp | 2 +- Tactility/Source/app/settings/Settings.cpp | 4 +- Tactility/Source/app/setup/Setup.cpp | 4 +- .../Source/app/systeminfo/SystemInfo.cpp | 6 +-- .../app/timedatesettings/TimeDateSettings.cpp | 4 +- Tactility/Source/app/timezone/TimeZone.cpp | 4 +- .../app/touchcalibration/TouchCalibration.cpp | 4 +- .../app/trackball/TrackballSettings.cpp | 4 +- .../Source/app/usbsettings/UsbSettings.cpp | 2 +- .../webserversettings/WebServerSettings.cpp | 2 +- Tactility/Source/app/wifimanage/View.cpp | 2 +- .../Source/app/wifimanage/WifiManage.cpp | 2 +- Tactility/Source/file/FileMutexLvgl.cpp | 2 +- Tactility/Source/lvgl/LvglSync.cpp | 2 +- Tactility/Source/lvgl/SliderBox.cpp | 2 +- Tactility/Source/lvgl/Statusbar.cpp | 4 +- Tactility/Source/lvgl/Toolbar.cpp | 4 +- Tactility/Source/lvgl/wrappers/button.cpp | 2 +- Tactility/Source/lvgl/wrappers/dropdown.cpp | 2 +- Tactility/Source/lvgl/wrappers/list.cpp | 2 +- Tactility/Source/lvgl/wrappers/obj.cpp | 2 +- Tactility/Source/lvgl/wrappers/switch.cpp | 2 +- Tactility/Source/lvgl/wrappers/textarea.cpp | 2 +- .../service/displayidle/DisplayIdle.cpp | 2 +- Tactility/Source/service/gui/GuiService.cpp | 2 +- .../service/keyboardidle/KeyboardIdle.cpp | 2 +- .../memorychecker/MemoryCheckerService.cpp | 2 +- .../Source/service/statusbar/Statusbar.cpp | 8 +-- .../service/webserver/WebServerService.cpp | 2 +- .../Source/service/wifi/WifiApSettings.cpp | 2 +- Tests/SdkIntegration/main/Source/main.c | 2 +- Tests/crypt-module/Source/CryptTest.cpp | 2 +- Tests/crypt-module/Source/HashTest.cpp | 2 +- 87 files changed, 169 insertions(+), 173 deletions(-) rename Modules/crypt-module/include/{tactility => crypt}/crypt.h (100%) rename Modules/crypt-module/include/{tactility => crypt}/hash.h (100%) rename Modules/crypt-module/include/{tactility/crypt_module.h => crypt/module.h} (100%) rename Modules/gps-module/include/gps/{gps_module.h => module.h} (100%) rename Modules/lvgl-module/include/{tactility/lvgl_module.h => lvgl/lvgl.h} (53%) rename Modules/lvgl-module/include/{tactility => lvgl}/lvgl_display.h (100%) rename Modules/lvgl-module/include/{tactility => lvgl}/lvgl_fonts.h (100%) rename Modules/lvgl-module/include/{tactility => lvgl}/lvgl_icon_launcher.h (100%) rename Modules/lvgl-module/include/{tactility => lvgl}/lvgl_icon_shared.h (100%) rename Modules/lvgl-module/include/{tactility => lvgl}/lvgl_icon_statusbar.h (100%) rename Modules/lvgl-module/include/{tactility => lvgl}/lvgl_keyboard.h (100%) rename Modules/lvgl-module/include/{tactility => lvgl}/lvgl_pointer.h (100%) rename Modules/lvgl-module/include/{tactility => lvgl}/lvgl_ppa.h (100%) create mode 100644 Modules/lvgl-module/include/lvgl/module.h create mode 100644 Modules/lvgl-module/source/lvgl.c diff --git a/Devices/lilygo-tdeck-plus/source/module.cpp b/Devices/lilygo-tdeck-plus/source/module.cpp index ea51abaa0..7460fe6cb 100644 --- a/Devices/lilygo-tdeck-plus/source/module.cpp +++ b/Devices/lilygo-tdeck-plus/source/module.cpp @@ -1,7 +1,7 @@ #include #include #include -#include +#include #include #include diff --git a/Devices/lilygo-tdeck/source/module.cpp b/Devices/lilygo-tdeck/source/module.cpp index 41907e63d..500926424 100644 --- a/Devices/lilygo-tdeck/source/module.cpp +++ b/Devices/lilygo-tdeck/source/module.cpp @@ -2,7 +2,7 @@ #include #include -#include +#include #include #include diff --git a/Devices/lilygo-tlora-pager/source/module.cpp b/Devices/lilygo-tlora-pager/source/module.cpp index 81f331b26..b24dd91a3 100644 --- a/Devices/lilygo-tlora-pager/source/module.cpp +++ b/Devices/lilygo-tlora-pager/source/module.cpp @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/Devices/m5stack-tab5/Source/devices/tab5_keyboard.cpp b/Devices/m5stack-tab5/Source/devices/tab5_keyboard.cpp index 379b3737e..525f0db17 100644 --- a/Devices/m5stack-tab5/Source/devices/tab5_keyboard.cpp +++ b/Devices/m5stack-tab5/Source/devices/tab5_keyboard.cpp @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include diff --git a/Modules/crypt-module/include/tactility/crypt.h b/Modules/crypt-module/include/crypt/crypt.h similarity index 100% rename from Modules/crypt-module/include/tactility/crypt.h rename to Modules/crypt-module/include/crypt/crypt.h diff --git a/Modules/crypt-module/include/tactility/hash.h b/Modules/crypt-module/include/crypt/hash.h similarity index 100% rename from Modules/crypt-module/include/tactility/hash.h rename to Modules/crypt-module/include/crypt/hash.h diff --git a/Modules/crypt-module/include/tactility/crypt_module.h b/Modules/crypt-module/include/crypt/module.h similarity index 100% rename from Modules/crypt-module/include/tactility/crypt_module.h rename to Modules/crypt-module/include/crypt/module.h diff --git a/Modules/crypt-module/source/crypt.cpp b/Modules/crypt-module/source/crypt.cpp index 90f6b64b0..8d63765fc 100644 --- a/Modules/crypt-module/source/crypt.cpp +++ b/Modules/crypt-module/source/crypt.cpp @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -#include +#include #include #include diff --git a/Modules/crypt-module/source/hash.cpp b/Modules/crypt-module/source/hash.cpp index 6acce8917..69b24b358 100644 --- a/Modules/crypt-module/source/hash.cpp +++ b/Modules/crypt-module/source/hash.cpp @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -#include +#include uint32_t djb2_str(const char* str) { uint32_t hash = 5381; diff --git a/Modules/crypt-module/source/module.cpp b/Modules/crypt-module/source/module.cpp index 63b3d5063..aa93b7504 100644 --- a/Modules/crypt-module/source/module.cpp +++ b/Modules/crypt-module/source/module.cpp @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 -#include -#include +#include +#include #include extern "C" { diff --git a/Modules/gps-module/include/gps/gps_module.h b/Modules/gps-module/include/gps/module.h similarity index 100% rename from Modules/gps-module/include/gps/gps_module.h rename to Modules/gps-module/include/gps/module.h diff --git a/Modules/gps-module/source/module.cpp b/Modules/gps-module/source/module.cpp index da0a4c826..29f546e38 100644 --- a/Modules/gps-module/source/module.cpp +++ b/Modules/gps-module/source/module.cpp @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -#include +#include #include #include diff --git a/Modules/lvgl-module/include/tactility/lvgl_module.h b/Modules/lvgl-module/include/lvgl/lvgl.h similarity index 53% rename from Modules/lvgl-module/include/tactility/lvgl_module.h rename to Modules/lvgl-module/include/lvgl/lvgl.h index a590a15df..f9badc133 100644 --- a/Modules/lvgl-module/include/tactility/lvgl_module.h +++ b/Modules/lvgl-module/include/lvgl/lvgl.h @@ -1,14 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 #pragma once -/** - * @file lvgl_module.h - * @brief LVGL module for Tactility. - * - * This module manages the lifecycle of the LVGL library, including initialization, - * task management, and thread-safety. - */ - #ifdef __cplusplus extern "C" { #endif @@ -24,47 +16,6 @@ enum UiDensity { LVGL_UI_DENSITY_DEFAULT }; -/** - * @brief The LVGL module instance. - */ -extern struct Module lvgl_module; - -/** - * @brief Configuration for the LVGL module. - */ -struct LvglModuleConfig { - /** - * @brief Callback invoked when the LVGL task starts. - * Use this to add devices (e.g. displays, pointers), start services, create widgets, etc. - */ - void (*on_start)(void); - - /** - * @brief Callback invoked when the LVGL task stops. - * Use this to remove devices, stop services, etc. - */ - void (*on_stop)(void); - - /** @brief Priority of the LVGL task. */ - int task_priority; - - /** @brief Stack size of the LVGL task in bytes. */ - int task_stack_size; - -#ifdef ESP_PLATFORM - /** @brief CPU affinity of the LVGL task (ESP32 specific). */ - int task_affinity; -#endif -}; - -/** - * @brief Configures the LVGL module. - * - * @warning This must be called before starting the module. - * @param config The configuration to apply. - */ -void lvgl_module_configure(struct LvglModuleConfig config); - /** * @brief Locks the LVGL mutex. * diff --git a/Modules/lvgl-module/include/tactility/lvgl_display.h b/Modules/lvgl-module/include/lvgl/lvgl_display.h similarity index 100% rename from Modules/lvgl-module/include/tactility/lvgl_display.h rename to Modules/lvgl-module/include/lvgl/lvgl_display.h diff --git a/Modules/lvgl-module/include/tactility/lvgl_fonts.h b/Modules/lvgl-module/include/lvgl/lvgl_fonts.h similarity index 100% rename from Modules/lvgl-module/include/tactility/lvgl_fonts.h rename to Modules/lvgl-module/include/lvgl/lvgl_fonts.h diff --git a/Modules/lvgl-module/include/tactility/lvgl_icon_launcher.h b/Modules/lvgl-module/include/lvgl/lvgl_icon_launcher.h similarity index 100% rename from Modules/lvgl-module/include/tactility/lvgl_icon_launcher.h rename to Modules/lvgl-module/include/lvgl/lvgl_icon_launcher.h diff --git a/Modules/lvgl-module/include/tactility/lvgl_icon_shared.h b/Modules/lvgl-module/include/lvgl/lvgl_icon_shared.h similarity index 100% rename from Modules/lvgl-module/include/tactility/lvgl_icon_shared.h rename to Modules/lvgl-module/include/lvgl/lvgl_icon_shared.h diff --git a/Modules/lvgl-module/include/tactility/lvgl_icon_statusbar.h b/Modules/lvgl-module/include/lvgl/lvgl_icon_statusbar.h similarity index 100% rename from Modules/lvgl-module/include/tactility/lvgl_icon_statusbar.h rename to Modules/lvgl-module/include/lvgl/lvgl_icon_statusbar.h diff --git a/Modules/lvgl-module/include/tactility/lvgl_keyboard.h b/Modules/lvgl-module/include/lvgl/lvgl_keyboard.h similarity index 100% rename from Modules/lvgl-module/include/tactility/lvgl_keyboard.h rename to Modules/lvgl-module/include/lvgl/lvgl_keyboard.h diff --git a/Modules/lvgl-module/include/tactility/lvgl_pointer.h b/Modules/lvgl-module/include/lvgl/lvgl_pointer.h similarity index 100% rename from Modules/lvgl-module/include/tactility/lvgl_pointer.h rename to Modules/lvgl-module/include/lvgl/lvgl_pointer.h diff --git a/Modules/lvgl-module/include/tactility/lvgl_ppa.h b/Modules/lvgl-module/include/lvgl/lvgl_ppa.h similarity index 100% rename from Modules/lvgl-module/include/tactility/lvgl_ppa.h rename to Modules/lvgl-module/include/lvgl/lvgl_ppa.h diff --git a/Modules/lvgl-module/include/lvgl/module.h b/Modules/lvgl-module/include/lvgl/module.h new file mode 100644 index 000000000..276d174e8 --- /dev/null +++ b/Modules/lvgl-module/include/lvgl/module.h @@ -0,0 +1,51 @@ +// SPDX-License-Identifier: Apache-2.0 +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief The LVGL module instance. + */ +extern struct Module lvgl_module; + +/** + * @brief Configuration for the LVGL module. + */ +struct LvglModuleConfig { + /** + * @brief Callback invoked when the LVGL task starts. + * Use this to add devices (e.g. displays, pointers), start services, create widgets, etc. + */ + void (*on_start)(void); + + /** + * @brief Callback invoked when the LVGL task stops. + * Use this to remove devices, stop services, etc. + */ + void (*on_stop)(void); + + /** @brief Priority of the LVGL task. */ + int task_priority; + + /** @brief Stack size of the LVGL task in bytes. */ + int task_stack_size; + +#ifdef ESP_PLATFORM + /** @brief CPU affinity of the LVGL task (ESP32 specific). */ + int task_affinity; +#endif +}; + +/** + * @brief Configures the LVGL module. + * + * @warning This must be called before starting the module. + * @param config The configuration to apply. + */ +void lvgl_module_configure(struct LvglModuleConfig config); + +#ifdef __cplusplus +} +#endif diff --git a/Modules/lvgl-module/source/arch/lvgl_esp32.c b/Modules/lvgl-module/source/arch/lvgl_esp32.c index 3251bcc18..4a40bf55d 100644 --- a/Modules/lvgl-module/source/arch/lvgl_esp32.c +++ b/Modules/lvgl-module/source/arch/lvgl_esp32.c @@ -3,9 +3,10 @@ #include -#include +#include +#include #include -#include +#include extern struct LvglModuleConfig lvgl_module_config; extern void lvgl_devices_attach(); diff --git a/Modules/lvgl-module/source/arch/lvgl_posix.c b/Modules/lvgl-module/source/arch/lvgl_posix.c index e887f0bba..42e33ad93 100644 --- a/Modules/lvgl-module/source/arch/lvgl_posix.c +++ b/Modules/lvgl-module/source/arch/lvgl_posix.c @@ -10,7 +10,7 @@ #include -#include +#include extern struct LvglModuleConfig lvgl_module_config; extern void lvgl_devices_attach(); diff --git a/Modules/lvgl-module/source/lvgl.c b/Modules/lvgl-module/source/lvgl.c new file mode 100644 index 000000000..0a4784efa --- /dev/null +++ b/Modules/lvgl-module/source/lvgl.c @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: Apache-2.0 +#include + +enum UiDensity lvgl_get_ui_density(void) { + return TT_LVGL_UI_DENSITY; +} diff --git a/Modules/lvgl-module/source/lvgl_devices.c b/Modules/lvgl-module/source/lvgl_devices.c index cbd61a593..5222a5c8b 100644 --- a/Modules/lvgl-module/source/lvgl_devices.c +++ b/Modules/lvgl-module/source/lvgl_devices.c @@ -3,10 +3,10 @@ #include #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include diff --git a/Modules/lvgl-module/source/lvgl_display.c b/Modules/lvgl-module/source/lvgl_display.c index da76e111d..0586e5b5a 100644 --- a/Modules/lvgl-module/source/lvgl_display.c +++ b/Modules/lvgl-module/source/lvgl_display.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 -#include +#include -#include +#include #include #include diff --git a/Modules/lvgl-module/source/lvgl_fonts.c b/Modules/lvgl-module/source/lvgl_fonts.c index aab972111..a2cc2d1ad 100644 --- a/Modules/lvgl-module/source/lvgl_fonts.c +++ b/Modules/lvgl-module/source/lvgl_fonts.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 #include -#include +#include #include // The preprocessor definitions that are used below are defined in the CMakeLists.txt from this module. diff --git a/Modules/lvgl-module/source/lvgl_keyboard.c b/Modules/lvgl-module/source/lvgl_keyboard.c index 625bb71f4..0d73cd54e 100644 --- a/Modules/lvgl-module/source/lvgl_keyboard.c +++ b/Modules/lvgl-module/source/lvgl_keyboard.c @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -#include +#include #include diff --git a/Modules/lvgl-module/source/lvgl_pointer.c b/Modules/lvgl-module/source/lvgl_pointer.c index 29dbb8f65..c52cb89d4 100644 --- a/Modules/lvgl-module/source/lvgl_pointer.c +++ b/Modules/lvgl-module/source/lvgl_pointer.c @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -#include +#include #include diff --git a/Modules/lvgl-module/source/lvgl_ppa.c b/Modules/lvgl-module/source/lvgl_ppa.c index f59ae56c5..25a61bfac 100644 --- a/Modules/lvgl-module/source/lvgl_ppa.c +++ b/Modules/lvgl-module/source/lvgl_ppa.c @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -#include +#include #include diff --git a/Modules/lvgl-module/source/module.c b/Modules/lvgl-module/source/module.c index 6db5b597a..3a86e1cbd 100644 --- a/Modules/lvgl-module/source/module.c +++ b/Modules/lvgl-module/source/module.c @@ -1,8 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 -#include +#include #include #include -#include +#include extern const struct ModuleSymbol lvgl_module_symbols[]; error_t lvgl_arch_start(); @@ -60,10 +60,6 @@ bool lvgl_is_running() { return is_running; } -enum UiDensity lvgl_get_ui_density(void) { - return TT_LVGL_UI_DENSITY; -} - struct Module lvgl_module = { .name = "lvgl", .start = start, diff --git a/Modules/lvgl-module/source/symbols.c b/Modules/lvgl-module/source/symbols.c index 005e68183..6fa4d0d37 100644 --- a/Modules/lvgl-module/source/symbols.c +++ b/Modules/lvgl-module/source/symbols.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 -#include -#include +#include +#include #include #include diff --git a/Tactility/Source/Tactility.cpp b/Tactility/Source/Tactility.cpp index 53604d950..f84141510 100644 --- a/Tactility/Source/Tactility.cpp +++ b/Tactility/Source/Tactility.cpp @@ -20,11 +20,12 @@ #include #include -#include +#include #include +#include +#include #include -#include #include #include #include @@ -34,7 +35,6 @@ #include #include #include -#include #ifdef ESP_PLATFORM #include diff --git a/Tactility/Source/app/addgps/AddGps.cpp b/Tactility/Source/app/addgps/AddGps.cpp index fafe6f5d0..dce180e68 100644 --- a/Tactility/Source/app/addgps/AddGps.cpp +++ b/Tactility/Source/app/addgps/AddGps.cpp @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include diff --git a/Tactility/Source/app/apphub/AppHubApp.cpp b/Tactility/Source/app/apphub/AppHubApp.cpp index 20979c473..3ae5e4773 100644 --- a/Tactility/Source/app/apphub/AppHubApp.cpp +++ b/Tactility/Source/app/apphub/AppHubApp.cpp @@ -12,7 +12,7 @@ #include #include -#include +#include #include #include diff --git a/Tactility/Source/app/applist/AppList.cpp b/Tactility/Source/app/applist/AppList.cpp index bdc35ff2b..bd2882bbc 100644 --- a/Tactility/Source/app/applist/AppList.cpp +++ b/Tactility/Source/app/applist/AppList.cpp @@ -5,8 +5,8 @@ #include #include -#include -#include +#include +#include namespace tt::app::applist { diff --git a/Tactility/Source/app/appsettings/AppSettings.cpp b/Tactility/Source/app/appsettings/AppSettings.cpp index 8a4210d9d..d53323cd4 100644 --- a/Tactility/Source/app/appsettings/AppSettings.cpp +++ b/Tactility/Source/app/appsettings/AppSettings.cpp @@ -1,5 +1,5 @@ -#include -#include +#include +#include #include #include diff --git a/Tactility/Source/app/audiosettings/AudioSettings.cpp b/Tactility/Source/app/audiosettings/AudioSettings.cpp index bb32c56bf..399228c78 100644 --- a/Tactility/Source/app/audiosettings/AudioSettings.cpp +++ b/Tactility/Source/app/audiosettings/AudioSettings.cpp @@ -1,6 +1,6 @@ #include -#include +#include #include #include @@ -10,7 +10,7 @@ #include #include -#include +#include namespace tt::app::audiosettings { diff --git a/Tactility/Source/app/btmanage/BtManage.cpp b/Tactility/Source/app/btmanage/BtManage.cpp index a581977ec..94bf04b3d 100644 --- a/Tactility/Source/app/btmanage/BtManage.cpp +++ b/Tactility/Source/app/btmanage/BtManage.cpp @@ -8,7 +8,7 @@ #include #include -#include +#include namespace tt::app::btmanage { diff --git a/Tactility/Source/app/btmanage/View.cpp b/Tactility/Source/app/btmanage/View.cpp index 8003ffb17..0d9b2b90b 100644 --- a/Tactility/Source/app/btmanage/View.cpp +++ b/Tactility/Source/app/btmanage/View.cpp @@ -1,7 +1,7 @@ #include #include -#include +#include #include #include diff --git a/Tactility/Source/app/chat/ChatApp.cpp b/Tactility/Source/app/chat/ChatApp.cpp index 64d2b2d1b..d2fde94b1 100644 --- a/Tactility/Source/app/chat/ChatApp.cpp +++ b/Tactility/Source/app/chat/ChatApp.cpp @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include namespace tt::app::chat { diff --git a/Tactility/Source/app/chat/ChatSettings.cpp b/Tactility/Source/app/chat/ChatSettings.cpp index 84aee7963..729e6bb15 100644 --- a/Tactility/Source/app/chat/ChatSettings.cpp +++ b/Tactility/Source/app/chat/ChatSettings.cpp @@ -11,7 +11,7 @@ #include #include -#include +#include #include diff --git a/Tactility/Source/app/development/Development.cpp b/Tactility/Source/app/development/Development.cpp index a5b065955..bfedf8857 100644 --- a/Tactility/Source/app/development/Development.cpp +++ b/Tactility/Source/app/development/Development.cpp @@ -12,8 +12,8 @@ #include #include -#include -#include +#include +#include #include #include @@ -31,11 +31,10 @@ class DevelopmentApp final : public App { std::shared_ptr service; Timer timer = Timer(Timer::Type::Periodic, pdMS_TO_TICKS(1000), [this] { - auto lockable = lvgl::getSyncLock(); - auto lock = lockable->asScopedLock(); - // TODO: There's a crash when this is called when the app is being destroyed - if (lock.lock(lvgl::defaultLockTime) && module_is_started(&lvgl_module)) { + if (lvgl_is_running()) { + lvgl_lock(); updateViewState(); + lvgl_unlock(); } }); @@ -158,11 +157,10 @@ class DevelopmentApp final : public App { } void onHide(AppContext& appContext) override { - auto lockable = lvgl::getSyncLock(); - auto lock = lockable->asScopedLock(); + lvgl_lock(); // Ensure that the update isn't already happening - lock.lock(); timer.stop(); + lvgl_unlock(); } }; diff --git a/Tactility/Source/app/gpssettings/GpsSettings.cpp b/Tactility/Source/app/gpssettings/GpsSettings.cpp index 31472fd9e..6d58690e8 100644 --- a/Tactility/Source/app/gpssettings/GpsSettings.cpp +++ b/Tactility/Source/app/gpssettings/GpsSettings.cpp @@ -1,19 +1,13 @@ - - -#include "tactility/lvgl_module.h" - +#include +#include #include - - #include #include #include -#include #include #include -#include #include #include @@ -181,9 +175,7 @@ class GpsSettingsApp final : public App { } void updateDeviceStates() { - auto lockable = lvgl::getSyncLock(); - auto lock = lockable->asScopedLock(); - if (lock.lock(100 / portTICK_PERIOD_MS)) { + if (lvgl_try_lock(100 / portTICK_PERIOD_MS)) { for (auto& row : deviceRows) { const char* text = "Start"; bool enabled = true; @@ -213,6 +205,7 @@ class GpsSettingsApp final : public App { } } } + lvgl_unlock(); } public: diff --git a/Tactility/Source/app/grovesettings/GroveSettings.cpp b/Tactility/Source/app/grovesettings/GroveSettings.cpp index bd92c84ce..b0190f1d8 100644 --- a/Tactility/Source/app/grovesettings/GroveSettings.cpp +++ b/Tactility/Source/app/grovesettings/GroveSettings.cpp @@ -4,7 +4,7 @@ #include #include -#include +#include #include #include diff --git a/Tactility/Source/app/i2cscanner/I2cScanner.cpp b/Tactility/Source/app/i2cscanner/I2cScanner.cpp index 3d7ffa807..4fac1d179 100644 --- a/Tactility/Source/app/i2cscanner/I2cScanner.cpp +++ b/Tactility/Source/app/i2cscanner/I2cScanner.cpp @@ -14,7 +14,7 @@ #include #include -#include +#include namespace tt::app::i2cscanner { diff --git a/Tactility/Source/app/kerneldisplay/KernelDisplay.cpp b/Tactility/Source/app/kerneldisplay/KernelDisplay.cpp index 6db58af50..2b141bc8f 100644 --- a/Tactility/Source/app/kerneldisplay/KernelDisplay.cpp +++ b/Tactility/Source/app/kerneldisplay/KernelDisplay.cpp @@ -1,10 +1,10 @@ #include #include -#include +#include #include #include #include -#include +#include #include #ifdef ESP_PLATFORM diff --git a/Tactility/Source/app/keyboard/KeyboardSettings.cpp b/Tactility/Source/app/keyboard/KeyboardSettings.cpp index e86ecb6df..0e55458de 100644 --- a/Tactility/Source/app/keyboard/KeyboardSettings.cpp +++ b/Tactility/Source/app/keyboard/KeyboardSettings.cpp @@ -7,7 +7,7 @@ #include #include -#include +#include #include diff --git a/Tactility/Source/app/launcher/Launcher.cpp b/Tactility/Source/app/launcher/Launcher.cpp index 425496339..07019cc8d 100644 --- a/Tactility/Source/app/launcher/Launcher.cpp +++ b/Tactility/Source/app/launcher/Launcher.cpp @@ -13,9 +13,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include namespace tt::app::launcher { diff --git a/Tactility/Source/app/localesettings/LocaleSettings.cpp b/Tactility/Source/app/localesettings/LocaleSettings.cpp index 9293b52d4..6c0b64edd 100644 --- a/Tactility/Source/app/localesettings/LocaleSettings.cpp +++ b/Tactility/Source/app/localesettings/LocaleSettings.cpp @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include diff --git a/Tactility/Source/app/notes/Notes.cpp b/Tactility/Source/app/notes/Notes.cpp index 18b84a3b7..075be0edd 100644 --- a/Tactility/Source/app/notes/Notes.cpp +++ b/Tactility/Source/app/notes/Notes.cpp @@ -9,7 +9,7 @@ #include #include -#include +#include namespace tt::app::notes { diff --git a/Tactility/Source/app/power/Power.cpp b/Tactility/Source/app/power/Power.cpp index 6c524c293..df5b67e81 100644 --- a/Tactility/Source/app/power/Power.cpp +++ b/Tactility/Source/app/power/Power.cpp @@ -8,7 +8,7 @@ #include #include -#include +#include #include diff --git a/Tactility/Source/app/poweroff/PowerOff.cpp b/Tactility/Source/app/poweroff/PowerOff.cpp index 572f40fdd..580e03e53 100644 --- a/Tactility/Source/app/poweroff/PowerOff.cpp +++ b/Tactility/Source/app/poweroff/PowerOff.cpp @@ -9,8 +9,8 @@ #include #include #include -#include -#include +#include +#include namespace tt::app::poweroff { diff --git a/Tactility/Source/app/screenshot/Screenshot.cpp b/Tactility/Source/app/screenshot/Screenshot.cpp index b1cf5bfe3..e8aa9e0aa 100644 --- a/Tactility/Source/app/screenshot/Screenshot.cpp +++ b/Tactility/Source/app/screenshot/Screenshot.cpp @@ -15,7 +15,7 @@ #include #include -#include +#include namespace tt::app::screenshot { diff --git a/Tactility/Source/app/settings/Settings.cpp b/Tactility/Source/app/settings/Settings.cpp index f641195f4..68276dfcf 100644 --- a/Tactility/Source/app/settings/Settings.cpp +++ b/Tactility/Source/app/settings/Settings.cpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include diff --git a/Tactility/Source/app/setup/Setup.cpp b/Tactility/Source/app/setup/Setup.cpp index 40aac59ea..4b5c8cfe0 100644 --- a/Tactility/Source/app/setup/Setup.cpp +++ b/Tactility/Source/app/setup/Setup.cpp @@ -1,5 +1,5 @@ -#include -#include +#include +#include #include #include diff --git a/Tactility/Source/app/systeminfo/SystemInfo.cpp b/Tactility/Source/app/systeminfo/SystemInfo.cpp index 5f1a882ab..70923e51b 100644 --- a/Tactility/Source/app/systeminfo/SystemInfo.cpp +++ b/Tactility/Source/app/systeminfo/SystemInfo.cpp @@ -11,9 +11,9 @@ #include #include -#include -#include -#include +#include +#include +#include #ifdef ESP_PLATFORM #include diff --git a/Tactility/Source/app/timedatesettings/TimeDateSettings.cpp b/Tactility/Source/app/timedatesettings/TimeDateSettings.cpp index 5fe798302..2c52e7d95 100644 --- a/Tactility/Source/app/timedatesettings/TimeDateSettings.cpp +++ b/Tactility/Source/app/timedatesettings/TimeDateSettings.cpp @@ -1,4 +1,4 @@ -#include +#include #include @@ -13,7 +13,7 @@ #include #include -#include +#include namespace tt::app::timedatesettings { diff --git a/Tactility/Source/app/timezone/TimeZone.cpp b/Tactility/Source/app/timezone/TimeZone.cpp index 3d913db11..6601df958 100644 --- a/Tactility/Source/app/timezone/TimeZone.cpp +++ b/Tactility/Source/app/timezone/TimeZone.cpp @@ -1,5 +1,5 @@ -#include -#include +#include +#include #include #include diff --git a/Tactility/Source/app/touchcalibration/TouchCalibration.cpp b/Tactility/Source/app/touchcalibration/TouchCalibration.cpp index 01380492d..3f9d9cf05 100644 --- a/Tactility/Source/app/touchcalibration/TouchCalibration.cpp +++ b/Tactility/Source/app/touchcalibration/TouchCalibration.cpp @@ -6,8 +6,8 @@ #include #include -#include -#include +#include +#include #include #include diff --git a/Tactility/Source/app/trackball/TrackballSettings.cpp b/Tactility/Source/app/trackball/TrackballSettings.cpp index d85773514..5464b799e 100644 --- a/Tactility/Source/app/trackball/TrackballSettings.cpp +++ b/Tactility/Source/app/trackball/TrackballSettings.cpp @@ -2,8 +2,8 @@ #include -#include -#include +#include +#include #include #include diff --git a/Tactility/Source/app/usbsettings/UsbSettings.cpp b/Tactility/Source/app/usbsettings/UsbSettings.cpp index ae8aacfbb..210379d30 100644 --- a/Tactility/Source/app/usbsettings/UsbSettings.cpp +++ b/Tactility/Source/app/usbsettings/UsbSettings.cpp @@ -5,7 +5,7 @@ #include -#include +#include #define TAG "usb_settings" diff --git a/Tactility/Source/app/webserversettings/WebServerSettings.cpp b/Tactility/Source/app/webserversettings/WebServerSettings.cpp index fc4916e3f..fa78e7972 100644 --- a/Tactility/Source/app/webserversettings/WebServerSettings.cpp +++ b/Tactility/Source/app/webserversettings/WebServerSettings.cpp @@ -12,7 +12,7 @@ #include #include -#include +#include #include #include diff --git a/Tactility/Source/app/wifimanage/View.cpp b/Tactility/Source/app/wifimanage/View.cpp index db712aaa7..0fda3a743 100644 --- a/Tactility/Source/app/wifimanage/View.cpp +++ b/Tactility/Source/app/wifimanage/View.cpp @@ -12,7 +12,7 @@ #include #include -#include +#include namespace tt::app::wifimanage { diff --git a/Tactility/Source/app/wifimanage/WifiManage.cpp b/Tactility/Source/app/wifimanage/WifiManage.cpp index 918b90a0a..1abc808c0 100644 --- a/Tactility/Source/app/wifimanage/WifiManage.cpp +++ b/Tactility/Source/app/wifimanage/WifiManage.cpp @@ -9,7 +9,7 @@ #include #include -#include +#include namespace tt::app::wifimanage { diff --git a/Tactility/Source/file/FileMutexLvgl.cpp b/Tactility/Source/file/FileMutexLvgl.cpp index 0437a2584..e22fc8ed7 100644 --- a/Tactility/Source/file/FileMutexLvgl.cpp +++ b/Tactility/Source/file/FileMutexLvgl.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include constexpr auto* TAG = "file_mutex_lvgl"; diff --git a/Tactility/Source/lvgl/LvglSync.cpp b/Tactility/Source/lvgl/LvglSync.cpp index e28ac4f70..72d6c59af 100644 --- a/Tactility/Source/lvgl/LvglSync.cpp +++ b/Tactility/Source/lvgl/LvglSync.cpp @@ -1,7 +1,7 @@ #include "Tactility/lvgl/LvglSync.h" #include -#include +#include namespace tt::lvgl { diff --git a/Tactility/Source/lvgl/SliderBox.cpp b/Tactility/Source/lvgl/SliderBox.cpp index eab358159..515af1c9c 100644 --- a/Tactility/Source/lvgl/SliderBox.cpp +++ b/Tactility/Source/lvgl/SliderBox.cpp @@ -2,7 +2,7 @@ #include -#include +#include namespace tt::lvgl { diff --git a/Tactility/Source/lvgl/Statusbar.cpp b/Tactility/Source/lvgl/Statusbar.cpp index 017ed1782..d1a0aba4f 100644 --- a/Tactility/Source/lvgl/Statusbar.cpp +++ b/Tactility/Source/lvgl/Statusbar.cpp @@ -12,8 +12,8 @@ #include #include -#include -#include +#include +#include #include #include diff --git a/Tactility/Source/lvgl/Toolbar.cpp b/Tactility/Source/lvgl/Toolbar.cpp index 61911487c..e0501eaa7 100644 --- a/Tactility/Source/lvgl/Toolbar.cpp +++ b/Tactility/Source/lvgl/Toolbar.cpp @@ -9,8 +9,8 @@ #include #include -#include -#include +#include +#include namespace tt::lvgl { diff --git a/Tactility/Source/lvgl/wrappers/button.cpp b/Tactility/Source/lvgl/wrappers/button.cpp index 0dbbb52e9..ba584e2d9 100644 --- a/Tactility/Source/lvgl/wrappers/button.cpp +++ b/Tactility/Source/lvgl/wrappers/button.cpp @@ -2,7 +2,7 @@ #include -#include +#include extern "C" { diff --git a/Tactility/Source/lvgl/wrappers/dropdown.cpp b/Tactility/Source/lvgl/wrappers/dropdown.cpp index 803ddad2e..ad15e4704 100644 --- a/Tactility/Source/lvgl/wrappers/dropdown.cpp +++ b/Tactility/Source/lvgl/wrappers/dropdown.cpp @@ -2,7 +2,7 @@ #include -#include +#include extern "C" { diff --git a/Tactility/Source/lvgl/wrappers/list.cpp b/Tactility/Source/lvgl/wrappers/list.cpp index e1a0fa878..d297f5292 100644 --- a/Tactility/Source/lvgl/wrappers/list.cpp +++ b/Tactility/Source/lvgl/wrappers/list.cpp @@ -2,7 +2,7 @@ #include -#include +#include extern "C" { diff --git a/Tactility/Source/lvgl/wrappers/obj.cpp b/Tactility/Source/lvgl/wrappers/obj.cpp index 93494a3e5..914808665 100644 --- a/Tactility/Source/lvgl/wrappers/obj.cpp +++ b/Tactility/Source/lvgl/wrappers/obj.cpp @@ -2,7 +2,7 @@ #include -#include +#include extern "C" { diff --git a/Tactility/Source/lvgl/wrappers/switch.cpp b/Tactility/Source/lvgl/wrappers/switch.cpp index ef2be05b3..f11d8eb0e 100644 --- a/Tactility/Source/lvgl/wrappers/switch.cpp +++ b/Tactility/Source/lvgl/wrappers/switch.cpp @@ -2,7 +2,7 @@ #include -#include +#include extern "C" { diff --git a/Tactility/Source/lvgl/wrappers/textarea.cpp b/Tactility/Source/lvgl/wrappers/textarea.cpp index 612fabe7a..22acafe90 100644 --- a/Tactility/Source/lvgl/wrappers/textarea.cpp +++ b/Tactility/Source/lvgl/wrappers/textarea.cpp @@ -2,7 +2,7 @@ #include -#include +#include #include diff --git a/Tactility/Source/service/displayidle/DisplayIdle.cpp b/Tactility/Source/service/displayidle/DisplayIdle.cpp index 9a3a82d0d..3ef86869c 100644 --- a/Tactility/Source/service/displayidle/DisplayIdle.cpp +++ b/Tactility/Source/service/displayidle/DisplayIdle.cpp @@ -16,7 +16,7 @@ #include #include #include -#include +#include namespace tt::service::displayidle { diff --git a/Tactility/Source/service/gui/GuiService.cpp b/Tactility/Source/service/gui/GuiService.cpp index c2ec0fb61..cb412c96e 100644 --- a/Tactility/Source/service/gui/GuiService.cpp +++ b/Tactility/Source/service/gui/GuiService.cpp @@ -12,7 +12,7 @@ #include #include -#include +#include namespace tt::service::gui { diff --git a/Tactility/Source/service/keyboardidle/KeyboardIdle.cpp b/Tactility/Source/service/keyboardidle/KeyboardIdle.cpp index 3ab69161c..fa3d70fbc 100644 --- a/Tactility/Source/service/keyboardidle/KeyboardIdle.cpp +++ b/Tactility/Source/service/keyboardidle/KeyboardIdle.cpp @@ -12,7 +12,7 @@ #include #include #include -#include +#include namespace tt::service::keyboardidle { diff --git a/Tactility/Source/service/memorychecker/MemoryCheckerService.cpp b/Tactility/Source/service/memorychecker/MemoryCheckerService.cpp index 79cc3b712..3ed14fa7f 100644 --- a/Tactility/Source/service/memorychecker/MemoryCheckerService.cpp +++ b/Tactility/Source/service/memorychecker/MemoryCheckerService.cpp @@ -3,7 +3,7 @@ #include #include -#include +#include #include namespace tt::service::memorychecker { diff --git a/Tactility/Source/service/statusbar/Statusbar.cpp b/Tactility/Source/service/statusbar/Statusbar.cpp index 968c6006e..b8b97fcdd 100644 --- a/Tactility/Source/service/statusbar/Statusbar.cpp +++ b/Tactility/Source/service/statusbar/Statusbar.cpp @@ -22,8 +22,8 @@ #include #include -#include -#include +#include +#include #include @@ -268,8 +268,8 @@ class StatusbarService final : public Service { } void update() { - if (module_is_started(&lvgl_module)) { - if (lvgl_try_lock(100)) { + if (lvgl_is_running()) { + if (lvgl_try_lock(200)) { updateGpsIcon(); updateBluetoothIcon(); updateWifiIcon(); diff --git a/Tactility/Source/service/webserver/WebServerService.cpp b/Tactility/Source/service/webserver/WebServerService.cpp index 4062da91b..fd15dd8d2 100644 --- a/Tactility/Source/service/webserver/WebServerService.cpp +++ b/Tactility/Source/service/webserver/WebServerService.cpp @@ -30,7 +30,7 @@ #include #endif -#include +#include #include #include diff --git a/Tactility/Source/service/wifi/WifiApSettings.cpp b/Tactility/Source/service/wifi/WifiApSettings.cpp index 2c0860328..4cf0ff7ce 100644 --- a/Tactility/Source/service/wifi/WifiApSettings.cpp +++ b/Tactility/Source/service/wifi/WifiApSettings.cpp @@ -4,7 +4,7 @@ #include -#include +#include #include diff --git a/Tests/SdkIntegration/main/Source/main.c b/Tests/SdkIntegration/main/Source/main.c index 24a7b29cd..9762b833c 100644 --- a/Tests/SdkIntegration/main/Source/main.c +++ b/Tests/SdkIntegration/main/Source/main.c @@ -22,7 +22,7 @@ #include #include -#include +#include #include #include diff --git a/Tests/crypt-module/Source/CryptTest.cpp b/Tests/crypt-module/Source/CryptTest.cpp index 3d4678138..c30be4d07 100644 --- a/Tests/crypt-module/Source/CryptTest.cpp +++ b/Tests/crypt-module/Source/CryptTest.cpp @@ -1,5 +1,5 @@ #include "doctest.h" -#include +#include #include TEST_CASE("crypt_encrypt followed by crypt_decrypt returns the original data") { diff --git a/Tests/crypt-module/Source/HashTest.cpp b/Tests/crypt-module/Source/HashTest.cpp index 50af47251..cea612eff 100644 --- a/Tests/crypt-module/Source/HashTest.cpp +++ b/Tests/crypt-module/Source/HashTest.cpp @@ -1,5 +1,5 @@ #include "doctest.h" -#include +#include #include TEST_CASE("djb2_str of an empty string returns the DJB2 seed value") { From 0654a67d71a59b0b87bec356eaca5d00476e7856 Mon Sep 17 00:00:00 2001 From: Ken Van Hoeylandt Date: Sat, 25 Jul 2026 21:39:43 +0200 Subject: [PATCH 2/8] Fix for build --- Modules/lvgl-module/source/arch/lvgl_posix.c | 1 + 1 file changed, 1 insertion(+) diff --git a/Modules/lvgl-module/source/arch/lvgl_posix.c b/Modules/lvgl-module/source/arch/lvgl_posix.c index 42e33ad93..f65ac158f 100644 --- a/Modules/lvgl-module/source/arch/lvgl_posix.c +++ b/Modules/lvgl-module/source/arch/lvgl_posix.c @@ -11,6 +11,7 @@ #include #include +#include extern struct LvglModuleConfig lvgl_module_config; extern void lvgl_devices_attach(); From f519788fc99bbf47daf6db9c3cf49a1f3a9c99a1 Mon Sep 17 00:00:00 2001 From: Ken Van Hoeylandt Date: Sat, 25 Jul 2026 21:43:08 +0200 Subject: [PATCH 3/8] Fix --- Modules/lvgl-module/source/arch/lvgl_posix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/lvgl-module/source/arch/lvgl_posix.c b/Modules/lvgl-module/source/arch/lvgl_posix.c index f65ac158f..f08abc663 100644 --- a/Modules/lvgl-module/source/arch/lvgl_posix.c +++ b/Modules/lvgl-module/source/arch/lvgl_posix.c @@ -11,7 +11,7 @@ #include #include -#include +#include extern struct LvglModuleConfig lvgl_module_config; extern void lvgl_devices_attach(); From ddef36b221124f5d37cb406290c16f49505a30d2 Mon Sep 17 00:00:00 2001 From: Ken Van Hoeylandt Date: Sat, 25 Jul 2026 21:54:18 +0200 Subject: [PATCH 4/8] Improvements --- Modules/crypt-module/include/crypt/module.h | 2 + Modules/crypt-module/source/module.cpp | 2 +- Modules/lvgl-module/include/lvgl/lvgl.h | 6 +-- .../lvgl-module/include/lvgl/lvgl_display.h | 8 +-- Modules/lvgl-module/include/lvgl/lvgl_fonts.h | 12 ++--- .../lvgl-module/include/lvgl/lvgl_keyboard.h | 8 +-- .../lvgl-module/include/lvgl/lvgl_pointer.h | 11 ++-- .../Source/app/gpssettings/GpsSettings.cpp | 53 +++++++++---------- 8 files changed, 53 insertions(+), 49 deletions(-) diff --git a/Modules/crypt-module/include/crypt/module.h b/Modules/crypt-module/include/crypt/module.h index 0d3ece58e..0055381c5 100644 --- a/Modules/crypt-module/include/crypt/module.h +++ b/Modules/crypt-module/include/crypt/module.h @@ -1,6 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 #pragma once +#include + #ifdef __cplusplus extern "C" { #endif diff --git a/Modules/crypt-module/source/module.cpp b/Modules/crypt-module/source/module.cpp index aa93b7504..501c6cbd5 100644 --- a/Modules/crypt-module/source/module.cpp +++ b/Modules/crypt-module/source/module.cpp @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 #include #include -#include +#include extern "C" { diff --git a/Modules/lvgl-module/include/lvgl/lvgl.h b/Modules/lvgl-module/include/lvgl/lvgl.h index f9badc133..1aabbfad8 100644 --- a/Modules/lvgl-module/include/lvgl/lvgl.h +++ b/Modules/lvgl-module/include/lvgl/lvgl.h @@ -1,13 +1,13 @@ // SPDX-License-Identifier: Apache-2.0 #pragma once +#include +#include + #ifdef __cplusplus extern "C" { #endif -#include -#include - /** Affects LVGL widget style */ enum UiDensity { /** Ideal for very small non-touch screen devices (e.g. Waveshare S3 LCD 1.3") */ diff --git a/Modules/lvgl-module/include/lvgl/lvgl_display.h b/Modules/lvgl-module/include/lvgl/lvgl_display.h index 854de130e..2e7b26232 100644 --- a/Modules/lvgl-module/include/lvgl/lvgl_display.h +++ b/Modules/lvgl-module/include/lvgl/lvgl_display.h @@ -1,10 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 #pragma once -#ifdef __cplusplus -extern "C" { -#endif - #include #include @@ -13,6 +9,10 @@ extern "C" { #include #include +#ifdef __cplusplus +extern "C" { +#endif + /** * @brief Configuration for binding a kernel DisplayApi device to an lv_display_t. */ diff --git a/Modules/lvgl-module/include/lvgl/lvgl_fonts.h b/Modules/lvgl-module/include/lvgl/lvgl_fonts.h index 2420235bf..b2d8fdbec 100644 --- a/Modules/lvgl-module/include/lvgl/lvgl_fonts.h +++ b/Modules/lvgl-module/include/lvgl/lvgl_fonts.h @@ -14,17 +14,17 @@ enum LvglFontSize { FONT_SIZE_LARGE, }; -const lv_font_t* lvgl_get_shared_icon_font(); -uint32_t lvgl_get_shared_icon_font_height(); +const lv_font_t* lvgl_get_shared_icon_font(void); +uint32_t lvgl_get_shared_icon_font_height(void); const lv_font_t* lvgl_get_text_font(enum LvglFontSize font_size); uint32_t lvgl_get_text_font_height(enum LvglFontSize font_size); -const lv_font_t* lvgl_get_launcher_icon_font(); -uint32_t lvgl_get_launcher_icon_font_height(); +const lv_font_t* lvgl_get_launcher_icon_font(void); +uint32_t lvgl_get_launcher_icon_font_height(void); -const lv_font_t* lvgl_get_statusbar_icon_font(); -uint32_t lvgl_get_statusbar_icon_font_height(); +const lv_font_t* lvgl_get_statusbar_icon_font(void); +uint32_t lvgl_get_statusbar_icon_font_height(void); #ifdef __cplusplus } diff --git a/Modules/lvgl-module/include/lvgl/lvgl_keyboard.h b/Modules/lvgl-module/include/lvgl/lvgl_keyboard.h index 25a7d3b8c..e6fc7e557 100644 --- a/Modules/lvgl-module/include/lvgl/lvgl_keyboard.h +++ b/Modules/lvgl-module/include/lvgl/lvgl_keyboard.h @@ -1,15 +1,15 @@ // SPDX-License-Identifier: Apache-2.0 #pragma once -#ifdef __cplusplus -extern "C" { -#endif - #include #include #include +#ifdef __cplusplus +extern "C" { +#endif + /** * @brief Creates an lv_indev_t bound to the given KEYBOARD_TYPE device and registers a read callback * that polls the device through its KeyboardApi. diff --git a/Modules/lvgl-module/include/lvgl/lvgl_pointer.h b/Modules/lvgl-module/include/lvgl/lvgl_pointer.h index b42495941..17e77ae60 100644 --- a/Modules/lvgl-module/include/lvgl/lvgl_pointer.h +++ b/Modules/lvgl-module/include/lvgl/lvgl_pointer.h @@ -1,15 +1,18 @@ // SPDX-License-Identifier: Apache-2.0 #pragma once -#ifdef __cplusplus -extern "C" { -#endif - #include #include #include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + /** * @brief Linear per-axis calibration range for raw pointer coordinates. * diff --git a/Tactility/Source/app/gpssettings/GpsSettings.cpp b/Tactility/Source/app/gpssettings/GpsSettings.cpp index 6d58690e8..453312453 100644 --- a/Tactility/Source/app/gpssettings/GpsSettings.cpp +++ b/Tactility/Source/app/gpssettings/GpsSettings.cpp @@ -175,35 +175,34 @@ class GpsSettingsApp final : public App { } void updateDeviceStates() { - if (lvgl_try_lock(100 / portTICK_PERIOD_MS)) { - for (auto& row : deviceRows) { - const char* text = "Start"; - bool enabled = true; - - if (device_is_ready(row.device)) { - switch (gps_get_state(row.device)) { - case GPS_STATE_PENDING_ON: - text = "Starting..."; - enabled = false; - break; - case GPS_STATE_PENDING_OFF: - text = "Stopping..."; - enabled = false; - break; - default: - text = "Stop"; - enabled = true; - break; - } - } - - lv_label_set_text(row.buttonLabel, text); - if (enabled) { - lv_obj_remove_state(row.button, LV_STATE_DISABLED); - } else { - lv_obj_add_state(row.button, LV_STATE_DISABLED); + lvgl_lock(); + for (const auto& row : deviceRows) { + const char* text = "Start"; + bool enabled = true; + + if (device_is_ready(row.device)) { + switch (gps_get_state(row.device)) { + case GPS_STATE_PENDING_ON: + text = "Starting..."; + enabled = false; + break; + case GPS_STATE_PENDING_OFF: + text = "Stopping..."; + enabled = false; + break; + default: + text = "Stop"; + enabled = true; + break; } } + lvgl_lock(); + lv_label_set_text(row.buttonLabel, text); + if (enabled) { + lv_obj_remove_state(row.button, LV_STATE_DISABLED); + } else { + lv_obj_add_state(row.button, LV_STATE_DISABLED); + } } lvgl_unlock(); } From f52dd3656292880bc50a0d6d5b4d7df74cbbaa4d Mon Sep 17 00:00:00 2001 From: Ken Van Hoeylandt Date: Sat, 25 Jul 2026 22:02:23 +0200 Subject: [PATCH 5/8] PR feedback --- Tactility/Source/app/gpssettings/GpsSettings.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Tactility/Source/app/gpssettings/GpsSettings.cpp b/Tactility/Source/app/gpssettings/GpsSettings.cpp index 453312453..e54f0a23e 100644 --- a/Tactility/Source/app/gpssettings/GpsSettings.cpp +++ b/Tactility/Source/app/gpssettings/GpsSettings.cpp @@ -196,7 +196,6 @@ class GpsSettingsApp final : public App { break; } } - lvgl_lock(); lv_label_set_text(row.buttonLabel, text); if (enabled) { lv_obj_remove_state(row.button, LV_STATE_DISABLED); From 7bd646ee9374d4564ae7647bcdfab386341ee5e2 Mon Sep 17 00:00:00 2001 From: Ken Van Hoeylandt Date: Sat, 25 Jul 2026 22:23:38 +0200 Subject: [PATCH 6/8] Remove unused driver --- .../tactility/drivers/display_placeholder.h | 16 ------------ .../source/drivers/display_placeholder.cpp | 26 ------------------- 2 files changed, 42 deletions(-) delete mode 100644 TactilityKernel/include/tactility/drivers/display_placeholder.h delete mode 100644 TactilityKernel/source/drivers/display_placeholder.cpp diff --git a/TactilityKernel/include/tactility/drivers/display_placeholder.h b/TactilityKernel/include/tactility/drivers/display_placeholder.h deleted file mode 100644 index 9415e8333..000000000 --- a/TactilityKernel/include/tactility/drivers/display_placeholder.h +++ /dev/null @@ -1,16 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -#pragma once - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct DisplayPlaceholderConfig { - uint8_t _unused; -}; - -#ifdef __cplusplus -} -#endif diff --git a/TactilityKernel/source/drivers/display_placeholder.cpp b/TactilityKernel/source/drivers/display_placeholder.cpp deleted file mode 100644 index 948acdd47..000000000 --- a/TactilityKernel/source/drivers/display_placeholder.cpp +++ /dev/null @@ -1,26 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -#include -#include -#include -#include -#include - -extern "C" { - -static error_t start(Device*) { return ERROR_NONE; } -static error_t stop(Device*) { return ERROR_NONE; } - -extern Module root_module; - -Driver display_placeholder_driver = { - .name = "display_placeholder", - .compatible = (const char*[]) { "display-placeholder", nullptr }, - .start_device = start, - .stop_device = stop, - .api = nullptr, - .device_type = &DISPLAY_TYPE, - .owner = &root_module, - .internal = nullptr -}; - -} From 2b706c29e2cec7356634e07ee0777491a65ee830 Mon Sep 17 00:00:00 2001 From: Ken Van Hoeylandt Date: Sat, 25 Jul 2026 22:23:49 +0200 Subject: [PATCH 7/8] Update symbols --- TactilityKernel/source/kernel_init.cpp | 2 - .../source/{kernel_symbols.c => symbols.c} | 49 ++++++++++++++++--- 2 files changed, 41 insertions(+), 10 deletions(-) rename TactilityKernel/source/{kernel_symbols.c => symbols.c} (93%) diff --git a/TactilityKernel/source/kernel_init.cpp b/TactilityKernel/source/kernel_init.cpp index 0aad44468..6a84306d8 100644 --- a/TactilityKernel/source/kernel_init.cpp +++ b/TactilityKernel/source/kernel_init.cpp @@ -14,8 +14,6 @@ extern const ModuleSymbol KERNEL_SYMBOLS[]; static error_t start() { extern Driver root_driver; if (driver_construct_add(&root_driver) != ERROR_NONE) return ERROR_RESOURCE; - extern Driver display_placeholder_driver; - if (driver_construct_add(&display_placeholder_driver) != ERROR_NONE) return ERROR_RESOURCE; extern Driver battery_sense_driver; if (driver_construct_add(&battery_sense_driver) != ERROR_NONE) return ERROR_RESOURCE; extern Driver battery_sense_power_supply_driver; diff --git a/TactilityKernel/source/kernel_symbols.c b/TactilityKernel/source/symbols.c similarity index 93% rename from TactilityKernel/source/kernel_symbols.c rename to TactilityKernel/source/symbols.c index c8e86f967..c3e8384d7 100644 --- a/TactilityKernel/source/kernel_symbols.c +++ b/TactilityKernel/source/symbols.c @@ -13,26 +13,30 @@ #include #include #include -#include -#include -#include #include #include #include +#include #include #include #include #include #include #include +#include +#include #include #include #include #include #include +#include +#include +#include #include #include #include +#include #include #include #include @@ -151,6 +155,17 @@ const struct ModuleSymbol KERNEL_SYMBOLS[] = { DEFINE_MODULE_SYMBOL(display_get_frame_buffer_count), DEFINE_MODULE_SYMBOL(display_get_backlight), DEFINE_MODULE_SYMBOL(DISPLAY_TYPE), + // file_mutex + DEFINE_MODULE_SYMBOL(file_mutex_register), + DEFINE_MODULE_SYMBOL(file_mutex_get), + DEFINE_MODULE_SYMBOL(file_mutex_lock), + DEFINE_MODULE_SYMBOL(file_mutex_try_lock), + DEFINE_MODULE_SYMBOL(file_mutex_unlock), + // file system + DEFINE_MODULE_SYMBOL(file_system_mount), + DEFINE_MODULE_SYMBOL(file_system_unmount), + DEFINE_MODULE_SYMBOL(file_system_is_mounted), + DEFINE_MODULE_SYMBOL(file_system_get_path), // drivers/gpio_controller DEFINE_MODULE_SYMBOL(gpio_descriptor_acquire), DEFINE_MODULE_SYMBOL(gpio_descriptor_release), @@ -174,6 +189,12 @@ const struct ModuleSymbol KERNEL_SYMBOLS[] = { DEFINE_MODULE_SYMBOL(grove_set_mode), DEFINE_MODULE_SYMBOL(grove_get_mode), DEFINE_MODULE_SYMBOL(GROVE_TYPE), + // drivers/haptic + DEFINE_MODULE_SYMBOL(haptic_set_waveform), + DEFINE_MODULE_SYMBOL(haptic_select_library), + DEFINE_MODULE_SYMBOL(haptic_start_playback), + DEFINE_MODULE_SYMBOL(haptic_stop_playback), + DEFINE_MODULE_SYMBOL(HAPTIC_TYPE), // drivers/i2c_controller DEFINE_MODULE_SYMBOL(i2c_controller_read), DEFINE_MODULE_SYMBOL(i2c_controller_write), @@ -230,6 +251,23 @@ const struct ModuleSymbol KERNEL_SYMBOLS[] = { DEFINE_MODULE_SYMBOL(power_supply_supports_power_off), DEFINE_MODULE_SYMBOL(power_supply_power_off), DEFINE_MODULE_SYMBOL(POWER_SUPPLY_TYPE), + // drivers/pwm + DEFINE_MODULE_SYMBOL(pwm_set_period), + DEFINE_MODULE_SYMBOL(pwm_get_period), + DEFINE_MODULE_SYMBOL(pwm_set_duty), + DEFINE_MODULE_SYMBOL(pwm_get_duty), + DEFINE_MODULE_SYMBOL(pwm_set_inverted), + DEFINE_MODULE_SYMBOL(pwm_is_inverted), + DEFINE_MODULE_SYMBOL(pwm_enable), + DEFINE_MODULE_SYMBOL(pwm_disable), + DEFINE_MODULE_SYMBOL(pwm_is_enabled), + DEFINE_MODULE_SYMBOL(PWM_TYPE), + // drivers/rgb_led + DEFINE_MODULE_SYMBOL(rgb_led_set_color), + DEFINE_MODULE_SYMBOL(rgb_led_get_color), + DEFINE_MODULE_SYMBOL(rgb_led_enable), + DEFINE_MODULE_SYMBOL(rgb_led_disable), + DEFINE_MODULE_SYMBOL(RGB_LED_TYPE), // drivers/root DEFINE_MODULE_SYMBOL(root_is_model), // drivers/rtc @@ -383,11 +421,6 @@ const struct ModuleSymbol KERNEL_SYMBOLS[] = { DEFINE_MODULE_SYMBOL(timer_set_callback_priority), // error DEFINE_MODULE_SYMBOL(error_to_string), - // file system - DEFINE_MODULE_SYMBOL(file_system_mount), - DEFINE_MODULE_SYMBOL(file_system_unmount), - DEFINE_MODULE_SYMBOL(file_system_is_mounted), - DEFINE_MODULE_SYMBOL(file_system_get_path), // log #ifndef ESP_PLATFORM DEFINE_MODULE_SYMBOL(log_generic), From 7deeda5def51577c61a1c442056744a9b971accc Mon Sep 17 00:00:00 2001 From: Ken Van Hoeylandt Date: Sat, 25 Jul 2026 22:28:59 +0200 Subject: [PATCH 8/8] Update ideas.md --- Documentation/ideas.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/ideas.md b/Documentation/ideas.md index ae2d7b0d3..7039ee047 100644 --- a/Documentation/ideas.md +++ b/Documentation/ideas.md @@ -13,6 +13,7 @@ ## Higher Priority +- Improve kernel_init.cpp (and other modules): create driver_ensure_added() and driver_ensure_destructed() - Remove and migrate `Include/Tactility/kernel/Kernel.h` into `tactility/delay.h` - Drivers/audio-codec-module is not a module. Move it somewhere else. Or make it an actual module. - LilyGO T-Dongle S3: 1 button control, stop auto-launching web server