mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-02-18 19:03:16 +00:00
* **New Features** * Added public accessors for querying module/device start and ready state. * **Refactor** * Internal state moved to opaque internal objects; module/device/driver initializers now explicitly initialize internal pointers. * Lifecycle handling updated to construct/destruct internal state and use accessors. * **Tests** * Tests updated to use public accessors and explicit construct/destruct lifecycle calls. * **Chores** * Test build/include paths and small metadata updated.
70 lines
1.3 KiB
C
70 lines
1.3 KiB
C
// SPDX-License-Identifier: GPL-3.0-only
|
|
#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
|
|
};
|