From 0d7d644ab2d088cc7374c7ef4a0ac27f117573d4 Mon Sep 17 00:00:00 2001 From: Ken Van Hoeylandt Date: Sun, 26 Jul 2026 13:36:32 +0200 Subject: [PATCH 1/3] Replace tt_lock with file_mutex --- Apps/Diceware/main/Source/Diceware.cpp | 23 +++---- .../main/Source/EpubReaderAsync.cpp | 16 ++--- .../EspNowBridge/main/Source/EspNowBridge.cpp | 1 - Apps/TodoList/main/Source/TodoList.cpp | 68 +++++++++---------- 4 files changed, 48 insertions(+), 60 deletions(-) diff --git a/Apps/Diceware/main/Source/Diceware.cpp b/Apps/Diceware/main/Source/Diceware.cpp index 5830935..f3ba674 100644 --- a/Apps/Diceware/main/Source/Diceware.cpp +++ b/Apps/Diceware/main/Source/Diceware.cpp @@ -1,7 +1,7 @@ #include "Diceware.h" #include -#include +#include #include #include @@ -39,18 +39,17 @@ static std::string readWordAtLine(const AppHandle handle, const int lineIndex) { return ""; } - auto lock = tt_lock_alloc_for_path(path); + struct FileMutex mutex; + file_mutex_get(&mutex, path); std::string word; - if (tt_lock_acquire(lock, tt::kernel::MAX_TICKS)) { - FILE* file = fopen(path, "r"); - if (file != nullptr) { - skipNewlines(file, lineIndex); - word = readWord(file); - fclose(file); - } else { ESP_LOGE(TAG, "Failed to open %s", path); } - tt_lock_release(lock); - } else { ESP_LOGE(TAG, "Failed to acquire lock for %s", path); } - tt_lock_free(lock); + file_mutex_lock(&mutex); + FILE* file = fopen(path, "r"); + if (file != nullptr) { + skipNewlines(file, lineIndex); + word = readWord(file); + fclose(file); + } else { ESP_LOGE(TAG, "Failed to open %s", path); } + file_mutex_unlock(&mutex); return word; } diff --git a/Apps/EpubReader/main/Source/EpubReaderAsync.cpp b/Apps/EpubReader/main/Source/EpubReaderAsync.cpp index a912472..655d4fb 100644 --- a/Apps/EpubReader/main/Source/EpubReaderAsync.cpp +++ b/Apps/EpubReader/main/Source/EpubReaderAsync.cpp @@ -1,6 +1,6 @@ #include "EpubReader.h" #include -#include +#include #include #include #include @@ -115,14 +115,9 @@ void EpubReader::backgroundOpenTask(void* data) { // Acquire the filesystem lock before any SD card I/O - prevents concurrent // SDMMC access from the background and LVGL tasks (bus errors 0x107/0x108). - auto lock = tt_lock_alloc_for_path(a->filePath.c_str()); - if (!tt_lock_acquire(lock, tt::kernel::MAX_TICKS)) { - LOG_E(TAG, "FS lock timed out, skipping open: %s", a->filePath.c_str()); - tt_lock_free(lock); - lv_async_call(asyncOpenComplete, a); - vTaskDelete(nullptr); - return; - } + struct FileMutex mutex; + file_mutex_get(&mutex, a->filePath.c_str()); + file_mutex_lock(&mutex); if (isTextFile(a->filePath)) { // Read the entire text file here (under the lock) so asyncOpenComplete @@ -146,8 +141,7 @@ void EpubReader::backgroundOpenTask(void* data) { a->epub = EpubService::open(a->filePath); } - tt_lock_release(lock); - tt_lock_free(lock); + file_mutex_unlock(&mutex); // Signal the LVGL task that the work is done lv_async_call(asyncOpenComplete, a); diff --git a/Apps/EspNowBridge/main/Source/EspNowBridge.cpp b/Apps/EspNowBridge/main/Source/EspNowBridge.cpp index a56fa21..d8120cf 100644 --- a/Apps/EspNowBridge/main/Source/EspNowBridge.cpp +++ b/Apps/EspNowBridge/main/Source/EspNowBridge.cpp @@ -8,7 +8,6 @@ #include #include #include -#include #include #include diff --git a/Apps/TodoList/main/Source/TodoList.cpp b/Apps/TodoList/main/Source/TodoList.cpp index a7d3f9f..72ce485 100644 --- a/Apps/TodoList/main/Source/TodoList.cpp +++ b/Apps/TodoList/main/Source/TodoList.cpp @@ -1,6 +1,6 @@ #include "TodoList.h" #include -#include +#include #include #include #include @@ -60,52 +60,48 @@ void TodoList::saveTodos() { char savePath[256]; if (!getSaveFilePath(savePath, sizeof(savePath))) return; - auto lock = tt_lock_alloc_for_path(savePath); - if (!lock) return; - if (tt_lock_acquire(lock, tt::kernel::MAX_TICKS)) { - FILE* f = fopen(savePath, "w"); - if (f) { - for (int i = 0; i < count; i++) { - fprintf(f, "%c %s\n", items[i].done ? '+' : '-', items[i].text); - } - fclose(f); + struct FileMutex mutex; + file_mutex_get(&mutex, savePath); + file_mutex_lock(&mutex); + FILE* f = fopen(savePath, "w"); + if (f) { + for (int i = 0; i < count; i++) { + fprintf(f, "%c %s\n", items[i].done ? '+' : '-', items[i].text); } - tt_lock_release(lock); + fclose(f); } - tt_lock_free(lock); + file_mutex_unlock(&mutex); } void TodoList::loadTodos() { char savePath[256]; if (!getSaveFilePath(savePath, sizeof(savePath))) return; - auto lock = tt_lock_alloc_for_path(savePath); - if (!lock) return; - - if (tt_lock_acquire(lock, tt::kernel::MAX_TICKS)) { - count = 0; - FILE* f = fopen(savePath, "r"); - if (f) { - char line[MAX_TEXT_LEN + 4]; - while (count < MAX_TODOS && fgets(line, sizeof(line), f)) { - size_t len = strlen(line); - while (len > 0 && (line[len - 1] == '\n' || line[len - 1] == '\r')) { - line[--len] = '\0'; - } - - if (len < 3 || line[1] != ' ') continue; - - TodoItem* item = &items[count]; - item->done = (line[0] == '+'); - strncpy(item->text, &line[2], MAX_TEXT_LEN - 1); - item->text[MAX_TEXT_LEN - 1] = '\0'; - count++; + struct FileMutex mutex; + file_mutex_get(&mutex, savePath); + + file_mutex_lock(&mutex); + count = 0; + FILE* f = fopen(savePath, "r"); + if (f) { + char line[MAX_TEXT_LEN + 4]; + while (count < MAX_TODOS && fgets(line, sizeof(line), f)) { + size_t len = strlen(line); + while (len > 0 && (line[len - 1] == '\n' || line[len - 1] == '\r')) { + line[--len] = '\0'; } - fclose(f); + + if (len < 3 || line[1] != ' ') continue; + + TodoItem* item = &items[count]; + item->done = (line[0] == '+'); + strncpy(item->text, &line[2], MAX_TEXT_LEN - 1); + item->text[MAX_TEXT_LEN - 1] = '\0'; + count++; } - tt_lock_release(lock); + fclose(f); } - tt_lock_free(lock); + file_mutex_unlock(&mutex); } /* ── UI Helpers ───────────────────────────────────────────────────── */ From 1651ebcf255b117e112b99e75463e9661a3c7399 Mon Sep 17 00:00:00 2001 From: Ken Van Hoeylandt Date: Sun, 26 Jul 2026 13:40:53 +0200 Subject: [PATCH 2/3] Replace tt_lvgl_keyboard.h with device.h and keyboard.h usages --- Apps/Breakout/main/Source/Breakout.cpp | 5 +++-- Apps/Magic8Ball/main/Source/Magic8Ball.cpp | 9 +++++---- Apps/MediaKeys/main/Source/MediaKeys.cpp | 10 +++++----- Apps/MediaKeys/main/Source/MediaKeys.h | 2 +- Apps/Snake/main/Source/SnakeUi.c | 7 ++++--- Apps/TodoList/main/Source/TodoList.cpp | 1 - Apps/TwoEleven/main/Source/TwoElevenUi.c | 7 ++++--- 7 files changed, 22 insertions(+), 19 deletions(-) diff --git a/Apps/Breakout/main/Source/Breakout.cpp b/Apps/Breakout/main/Source/Breakout.cpp index e7101ae..5bdd8ac 100644 --- a/Apps/Breakout/main/Source/Breakout.cpp +++ b/Apps/Breakout/main/Source/Breakout.cpp @@ -10,7 +10,8 @@ #include #include #include -#include +#include +#include #include #include @@ -1329,7 +1330,7 @@ void Breakout::updateMessage() { case GameState::Ready: { char buf[64]; const char* input_hint = "Touch"; - if (tt_lvgl_hardware_keyboard_is_available()) { + if (device_has_active_by_type(&KEYBOARD_TYPE)) { input_hint = "Space"; } if (level > 1) { diff --git a/Apps/Magic8Ball/main/Source/Magic8Ball.cpp b/Apps/Magic8Ball/main/Source/Magic8Ball.cpp index 02b4ecb..f3c9c49 100644 --- a/Apps/Magic8Ball/main/Source/Magic8Ball.cpp +++ b/Apps/Magic8Ball/main/Source/Magic8Ball.cpp @@ -1,6 +1,7 @@ #include "Magic8Ball.h" #include -#include +#include +#include #include #include @@ -35,7 +36,7 @@ static const char* responses[] = { #define NUM_RESPONSES (sizeof(responses) / sizeof(responses[0])) static const char* getInputHint() { - if (tt_lvgl_hardware_keyboard_is_available()) { + if (device_has_active_by_type(&KEYBOARD_TYPE)) { return "Touch or Space to ask Q to exit"; } return "Touch the ball to ask"; @@ -141,7 +142,7 @@ void Magic8Ball::onShow(AppHandle app, lv_obj_t* parent) { lv_obj_add_event_cb(ballObj, onBallClick, LV_EVENT_CLICKED, this); /* Keyboard support - no editing mode needed, just focus the ball */ - if (tt_lvgl_hardware_keyboard_is_available()) { + if (device_has_active_by_type(&KEYBOARD_TYPE)) { lv_group_t* grp = lv_group_get_default(); if (grp) { lv_group_add_obj(grp, ballObj); @@ -152,7 +153,7 @@ void Magic8Ball::onShow(AppHandle app, lv_obj_t* parent) { } void Magic8Ball::onHide(AppHandle app) { - if (tt_lvgl_hardware_keyboard_is_available() && ballObj) { + if (device_has_active_by_type(&KEYBOARD_TYPE) && ballObj) { lv_group_remove_obj(ballObj); } answerLabel = nullptr; diff --git a/Apps/MediaKeys/main/Source/MediaKeys.cpp b/Apps/MediaKeys/main/Source/MediaKeys.cpp index bd25559..6fca94d 100644 --- a/Apps/MediaKeys/main/Source/MediaKeys.cpp +++ b/Apps/MediaKeys/main/Source/MediaKeys.cpp @@ -165,7 +165,7 @@ void MediaKeys::btEventCallback(struct Device* /*device*/, void* context, struct // Radio dropped while we were active - revert UI LOG_I(TAG, "BT radio turned off, disabling HID"); if (lvgl_try_lock(1000)) { - if (tt_lvgl_hardware_keyboard_is_available()) self->exitKeyMode(); + if (device_has_active_by_type(&KEYBOARD_TYPE)) self->exitKeyMode(); self->_hidDevice = nullptr; self->_isEnabled = false; self->_radioEnabling = false; @@ -208,7 +208,7 @@ void MediaKeys::startHid() { } if (_mainWrapper) lv_obj_remove_flag(_mainWrapper, LV_OBJ_FLAG_HIDDEN); - if (tt_lvgl_hardware_keyboard_is_available()) enterKeyMode(); + if (device_has_active_by_type(&KEYBOARD_TYPE)) enterKeyMode(); } void MediaKeys::teardownBt() { @@ -276,7 +276,7 @@ void MediaKeys::handleSwitchToggle(bool enabled) { } } else { _radioEnabling = false; - if (tt_lvgl_hardware_keyboard_is_available()) exitKeyMode(); + if (device_has_active_by_type(&KEYBOARD_TYPE)) exitKeyMode(); // Explicit user toggle-off: stop HID cleanly (safe here since we're on the // LVGL task and the user intentionally disabled, so no race with app teardown). if (_hidDevice) bluetooth_hid_device_stop(_hidDevice); @@ -342,7 +342,7 @@ void MediaKeys::onShow(AppHandle appHandle, lv_obj_t* parent) { lv_obj_add_event_cb(_buttonMatrix, onButtonPressed, LV_EVENT_VALUE_CHANGED, this); // Physical keyboard support: key events on the matrix (entered when BT enabled, Q/Esc exits) - if (tt_lvgl_hardware_keyboard_is_available()) { + if (device_has_active_by_type(&KEYBOARD_TYPE)) { lv_obj_add_event_cb(_buttonMatrix, onKeyEvent, LV_EVENT_KEY, this); _keyHighlightTimer = lv_timer_create(onKeyHighlightTimer, 150, this); lv_timer_pause(_keyHighlightTimer); @@ -364,7 +364,7 @@ void MediaKeys::onShow(AppHandle appHandle, lv_obj_t* parent) { void MediaKeys::onHide(AppHandle /*appHandle*/) { _radioEnabling = false; _isEnabled = false; - if (tt_lvgl_hardware_keyboard_is_available()) exitKeyMode(); + if (device_has_active_by_type(&KEYBOARD_TYPE)) exitKeyMode(); teardownBt(); if (_keyHighlightTimer) { lv_timer_delete(_keyHighlightTimer); diff --git a/Apps/MediaKeys/main/Source/MediaKeys.h b/Apps/MediaKeys/main/Source/MediaKeys.h index eedc5be..3fd70ff 100644 --- a/Apps/MediaKeys/main/Source/MediaKeys.h +++ b/Apps/MediaKeys/main/Source/MediaKeys.h @@ -5,8 +5,8 @@ #include #include #include +#include #include -#include #include class MediaKeys final : public App { diff --git a/Apps/Snake/main/Source/SnakeUi.c b/Apps/Snake/main/Source/SnakeUi.c index e828460..9f448ab 100644 --- a/Apps/Snake/main/Source/SnakeUi.c +++ b/Apps/Snake/main/Source/SnakeUi.c @@ -7,7 +7,8 @@ #include #include #include -#include +#include +#include // Forward declarations static void game_play_event(lv_event_t* e); @@ -36,7 +37,7 @@ static void delete_event(lv_event_t* e) { } // Restore edit mode and remove from group before cleanup - if (tt_lvgl_hardware_keyboard_is_available()) { + if (device_has_active_by_type(&KEYBOARD_TYPE)) { lv_group_t* group = lv_group_get_default(); if (group) lv_group_set_editing(group, false); lv_group_remove_obj(game->container); @@ -397,7 +398,7 @@ lv_obj_t* snake_create(lv_obj_t* parent, uint16_t cell_size, bool wall_collision lv_obj_add_event_cb(obj, delete_event, LV_EVENT_DELETE, NULL); // Set up keyboard focus if available - if (tt_lvgl_hardware_keyboard_is_available()) { + if (device_has_active_by_type(&KEYBOARD_TYPE)) { lv_group_t* group = lv_group_get_default(); if (group) { lv_group_add_obj(group, game->container); diff --git a/Apps/TodoList/main/Source/TodoList.cpp b/Apps/TodoList/main/Source/TodoList.cpp index 72ce485..cd4d8bd 100644 --- a/Apps/TodoList/main/Source/TodoList.cpp +++ b/Apps/TodoList/main/Source/TodoList.cpp @@ -3,7 +3,6 @@ #include #include #include -#include #include #include #include diff --git a/Apps/TwoEleven/main/Source/TwoElevenUi.c b/Apps/TwoEleven/main/Source/TwoElevenUi.c index e342301..ff76ed0 100644 --- a/Apps/TwoEleven/main/Source/TwoElevenUi.c +++ b/Apps/TwoEleven/main/Source/TwoElevenUi.c @@ -3,7 +3,8 @@ #include "TwoElevenHelpers.h" #include #include -#include +#include +#include static void game_play_event(lv_event_t * e); static void btnm_event_cb(lv_event_t * e); @@ -18,7 +19,7 @@ static void delete_event(lv_event_t * e) twoeleven_t * game_2048 = (twoeleven_t *)lv_obj_get_user_data(obj); if (game_2048) { // Restore edit mode and remove from group before cleanup - if (tt_lvgl_hardware_keyboard_is_available()) { + if (device_has_active_by_type(&KEYBOARD_TYPE)) { lv_group_t* group = lv_group_get_default(); if (group) lv_group_set_editing(group, false); lv_group_remove_obj(game_2048->btnm); @@ -140,7 +141,7 @@ lv_obj_t * twoeleven_create(lv_obj_t * parent, uint16_t matrix_size) lv_obj_add_event_cb(game_2048->btnm, btnm_event_cb, LV_EVENT_DRAW_TASK_ADDED, NULL); lv_obj_add_event_cb(obj, delete_event, LV_EVENT_DELETE, NULL); - if (tt_lvgl_hardware_keyboard_is_available()) { + if (device_has_active_by_type(&KEYBOARD_TYPE)) { lv_group_t* group = lv_group_get_default(); if (group) { lv_group_add_obj(group, game_2048->btnm); From a59caec1024f6d080a4f5935ae72778bbd3e5b70 Mon Sep 17 00:00:00 2001 From: Ken Van Hoeylandt Date: Sun, 26 Jul 2026 17:09:32 +0200 Subject: [PATCH 3/3] Update apps for SKD LVGL updates --- Apps/Brainfuck/main/Source/Brainfuck.cpp | 8 ++++---- Apps/Brainfuck/manifest.properties | 4 ++-- Apps/Breakout/main/Source/Breakout.cpp | 6 +++--- Apps/Breakout/manifest.properties | 4 ++-- Apps/Calculator/main/Source/Calculator.cpp | 4 ++-- Apps/Calculator/manifest.properties | 4 ++-- Apps/Diceware/main/Source/Diceware.cpp | 6 +++--- Apps/Diceware/manifest.properties | 4 ++-- Apps/EpubReader/main/Source/EpubReader.cpp | 4 ++-- Apps/EpubReader/main/Source/EpubReaderAsync.cpp | 4 ++-- Apps/EpubReader/main/Source/EpubReaderUI.cpp | 16 ++++++++-------- Apps/EpubReader/manifest.properties | 4 ++-- Apps/EspNowBridge/main/Source/EspNowBridge.cpp | 4 ++-- Apps/EspNowBridge/manifest.properties | 4 ++-- Apps/GPIO/main/Source/Gpio.cpp | 4 ++-- Apps/GPIO/manifest.properties | 4 ++-- Apps/GraphicsDemo/manifest.properties | 4 ++-- Apps/HelloWorld/main/Source/main.c | 4 ++-- Apps/HelloWorld/manifest.properties | 4 ++-- Apps/M5UnitTest/main/Source/M5UnitTest.cpp | 1 - Apps/M5UnitTest/main/Source/TestListView.cpp | 6 +++--- Apps/M5UnitTest/main/Source/TestListView.h | 2 +- Apps/M5UnitTest/main/Source/TestUnit8Encoder.cpp | 2 +- .../main/Source/TestUnitByteButton.cpp | 2 +- Apps/M5UnitTest/main/Source/TestUnitCardKB2.cpp | 2 +- .../main/Source/TestUnitDualButton.cpp | 2 +- .../M5UnitTest/main/Source/TestUnitJoystick2.cpp | 2 +- Apps/M5UnitTest/main/Source/TestUnitLcd.cpp | 2 +- Apps/M5UnitTest/main/Source/TestUnitLcdGfx.cpp | 2 +- Apps/M5UnitTest/main/Source/TestUnitMidi.cpp | 2 +- Apps/M5UnitTest/main/Source/TestUnitPaHub.cpp | 2 +- Apps/M5UnitTest/main/Source/TestUnitRfid2.cpp | 3 +-- Apps/M5UnitTest/main/Source/TestUnitScroll.cpp | 2 +- Apps/M5UnitTest/main/Source/TestViewBase.cpp | 9 ++++----- Apps/M5UnitTest/main/Source/UiScale.h | 2 +- Apps/M5UnitTest/manifest.properties | 4 ++-- Apps/Magic8Ball/main/Source/Magic8Ball.cpp | 4 ++-- Apps/Magic8Ball/manifest.properties | 4 ++-- Apps/MediaKeys/main/Source/MediaKeys.cpp | 8 ++++---- Apps/MediaKeys/manifest.properties | 4 ++-- Apps/MystifyDemo/manifest.properties | 4 ++-- Apps/SerialConsole/main/Source/SerialConsole.cpp | 6 +++--- Apps/SerialConsole/manifest.properties | 4 ++-- Apps/Snake/main/Source/Snake.cpp | 6 +++--- Apps/Snake/manifest.properties | 4 ++-- Apps/TamaTac/main/Source/TamaTac.cpp | 10 +++++----- Apps/TamaTac/manifest.properties | 4 ++-- Apps/TodoList/main/Source/TodoList.cpp | 6 +++--- Apps/TodoList/manifest.properties | 4 ++-- Apps/TwoEleven/main/Source/TwoEleven.cpp | 6 +++--- Apps/TwoEleven/manifest.properties | 4 ++-- 51 files changed, 109 insertions(+), 112 deletions(-) diff --git a/Apps/Brainfuck/main/Source/Brainfuck.cpp b/Apps/Brainfuck/main/Source/Brainfuck.cpp index 3fff0d3..ae1416b 100644 --- a/Apps/Brainfuck/main/Source/Brainfuck.cpp +++ b/Apps/Brainfuck/main/Source/Brainfuck.cpp @@ -1,6 +1,6 @@ #include "Brainfuck.h" #include -#include +#include #include #include #include @@ -399,11 +399,11 @@ void Brainfuck::onShow(AppHandle app, lv_obj_t* parent) { lv_obj_remove_flag(parent, LV_OBJ_FLAG_SCROLLABLE); lv_obj_set_flex_flow(parent, LV_FLEX_FLOW_COLUMN); - lv_obj_t* toolbar = tt_lvgl_toolbar_create_for_app(parent, app); + lv_obj_t* toolbar = lvgl_toolbar_create(parent, "Brainfuck interpreter"); lv_obj_align(toolbar, LV_ALIGN_TOP_MID, 0, 0); - clrBtn = tt_lvgl_toolbar_add_text_button_action(toolbar, LV_SYMBOL_TRASH, onClearClicked, nullptr); + clrBtn = lvgl_toolbar_add_text_button_action(toolbar, LV_SYMBOL_TRASH, onClearClicked, nullptr); lv_obj_add_flag(clrBtn, LV_OBJ_FLAG_HIDDEN); - tt_lvgl_toolbar_add_text_button_action(toolbar, LV_SYMBOL_LIST, onExamplesClicked, nullptr); + lvgl_toolbar_add_text_button_action(toolbar, LV_SYMBOL_LIST, onExamplesClicked, nullptr); lv_obj_t* cont = lv_obj_create(parent); lv_obj_set_width(cont, LV_PCT(100)); diff --git a/Apps/Brainfuck/manifest.properties b/Apps/Brainfuck/manifest.properties index 2ebec5e..7b2cd74 100644 --- a/Apps/Brainfuck/manifest.properties +++ b/Apps/Brainfuck/manifest.properties @@ -2,7 +2,7 @@ manifest.version=0.2 target.sdk=0.8.0-dev target.platforms=esp32,esp32s3,esp32c6,esp32p4 app.id=one.tactility.brainfuck -app.version.name=0.5.0 -app.version.code=5 +app.version.name=0.6.0 +app.version.code=6 app.name=Brainfuck interpreter app.description=Brainfuck esoteric language interpreter diff --git a/Apps/Breakout/main/Source/Breakout.cpp b/Apps/Breakout/main/Source/Breakout.cpp index 5bdd8ac..ef6242e 100644 --- a/Apps/Breakout/main/Source/Breakout.cpp +++ b/Apps/Breakout/main/Source/Breakout.cpp @@ -7,14 +7,14 @@ #include #include -#include +#include #include #include #include #include #include -#include +#include constexpr auto* TAG = "Breakout"; @@ -129,7 +129,7 @@ void Breakout::onShow(AppHandle appHandle, lv_obj_t* parent) { } // Toolbar - lv_obj_t* toolbar = tt_lvgl_toolbar_create_for_app(parent, appHandle); + lv_obj_t* toolbar = lvgl_toolbar_create(parent, "Breakout"); // Score wrapper in toolbar lv_obj_t* scoreWrap = lv_obj_create(toolbar); diff --git a/Apps/Breakout/manifest.properties b/Apps/Breakout/manifest.properties index c20e64e..8fc27d4 100644 --- a/Apps/Breakout/manifest.properties +++ b/Apps/Breakout/manifest.properties @@ -2,7 +2,7 @@ manifest.version=0.2 target.sdk=0.8.0-dev target.platforms=esp32,esp32s3,esp32c6,esp32p4 app.id=one.tactility.breakout -app.version.name=0.6.0 -app.version.code=6 +app.version.name=0.7.0 +app.version.code=7 app.name=Breakout app.description=Classic brick-breaking arcade game diff --git a/Apps/Calculator/main/Source/Calculator.cpp b/Apps/Calculator/main/Source/Calculator.cpp index 956407a..3a3e081 100644 --- a/Apps/Calculator/main/Source/Calculator.cpp +++ b/Apps/Calculator/main/Source/Calculator.cpp @@ -2,7 +2,7 @@ #include #include -#include +#include #include #include @@ -148,7 +148,7 @@ void Calculator::onShow(AppHandle appHandle, lv_obj_t* parent) { lv_obj_set_flex_flow(parent, LV_FLEX_FLOW_COLUMN); lv_obj_set_style_pad_row(parent, 0, LV_STATE_DEFAULT); - lv_obj_t* toolbar = tt_lvgl_toolbar_create_for_app(parent, appHandle); + lv_obj_t* toolbar = lvgl_toolbar_create(parent, "Calculator"); lv_obj_align(toolbar, LV_ALIGN_TOP_MID, 0, 0); lv_obj_t* wrapper = lv_obj_create(parent); diff --git a/Apps/Calculator/manifest.properties b/Apps/Calculator/manifest.properties index 4745112..56bcdc3 100644 --- a/Apps/Calculator/manifest.properties +++ b/Apps/Calculator/manifest.properties @@ -2,6 +2,6 @@ manifest.version=0.2 target.sdk=0.8.0-dev target.platforms=esp32,esp32s3,esp32c6,esp32p4 app.id=one.tactility.calculator -app.version.name=0.6.0 -app.version.code=6 +app.version.name=0.7.0 +app.version.code=7 app.name=Calculator diff --git a/Apps/Diceware/main/Source/Diceware.cpp b/Apps/Diceware/main/Source/Diceware.cpp index f3ba674..c455c00 100644 --- a/Apps/Diceware/main/Source/Diceware.cpp +++ b/Apps/Diceware/main/Source/Diceware.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include #include @@ -122,8 +122,8 @@ void Diceware::onShow(AppHandle appHandle, lv_obj_t* parent) { lv_obj_set_flex_flow(parent, LV_FLEX_FLOW_COLUMN); lv_obj_set_style_pad_row(parent, 0, LV_STATE_DEFAULT); - auto* toolbar = tt_lvgl_toolbar_create_for_app(parent, appHandle); - tt_lvgl_toolbar_add_text_button_action(toolbar, "?", onHelpClicked, nullptr); + auto* toolbar = lvgl_toolbar_create(parent, "Diceware"); + lvgl_toolbar_add_text_button_action(toolbar, "?", onHelpClicked, nullptr); auto* wrapper = lv_obj_create(parent); lv_obj_set_style_border_width(wrapper, 0, LV_STATE_DEFAULT); diff --git a/Apps/Diceware/manifest.properties b/Apps/Diceware/manifest.properties index 8ddd873..90ac937 100644 --- a/Apps/Diceware/manifest.properties +++ b/Apps/Diceware/manifest.properties @@ -2,6 +2,6 @@ manifest.version=0.2 target.sdk=0.8.0-dev target.platforms=esp32,esp32s3,esp32c6,esp32p4 app.id=one.tactility.diceware -app.version.name=0.7.0 -app.version.code=7 +app.version.name=0.8.0 +app.version.code=8 app.name=Diceware diff --git a/Apps/EpubReader/main/Source/EpubReader.cpp b/Apps/EpubReader/main/Source/EpubReader.cpp index 3adb76f..3551a34 100644 --- a/Apps/EpubReader/main/Source/EpubReader.cpp +++ b/Apps/EpubReader/main/Source/EpubReader.cpp @@ -1,7 +1,7 @@ #include "EpubReader.h" #include "HtmlStrip.h" // stripHtmlToText #include -#include +#include #include #include #include @@ -239,7 +239,7 @@ void EpubReader::onShow(AppHandle app, lv_obj_t* parent) { lv_obj_set_flex_flow(parent, LV_FLEX_FLOW_COLUMN); lv_obj_remove_flag(parent, LV_OBJ_FLAG_SCROLLABLE); - toolbar_ = tt_lvgl_toolbar_create_for_app(parent, app); + toolbar_ = lvgl_toolbar_create(parent, "Epub Reader"); wrapperWidget_ = lv_obj_create(parent); lv_obj_set_width(wrapperWidget_, LV_PCT(100)); diff --git a/Apps/EpubReader/main/Source/EpubReaderAsync.cpp b/Apps/EpubReader/main/Source/EpubReaderAsync.cpp index 655d4fb..d3fddfc 100644 --- a/Apps/EpubReader/main/Source/EpubReaderAsync.cpp +++ b/Apps/EpubReader/main/Source/EpubReaderAsync.cpp @@ -1,5 +1,5 @@ #include "EpubReader.h" -#include +#include #include #include #include @@ -43,7 +43,7 @@ void EpubReader::spawnOpenTask(EpubReader* self, bool restore) { // Show a brief placeholder so old content doesn't linger during the open lv_obj_clean(self->wrapperWidget_); - tt_lvgl_toolbar_clear_actions(self->toolbar_); + lvgl_toolbar_clear_actions(self->toolbar_); lv_obj_t* lbl = lv_label_create(self->wrapperWidget_); lv_obj_set_style_pad_all(lbl, 8, 0); lv_label_set_text(lbl, restore ? "Loading..." : "Opening..."); diff --git a/Apps/EpubReader/main/Source/EpubReaderUI.cpp b/Apps/EpubReader/main/Source/EpubReaderUI.cpp index 755f82f..485b8d9 100644 --- a/Apps/EpubReader/main/Source/EpubReaderUI.cpp +++ b/Apps/EpubReader/main/Source/EpubReaderUI.cpp @@ -1,5 +1,5 @@ #include "EpubReader.h" -#include +#include #include #include #include @@ -37,20 +37,20 @@ static void setListBtnLongMode(lv_obj_t* btn, lv_label_long_mode_t mode) { // --------------------------------------------------------------------------- void EpubReader::setReaderToolbarButtons() { - tt_lvgl_toolbar_clear_actions(toolbar_); - tt_lvgl_toolbar_add_text_button_action(toolbar_, LV_SYMBOL_PREV, onPrevPressed, this); + lvgl_toolbar_clear_actions(toolbar_); + lvgl_toolbar_add_text_button_action(toolbar_, LV_SYMBOL_PREV, onPrevPressed, this); if (!textMode_) { - tt_lvgl_toolbar_add_text_button_action(toolbar_, LV_SYMBOL_LIST, onTocPressed, this); + lvgl_toolbar_add_text_button_action(toolbar_, LV_SYMBOL_LIST, onTocPressed, this); } - tt_lvgl_toolbar_add_text_button_action(toolbar_, LV_SYMBOL_NEXT, onNextPressed, this); - tt_lvgl_toolbar_add_text_button_action(toolbar_, LV_SYMBOL_DIRECTORY, onBrowsePressed, this); + lvgl_toolbar_add_text_button_action(toolbar_, LV_SYMBOL_NEXT, onNextPressed, this); + lvgl_toolbar_add_text_button_action(toolbar_, LV_SYMBOL_DIRECTORY, onBrowsePressed, this); } void EpubReader::setBrowserToolbarButtons() { - tt_lvgl_toolbar_clear_actions(toolbar_); + lvgl_toolbar_clear_actions(toolbar_); // Show "Use Folder" button when the current browse path isn't already the saved books folder if (browsePath_ != booksPath_) { - tt_lvgl_toolbar_add_text_button_action(toolbar_, LV_SYMBOL_DIRECTORY, onSetBooksFolder, this); + lvgl_toolbar_add_text_button_action(toolbar_, LV_SYMBOL_DIRECTORY, onSetBooksFolder, this); } } diff --git a/Apps/EpubReader/manifest.properties b/Apps/EpubReader/manifest.properties index 66d82b1..e546dc8 100644 --- a/Apps/EpubReader/manifest.properties +++ b/Apps/EpubReader/manifest.properties @@ -2,7 +2,7 @@ manifest.version=0.2 target.sdk=0.8.0-dev target.platforms=esp32s3,esp32p4 app.id=one.tactility.epubreader -app.version.name=0.4.0 -app.version.code=4 +app.version.name=0.5.0 +app.version.code=5 app.name=Epub Reader app.description=Epub and text file reader. Requires PSRAM! diff --git a/Apps/EspNowBridge/main/Source/EspNowBridge.cpp b/Apps/EspNowBridge/main/Source/EspNowBridge.cpp index d8120cf..3f979e7 100644 --- a/Apps/EspNowBridge/main/Source/EspNowBridge.cpp +++ b/Apps/EspNowBridge/main/Source/EspNowBridge.cpp @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include @@ -655,7 +655,7 @@ void EspNowBridge::onShow(AppHandle app, lv_obj_t* parent) { lv_obj_remove_flag(parent, LV_OBJ_FLAG_SCROLLABLE); lv_obj_set_flex_flow(parent, LV_FLEX_FLOW_COLUMN); - lv_obj_t* toolbar = tt_lvgl_toolbar_create_for_app(parent, app); + lv_obj_t* toolbar = lvgl_toolbar_create(parent, "ESP-NOW Bridge"); lv_obj_align(toolbar, LV_ALIGN_TOP_MID, 0, 0); auto* wrapper = lv_obj_create(parent); diff --git a/Apps/EspNowBridge/manifest.properties b/Apps/EspNowBridge/manifest.properties index 2c1e956..6f5379d 100644 --- a/Apps/EspNowBridge/manifest.properties +++ b/Apps/EspNowBridge/manifest.properties @@ -2,7 +2,7 @@ manifest.version=0.2 target.sdk=0.8.0-dev target.platforms=esp32p4 app.id=one.tactility.espnowbridge -app.version.name=0.2.0 -app.version.code=2 +app.version.name=0.3.0 +app.version.code=3 app.name=ESP-NOW Bridge app.description=Companion app for updating P4 device C6 co-processor firmware to enable ESP-NOW bridge support. diff --git a/Apps/GPIO/main/Source/Gpio.cpp b/Apps/GPIO/main/Source/Gpio.cpp index a41aa9e..d5ee764 100644 --- a/Apps/GPIO/main/Source/Gpio.cpp +++ b/Apps/GPIO/main/Source/Gpio.cpp @@ -2,7 +2,7 @@ #include -#include +#include #include @@ -78,7 +78,7 @@ void Gpio::onShow(AppHandle app, lv_obj_t* parent) { lv_obj_set_flex_flow(parent, LV_FLEX_FLOW_COLUMN); lv_obj_set_style_pad_row(parent, 0, LV_STATE_DEFAULT); - auto* toolbar = tt_lvgl_toolbar_create_for_app(parent, app); + auto* toolbar = lvgl_toolbar_create(parent, "GPIO"); lv_obj_align(toolbar, LV_ALIGN_TOP_MID, 0, 0); // Main content wrapper, enables scrolling content without scrolling the toolbar diff --git a/Apps/GPIO/manifest.properties b/Apps/GPIO/manifest.properties index cbe5dce..0c06976 100644 --- a/Apps/GPIO/manifest.properties +++ b/Apps/GPIO/manifest.properties @@ -2,6 +2,6 @@ manifest.version=0.2 target.sdk=0.8.0-dev target.platforms=esp32,esp32s3,esp32c6,esp32p4 app.id=one.tactility.gpio -app.version.name=0.8.0 -app.version.code=8 +app.version.name=0.9.0 +app.version.code=9 app.name=GPIO diff --git a/Apps/GraphicsDemo/manifest.properties b/Apps/GraphicsDemo/manifest.properties index cc3c7fd..ffccd94 100644 --- a/Apps/GraphicsDemo/manifest.properties +++ b/Apps/GraphicsDemo/manifest.properties @@ -2,6 +2,6 @@ manifest.version=0.2 target.sdk=0.8.0-dev target.platforms=esp32,esp32s3,esp32c6,esp32p4 app.id=one.tactility.graphicsdemo -app.version.name=0.6.0 -app.version.code=6 +app.version.name=0.7.0 +app.version.code=7 app.name=Graphics Demo diff --git a/Apps/HelloWorld/main/Source/main.c b/Apps/HelloWorld/main/Source/main.c index c1a5742..ade6222 100644 --- a/Apps/HelloWorld/main/Source/main.c +++ b/Apps/HelloWorld/main/Source/main.c @@ -1,12 +1,12 @@ #include -#include +#include /** * Note: LVGL and Tactility methods need to be exposed manually from TactilityC/Source/tt_init.cpp * Only C is supported for now (C++ symbols fail to link) */ static void onShowApp(AppHandle app, void* data, lv_obj_t* parent) { - lv_obj_t* toolbar = tt_lvgl_toolbar_create_for_app(parent, app); + lv_obj_t* toolbar = lvgl_toolbar_create(parent, "Hello World"); lv_obj_align(toolbar, LV_ALIGN_TOP_MID, 0, 0); lv_obj_t* label = lv_label_create(parent); diff --git a/Apps/HelloWorld/manifest.properties b/Apps/HelloWorld/manifest.properties index 4f4e73c..97b5b3b 100644 --- a/Apps/HelloWorld/manifest.properties +++ b/Apps/HelloWorld/manifest.properties @@ -2,6 +2,6 @@ manifest.version=0.2 target.sdk=0.8.0-dev target.platforms=esp32,esp32s3,esp32c6,esp32p4 app.id=one.tactility.helloworld -app.version.name=0.6.0 -app.version.code=6 +app.version.name=0.7.0 +app.version.code=7 app.name=Hello World diff --git a/Apps/M5UnitTest/main/Source/M5UnitTest.cpp b/Apps/M5UnitTest/main/Source/M5UnitTest.cpp index 7d6e57c..1165756 100644 --- a/Apps/M5UnitTest/main/Source/M5UnitTest.cpp +++ b/Apps/M5UnitTest/main/Source/M5UnitTest.cpp @@ -14,7 +14,6 @@ #include "TestUnitLcdGfx.h" #include -#include #include constexpr auto* TAG = "M5UnitTest"; diff --git a/Apps/M5UnitTest/main/Source/TestListView.cpp b/Apps/M5UnitTest/main/Source/TestListView.cpp index 2eb3a05..8ba5ddc 100644 --- a/Apps/M5UnitTest/main/Source/TestListView.cpp +++ b/Apps/M5UnitTest/main/Source/TestListView.cpp @@ -1,13 +1,13 @@ #include "TestListView.h" #include "M5UnitTest.h" #include "UiScale.h" -#include -#include +#include +#include void TestListView::onStart(lv_obj_t* parent, AppHandle handle, M5UnitTest* app) { app_ = app; - tt_lvgl_toolbar_create_for_app(parent, handle); + lvgl_toolbar_create(parent, "M5 Unit Test"); list_ = lv_list_create(parent); lv_obj_set_width(list_, LV_PCT(100)); diff --git a/Apps/M5UnitTest/main/Source/TestListView.h b/Apps/M5UnitTest/main/Source/TestListView.h index 54bf940..5f3b32c 100644 --- a/Apps/M5UnitTest/main/Source/TestListView.h +++ b/Apps/M5UnitTest/main/Source/TestListView.h @@ -2,7 +2,7 @@ #include #include -#include +#include #include class M5UnitTest; diff --git a/Apps/M5UnitTest/main/Source/TestUnit8Encoder.cpp b/Apps/M5UnitTest/main/Source/TestUnit8Encoder.cpp index 8ca0b4c..04e36a0 100644 --- a/Apps/M5UnitTest/main/Source/TestUnit8Encoder.cpp +++ b/Apps/M5UnitTest/main/Source/TestUnit8Encoder.cpp @@ -2,7 +2,7 @@ #include "GroveLookup.h" #include "UiScale.h" #include -#include +#include #include diff --git a/Apps/M5UnitTest/main/Source/TestUnitByteButton.cpp b/Apps/M5UnitTest/main/Source/TestUnitByteButton.cpp index fcef8be..301bc52 100644 --- a/Apps/M5UnitTest/main/Source/TestUnitByteButton.cpp +++ b/Apps/M5UnitTest/main/Source/TestUnitByteButton.cpp @@ -2,7 +2,7 @@ #include "GroveLookup.h" #include "UiScale.h" #include -#include +#include #include void TestUnitByteButton::onStart(lv_obj_t* parent, AppHandle handle, M5UnitTest* app) { diff --git a/Apps/M5UnitTest/main/Source/TestUnitCardKB2.cpp b/Apps/M5UnitTest/main/Source/TestUnitCardKB2.cpp index 7f4a97c..132519a 100644 --- a/Apps/M5UnitTest/main/Source/TestUnitCardKB2.cpp +++ b/Apps/M5UnitTest/main/Source/TestUnitCardKB2.cpp @@ -3,7 +3,7 @@ #include "UiScale.h" #include #include -#include +#include #include // --------------------------------------------------------------------------- diff --git a/Apps/M5UnitTest/main/Source/TestUnitDualButton.cpp b/Apps/M5UnitTest/main/Source/TestUnitDualButton.cpp index fed447d..64a32e5 100644 --- a/Apps/M5UnitTest/main/Source/TestUnitDualButton.cpp +++ b/Apps/M5UnitTest/main/Source/TestUnitDualButton.cpp @@ -1,7 +1,7 @@ #include "TestUnitDualButton.h" #include "UiScale.h" #include -#include +#include static constexpr gpio_pin_t PIN_MIN = 0; static constexpr gpio_pin_t PIN_MAX = 57; diff --git a/Apps/M5UnitTest/main/Source/TestUnitJoystick2.cpp b/Apps/M5UnitTest/main/Source/TestUnitJoystick2.cpp index 2c62596..4a6c7b7 100644 --- a/Apps/M5UnitTest/main/Source/TestUnitJoystick2.cpp +++ b/Apps/M5UnitTest/main/Source/TestUnitJoystick2.cpp @@ -2,7 +2,7 @@ #include "GroveLookup.h" #include "UiScale.h" #include -#include +#include #include #include diff --git a/Apps/M5UnitTest/main/Source/TestUnitLcd.cpp b/Apps/M5UnitTest/main/Source/TestUnitLcd.cpp index 393ce86..b4a9c25 100644 --- a/Apps/M5UnitTest/main/Source/TestUnitLcd.cpp +++ b/Apps/M5UnitTest/main/Source/TestUnitLcd.cpp @@ -2,7 +2,7 @@ #include "GroveLookup.h" #include "UiScale.h" #include -#include +#include void TestUnitLcd::onStart(lv_obj_t* parent, AppHandle handle, M5UnitTest* app) { app_ = app; diff --git a/Apps/M5UnitTest/main/Source/TestUnitLcdGfx.cpp b/Apps/M5UnitTest/main/Source/TestUnitLcdGfx.cpp index c288f3e..5088753 100644 --- a/Apps/M5UnitTest/main/Source/TestUnitLcdGfx.cpp +++ b/Apps/M5UnitTest/main/Source/TestUnitLcdGfx.cpp @@ -2,7 +2,7 @@ #include "GroveLookup.h" #include "UiScale.h" #include -#include +#include #include #include #include diff --git a/Apps/M5UnitTest/main/Source/TestUnitMidi.cpp b/Apps/M5UnitTest/main/Source/TestUnitMidi.cpp index 3dc0e34..31ef15d 100644 --- a/Apps/M5UnitTest/main/Source/TestUnitMidi.cpp +++ b/Apps/M5UnitTest/main/Source/TestUnitMidi.cpp @@ -2,7 +2,7 @@ #include "GroveLookup.h" #include "UiScale.h" #include -#include +#include void TestUnitMidi::onStart(lv_obj_t* parent, AppHandle handle, M5UnitTest* app) { app_ = app; diff --git a/Apps/M5UnitTest/main/Source/TestUnitPaHub.cpp b/Apps/M5UnitTest/main/Source/TestUnitPaHub.cpp index f13162d..805a46f 100644 --- a/Apps/M5UnitTest/main/Source/TestUnitPaHub.cpp +++ b/Apps/M5UnitTest/main/Source/TestUnitPaHub.cpp @@ -3,7 +3,7 @@ #include "UiScale.h" #include #include -#include +#include void TestUnitPaHub::onStart(lv_obj_t* parent, AppHandle handle, M5UnitTest* app) { app_ = app; diff --git a/Apps/M5UnitTest/main/Source/TestUnitRfid2.cpp b/Apps/M5UnitTest/main/Source/TestUnitRfid2.cpp index 617b092..bc2b309 100644 --- a/Apps/M5UnitTest/main/Source/TestUnitRfid2.cpp +++ b/Apps/M5UnitTest/main/Source/TestUnitRfid2.cpp @@ -2,8 +2,7 @@ #include "GroveLookup.h" #include "UiScale.h" #include -#include -#include +#include #include #include #include diff --git a/Apps/M5UnitTest/main/Source/TestUnitScroll.cpp b/Apps/M5UnitTest/main/Source/TestUnitScroll.cpp index a5596ca..57a0977 100644 --- a/Apps/M5UnitTest/main/Source/TestUnitScroll.cpp +++ b/Apps/M5UnitTest/main/Source/TestUnitScroll.cpp @@ -2,7 +2,7 @@ #include "GroveLookup.h" #include "UiScale.h" #include -#include +#include void TestUnitScroll::onStart(lv_obj_t* parent, AppHandle handle, M5UnitTest* app) { app_ = app; diff --git a/Apps/M5UnitTest/main/Source/TestViewBase.cpp b/Apps/M5UnitTest/main/Source/TestViewBase.cpp index e3ea71c..46e30ce 100644 --- a/Apps/M5UnitTest/main/Source/TestViewBase.cpp +++ b/Apps/M5UnitTest/main/Source/TestViewBase.cpp @@ -1,13 +1,12 @@ #include "TestViewBase.h" #include "M5UnitTest.h" #include "UiScale.h" -#include -#include +#include +#include lv_obj_t* TestViewBase::createToolbar(lv_obj_t* parent, AppHandle handle, const char* title) { - lv_obj_t* toolbar = tt_lvgl_toolbar_create_for_app(parent, handle); - tt_lvgl_toolbar_set_title(toolbar, title); - tt_lvgl_toolbar_add_text_button_action(toolbar, LV_SYMBOL_LEFT, onBackClicked, this); + lv_obj_t* toolbar = lvgl_toolbar_create(parent, title); + lvgl_toolbar_add_text_button_action(toolbar, LV_SYMBOL_LEFT, onBackClicked, this); return toolbar; } diff --git a/Apps/M5UnitTest/main/Source/UiScale.h b/Apps/M5UnitTest/main/Source/UiScale.h index 9bbb4e0..a35ae13 100644 --- a/Apps/M5UnitTest/main/Source/UiScale.h +++ b/Apps/M5UnitTest/main/Source/UiScale.h @@ -1,6 +1,6 @@ #pragma once #include -#include +#include // Device screen widths in default (portrait) orientation: // tiny < 200 : small OLEDs, custom breadboard devices diff --git a/Apps/M5UnitTest/manifest.properties b/Apps/M5UnitTest/manifest.properties index 5c747be..03b6951 100644 --- a/Apps/M5UnitTest/manifest.properties +++ b/Apps/M5UnitTest/manifest.properties @@ -2,6 +2,6 @@ manifest.version=0.2 target.sdk=0.8.0-dev target.platforms=esp32s3,esp32p4 app.id=one.tactility.m5unittest -app.version.name=0.4.0 -app.version.code=4 +app.version.name=0.5.0 +app.version.code=5 app.name=M5 Unit Test diff --git a/Apps/Magic8Ball/main/Source/Magic8Ball.cpp b/Apps/Magic8Ball/main/Source/Magic8Ball.cpp index f3c9c49..940b67c 100644 --- a/Apps/Magic8Ball/main/Source/Magic8Ball.cpp +++ b/Apps/Magic8Ball/main/Source/Magic8Ball.cpp @@ -1,5 +1,5 @@ #include "Magic8Ball.h" -#include +#include #include #include #include @@ -93,7 +93,7 @@ void Magic8Ball::onShow(AppHandle app, lv_obj_t* parent) { lv_obj_set_flex_flow(parent, LV_FLEX_FLOW_COLUMN); /* Toolbar */ - lv_obj_t* toolbar = tt_lvgl_toolbar_create_for_app(parent, app); + lv_obj_t* toolbar = lvgl_toolbar_create(parent, "Magic 8-Ball"); lv_obj_align(toolbar, LV_ALIGN_TOP_MID, 0, 0); /* Main container */ diff --git a/Apps/Magic8Ball/manifest.properties b/Apps/Magic8Ball/manifest.properties index 6c7d091..ced441d 100644 --- a/Apps/Magic8Ball/manifest.properties +++ b/Apps/Magic8Ball/manifest.properties @@ -2,6 +2,6 @@ manifest.version=0.2 target.sdk=0.8.0-dev target.platforms=esp32,esp32s3,esp32c6,esp32p4 app.id=one.tactility.magic8ball -app.version.name=0.5.0 -app.version.code=5 +app.version.name=0.6.0 +app.version.code=6 app.name=Magic 8-Ball diff --git a/Apps/MediaKeys/main/Source/MediaKeys.cpp b/Apps/MediaKeys/main/Source/MediaKeys.cpp index 6fca94d..e55a7bb 100644 --- a/Apps/MediaKeys/main/Source/MediaKeys.cpp +++ b/Apps/MediaKeys/main/Source/MediaKeys.cpp @@ -4,9 +4,9 @@ #include #include #include -#include +#include #include -#include +#include static const char* TAG = "MediaKeys"; @@ -307,10 +307,10 @@ void MediaKeys::onShow(AppHandle appHandle, lv_obj_t* parent) { lv_obj_remove_flag(parent, LV_OBJ_FLAG_SCROLLABLE); lv_obj_set_flex_flow(parent, LV_FLEX_FLOW_COLUMN); - lv_obj_t* toolbar = tt_lvgl_toolbar_create_for_app(parent, appHandle); + lv_obj_t* toolbar = lvgl_toolbar_create(parent, "Media Keys"); lv_obj_align(toolbar, LV_ALIGN_TOP_MID, 0, 0); - _switchWidget = tt_lvgl_toolbar_add_switch_action(toolbar); + _switchWidget = lvgl_toolbar_add_switch_action(toolbar); lv_obj_add_event_cb(_switchWidget, onSwitchToggled, LV_EVENT_VALUE_CHANGED, this); _mainWrapper = lv_obj_create(parent); diff --git a/Apps/MediaKeys/manifest.properties b/Apps/MediaKeys/manifest.properties index 3a36717..2c02be9 100644 --- a/Apps/MediaKeys/manifest.properties +++ b/Apps/MediaKeys/manifest.properties @@ -2,7 +2,7 @@ manifest.version=0.2 target.sdk=0.8.0-dev target.platforms=esp32s3,esp32p4 app.id=one.tactility.mediakeys -app.version.name=0.5.0 -app.version.code=5 +app.version.name=0.6.0 +app.version.code=6 app.name=Media Keys app.description=Bluetooth media keys. Touch or Physical Keyboard control\nB - previous, P - play/pause, N - next, M - mute, D - volume down, U - volume up.\nQ or ESC to exit focus. diff --git a/Apps/MystifyDemo/manifest.properties b/Apps/MystifyDemo/manifest.properties index ffc5e8d..80f6484 100644 --- a/Apps/MystifyDemo/manifest.properties +++ b/Apps/MystifyDemo/manifest.properties @@ -2,6 +2,6 @@ manifest.version=0.2 target.sdk=0.8.0-dev target.platforms=esp32,esp32s3,esp32c6,esp32p4 app.id=one.tactility.mystifydemo -app.version.name=0.7.0 -app.version.code=7 +app.version.name=0.8.0 +app.version.code=8 app.name=Mystify Demo diff --git a/Apps/SerialConsole/main/Source/SerialConsole.cpp b/Apps/SerialConsole/main/Source/SerialConsole.cpp index cd32f5c..8eefbc9 100644 --- a/Apps/SerialConsole/main/Source/SerialConsole.cpp +++ b/Apps/SerialConsole/main/Source/SerialConsole.cpp @@ -1,5 +1,5 @@ #include "SerialConsole.h" -#include +#include constexpr auto* TAG = "SerialMonitor"; @@ -43,9 +43,9 @@ void SerialConsole::onShow(AppHandle appHandle, lv_obj_t* parent) { lv_obj_set_flex_flow(parent, LV_FLEX_FLOW_COLUMN); lv_obj_set_style_pad_row(parent, 0, LV_STATE_DEFAULT); - auto* toolbar = tt_lvgl_toolbar_create_for_app(parent, appHandle); + auto* toolbar = lvgl_toolbar_create(parent, "Serial Console"); - disconnectButton = tt_lvgl_toolbar_add_image_button_action(toolbar, LV_SYMBOL_POWER, onDisconnectPressed, this); + disconnectButton = lvgl_toolbar_add_image_button_action(toolbar, LV_SYMBOL_POWER, onDisconnectPressed, this); lv_obj_add_flag(disconnectButton, LV_OBJ_FLAG_HIDDEN); wrapperWidget = lv_obj_create(parent); diff --git a/Apps/SerialConsole/manifest.properties b/Apps/SerialConsole/manifest.properties index 2d439cc..bb1579b 100644 --- a/Apps/SerialConsole/manifest.properties +++ b/Apps/SerialConsole/manifest.properties @@ -2,6 +2,6 @@ manifest.version=0.2 target.sdk=0.8.0-dev target.platforms=esp32,esp32s3,esp32c6,esp32p4 app.id=one.tactility.serialconsole -app.version.name=0.8.0 -app.version.code=8 +app.version.name=0.9.0 +app.version.code=9 app.name=Serial Console diff --git a/Apps/Snake/main/Source/Snake.cpp b/Apps/Snake/main/Source/Snake.cpp index 619b4e1..22fdcec 100644 --- a/Apps/Snake/main/Source/Snake.cpp +++ b/Apps/Snake/main/Source/Snake.cpp @@ -5,7 +5,7 @@ #include "Snake.h" #include -#include +#include #include #include #include @@ -13,7 +13,7 @@ #include #include -#include +#include constexpr auto* TAG = "Snake"; @@ -245,7 +245,7 @@ void Snake::onShow(AppHandle appHandle, lv_obj_t* parent) { lv_obj_set_flex_flow(parent, LV_FLEX_FLOW_COLUMN); // Create toolbar - toolbar = tt_lvgl_toolbar_create_for_app(parent, appHandle); + toolbar = lvgl_toolbar_create(parent, "Snake"); lv_obj_align(toolbar, LV_ALIGN_TOP_MID, 0, 0); // Create main wrapper diff --git a/Apps/Snake/manifest.properties b/Apps/Snake/manifest.properties index c79d87b..4df898c 100644 --- a/Apps/Snake/manifest.properties +++ b/Apps/Snake/manifest.properties @@ -2,7 +2,7 @@ manifest.version=0.2 target.sdk=0.8.0-dev target.platforms=esp32,esp32s3,esp32c6,esp32p4 app.id=one.tactility.snake -app.version.name=0.9.0 -app.version.code=9 +app.version.name=0.10.0 +app.version.code=10 app.name=Snake app.description=Classic Snake game diff --git a/Apps/TamaTac/main/Source/TamaTac.cpp b/Apps/TamaTac/main/Source/TamaTac.cpp index b60a703..1a8a57a 100644 --- a/Apps/TamaTac/main/Source/TamaTac.cpp +++ b/Apps/TamaTac/main/Source/TamaTac.cpp @@ -5,7 +5,7 @@ #include "TamaTac.h" #include "SpriteData.h" -#include +#include #include #include #include @@ -86,11 +86,11 @@ void TamaTac::onShow(AppHandle context, lv_obj_t* parent) { lv_obj_set_style_pad_all(parent, 0, 0); lv_obj_set_style_pad_row(parent, 0, 0); - toolbar = tt_lvgl_toolbar_create_for_app(parent, context); + toolbar = lvgl_toolbar_create(parent, "TamaTac"); - menuButton = tt_lvgl_toolbar_add_text_button_action(toolbar, LV_SYMBOL_LIST, onMenuClicked, this); - tt_lvgl_toolbar_add_text_button_action(toolbar, LV_SYMBOL_TRASH, onCleanClicked, this); - tt_lvgl_toolbar_add_text_button_action(toolbar, LV_SYMBOL_REFRESH, onResetClicked, this); + menuButton = lvgl_toolbar_add_text_button_action(toolbar, LV_SYMBOL_LIST, onMenuClicked, this); + lvgl_toolbar_add_text_button_action(toolbar, LV_SYMBOL_TRASH, onCleanClicked, this); + lvgl_toolbar_add_text_button_action(toolbar, LV_SYMBOL_REFRESH, onResetClicked, this); wrapperWidget = lv_obj_create(parent); lv_obj_set_width(wrapperWidget, LV_PCT(100)); diff --git a/Apps/TamaTac/manifest.properties b/Apps/TamaTac/manifest.properties index 17c2ada..d66c1f4 100644 --- a/Apps/TamaTac/manifest.properties +++ b/Apps/TamaTac/manifest.properties @@ -2,7 +2,7 @@ manifest.version=0.2 target.sdk=0.8.0-dev target.platforms=esp32,esp32s3,esp32c6,esp32p4 app.id=one.tactility.tamatac -app.version.name=0.4.0 -app.version.code=4 +app.version.name=0.5.0 +app.version.code=5 app.name=TamaTac app.description=Virtual pet inspired by Tamagotchi. Only runs on devices with PSRAM. diff --git a/Apps/TodoList/main/Source/TodoList.cpp b/Apps/TodoList/main/Source/TodoList.cpp index cd4d8bd..b08ddb4 100644 --- a/Apps/TodoList/main/Source/TodoList.cpp +++ b/Apps/TodoList/main/Source/TodoList.cpp @@ -2,9 +2,9 @@ #include #include #include -#include +#include #include -#include +#include #include #include #include @@ -272,7 +272,7 @@ void TodoList::onShow(AppHandle app, lv_obj_t* parent) { lv_obj_set_flex_flow(parent, LV_FLEX_FLOW_COLUMN); /* Toolbar */ - lv_obj_t* toolbar = tt_lvgl_toolbar_create_for_app(parent, app); + lv_obj_t* toolbar = lvgl_toolbar_create(parent, "Todo List"); lv_obj_align(toolbar, LV_ALIGN_TOP_MID, 0, 0); lv_obj_t* countWrapper = lv_obj_create(toolbar); diff --git a/Apps/TodoList/manifest.properties b/Apps/TodoList/manifest.properties index e48ee7f..fa45ee9 100644 --- a/Apps/TodoList/manifest.properties +++ b/Apps/TodoList/manifest.properties @@ -2,7 +2,7 @@ manifest.version=0.2 target.sdk=0.8.0-dev target.platforms=esp32,esp32s3,esp32c6,esp32p4 app.id=one.tactility.todolist -app.version.name=0.6.0 -app.version.code=6 +app.version.name=0.7.0 +app.version.code=7 app.name=Todo List app.description=Simple task list manager diff --git a/Apps/TwoEleven/main/Source/TwoEleven.cpp b/Apps/TwoEleven/main/Source/TwoEleven.cpp index 4874b8a..932d90d 100644 --- a/Apps/TwoEleven/main/Source/TwoEleven.cpp +++ b/Apps/TwoEleven/main/Source/TwoEleven.cpp @@ -5,12 +5,12 @@ #include "TwoEleven.h" #include -#include +#include #include #include #include #include -#include +#include #include constexpr auto* TAG = "TwoEleven"; @@ -257,7 +257,7 @@ void TwoEleven::onShow(AppHandle appHandle, lv_obj_t* parent) { lv_obj_set_flex_flow(parent, LV_FLEX_FLOW_COLUMN); // Create toolbar - toolbar = tt_lvgl_toolbar_create_for_app(parent, appHandle); + toolbar = lvgl_toolbar_create(parent, "2048"); lv_obj_align(toolbar, LV_ALIGN_TOP_MID, 0, 0); // Create main wrapper diff --git a/Apps/TwoEleven/manifest.properties b/Apps/TwoEleven/manifest.properties index 110c25c..279875c 100644 --- a/Apps/TwoEleven/manifest.properties +++ b/Apps/TwoEleven/manifest.properties @@ -2,7 +2,7 @@ manifest.version=0.2 target.sdk=0.8.0-dev target.platforms=esp32,esp32s3,esp32c6,esp32p4 app.id=one.tactility.twoeleven -app.version.name=0.8.0 -app.version.code=8 +app.version.name=0.9.0 +app.version.code=9 app.name=2048 app.description=A fun, customizable 2048 sliding tile game for tactility!\nSlide tiles to combine numbers and reach 2048.\nChoose grid sizes: 3x3 (easy), 4x4 (classic), 5x5, or 6x6 (expert).