Merge develop into main (#313)

- Add app path get() functions to `TactilityC`
- Improved `Dispatcher` and `DispatcherThread`
- Improved `PubSub` (type safety)
- Created test for `DispatcherThread` and `PubSub`
- Save properties files on app exit (various apps) by posting it to the main dispatcher (fixes UI hanging briefly on app exit)
- Fixed bug with `SystemSettings` being read from the wrong file path.
- `loadPropertiesFile()` now uses `file::readLines()` instead of doing that manually
- Increased timer task stack size (required due to issues when reading a properties file for the very first time)
- General cleanup
- Created `EstimatedPower` driver that uses an ADC pin to measure voltage and estimate the battery charge that is left.
- Cleanup of T-Deck board (updated to new style)
This commit is contained in:
Ken Van Hoeylandt
2025-09-01 23:07:00 +02:00
committed by GitHub
parent 5cc5b50694
commit 0f8380e8fe
96 changed files with 766 additions and 682 deletions
+36
View File
@@ -4,6 +4,8 @@
extern "C" {
constexpr auto* TAG = "tt_app";
#define HANDLE_AS_APP_CONTEXT(handle) ((tt::app::AppContext*)(handle))
BundleHandle _Nullable tt_app_get_parameters(AppHandle handle) {
@@ -31,4 +33,38 @@ void tt_app_stop() {
tt::app::stop();
}
void tt_app_get_data_directory(AppPathsHandle handle, char* buffer, size_t& size) {
assert(buffer != nullptr);
assert(size > 0);
auto paths = HANDLE_AS_APP_CONTEXT(handle)->getPaths();
auto data_path = paths->getDataDirectory();
auto expected_length = data_path.length() + 1;
if (size < expected_length) {
TT_LOG_E(TAG, "Path buffer not large enough (%d < %d)", size, expected_length);
size = 0;
buffer[0] = 0;
return;
}
strcpy(buffer, data_path.c_str());
size = data_path.length();
}
void tt_app_get_data_directory_lvgl(AppPathsHandle handle, char* buffer, size_t& size) {
assert(buffer != nullptr);
assert(size > 0);
auto paths = HANDLE_AS_APP_CONTEXT(handle)->getPaths();
auto data_path = paths->getDataDirectoryLvgl();
auto expected_length = data_path.length() + 1;
if (size < expected_length) {
TT_LOG_E(TAG, "Path buffer not large enough (%d < %d)", size, expected_length);
size = 0;
buffer[0] = 0;
return;
}
strcpy(buffer, data_path.c_str());
size = data_path.length();
}
}