Tactility/Tactility/Source/MainDispatcher.cpp
Ken Van Hoeylandt 7ea8c346b0
Various improvements (#673)
Graphics & rendering

- Implement `binfont-module` to generate bitmap fonts on the device itself
- Remove lodepng support from LVGL library and create `Modules/lodepng-module` to make the feature re-usable in non-LVGL apps too. Add binding functions for LVGL support.
- Implement large icons for boot screen (Tactility and USB logos)
- Remove unused asset files in `Data/`

Boot

- Split up `Tactility.cpp` and its `run()` function into various `Init*.cpp` files.
- Re-implement `Boot.cpp` app as non-LVGL app
- Boot app now has a `BootSequence.cpp` for the init code.
- LVGL is now started when the Boot app finishes
- Move more init logic into Boot app

BLE

- Don't allocate scan result buffers unless BLE is on
- Allocate scan results in external memory if possible

UX & UI

- USB Settings app: remove border from the button container
2026-10-04 18:09:21 +02:00

42 lines
1006 B
C++

#include <Tactility/MainDispatcher.h>
#include <Tactility/TactilityPrivate.h>
// Implements the deprecated MainDispatcher API
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
namespace tt {
static DispatcherHandle_t mainDispatcherHandle = dispatcher_alloc();
namespace {
void mainDispatcherTrampoline(void* context) {
auto* function = static_cast<MainDispatcher::Function*>(context);
(*function)();
delete function;
}
} // namespace
bool MainDispatcher::dispatch(Function function, TickType_t timeout) const {
auto* boxed = new Function(std::move(function));
if (dispatcher_dispatch_timed(handle, boxed, mainDispatcherTrampoline, timeout) != ERROR_NONE) {
delete boxed;
return false;
}
return true;
}
MainDispatcher getMainDispatcher() {
return MainDispatcher(mainDispatcherHandle);
}
DispatcherHandle_t getMainDispatcherHandle() {
return mainDispatcherHandle;
}
} // namespace
#pragma GCC diagnostic pop