Ken Van Hoeylandt 3a24d058c9
Rename icons, fix T-Lora Pager config and more (#502)
* **New Features**
  * Added NFC chip-select to SD card hardware configuration.

* **Refactor**
  * Consolidated and renamed icon resources; apps and status-bar now reference unified icon headers and new icon constants.
  * Renamed LVGL lock API (timed → lvgl_try_lock) and updated callers.

* **Documentation**
  * Updated module README and license files; added Apache-2.0 license document.
2026-02-15 13:32:52 +01:00

70 lines
1.3 KiB
C

// SPDX-License-Identifier: Apache-2.0
#include <lvgl.h>
#include <string.h>
#include <tactility/module.h>
#include <tactility/lvgl_module.h>
extern const struct ModuleSymbol lvgl_module_symbols[];
error_t lvgl_arch_start();
error_t lvgl_arch_stop();
static bool is_running = false;
static bool is_configured = false;
struct LvglModuleConfig lvgl_module_config = {
NULL,
NULL,
0,
0,
#ifdef ESP_PLATFORM
0,
#endif
};
void lvgl_module_configure(const struct LvglModuleConfig config) {
is_configured = true;
memcpy(&lvgl_module_config, &config, sizeof(struct LvglModuleConfig));
}
static error_t start() {
if (!is_configured) {
return ERROR_INVALID_STATE;
}
if (is_running) {
return ERROR_NONE;
}
error_t result = lvgl_arch_start();
if (result == ERROR_NONE) {
is_running = true;
}
return result;
}
static error_t stop() {
if (!is_running) {
return ERROR_NONE;
}
error_t error = lvgl_arch_stop();
if (error == ERROR_NONE) {
is_running = false;
}
return error;
}
bool lvgl_is_running() {
return is_running;
}
struct Module lvgl_module = {
.name = "lvgl",
.start = start,
.stop = stop,
.symbols = (const struct ModuleSymbol*)lvgl_module_symbols,
.internal = NULL
};