mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-10-19 03:45:06 +00:00
- The `/system` FAT volume is removed. Its files are embedded in the firmware as generated C arrays. - Default-size fonts are generated at build time and used from flash. - The LVGL task and the Launcher run on PSRAM-preferred stacks. A new kernel `file_ops` API takes the file work off those threads. - `MainDispatcher` is reimplemented as an on-demand task. - More long-lived state is allocated with the PSRAM-preferring helpers. - Other fixes and improvements
71 lines
1.7 KiB
C
71 lines
1.7 KiB
C
// SPDX-License-Identifier: Apache-2.0
|
|
#pragma once
|
|
|
|
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
|
|
// Official LVGL library header
|
|
#include <lvgl.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/** Affects LVGL widget style */
|
|
enum UiDensity {
|
|
/** Ideal for very small non-touch screen devices (e.g. Waveshare S3 LCD 1.3") */
|
|
LVGL_UI_DENSITY_COMPACT,
|
|
/** Nothing was changed in the LVGL UI/UX */
|
|
LVGL_UI_DENSITY_DEFAULT
|
|
};
|
|
|
|
/**
|
|
* @brief Locks the LVGL mutex.
|
|
*
|
|
* This should be called before any LVGL API calls from threads other than the LVGL task.
|
|
* It is a recursive mutex.
|
|
* @retval true when a lock was acquired, false otherwise
|
|
*/
|
|
void lvgl_lock(void);
|
|
|
|
/**
|
|
* @brief Tries to lock the LVGL mutex with a timeout.
|
|
*
|
|
* @param timeout Timeout in ticks
|
|
* @return true if the lock was acquired, false otherwise.
|
|
*/
|
|
bool lvgl_try_lock(uint32_t timeout);
|
|
|
|
/**
|
|
* @brief Unlocks the LVGL mutex.
|
|
*/
|
|
void lvgl_unlock(void);
|
|
|
|
/**
|
|
* @brief Runs a function with the LVGL lock held, on the calling task.
|
|
*
|
|
* The function must not read files. The LVGL task can have its stack in external RAM.
|
|
* @param[in] function the function to run
|
|
* @param[in] argument passed to @a function
|
|
*/
|
|
void lvgl_run_on_task(void (*function)(void* argument), void* argument);
|
|
|
|
/**
|
|
* @brief Checks if the LVGL module is currently running.
|
|
*
|
|
* @return true if running, false otherwise.
|
|
*/
|
|
bool lvgl_is_running(void);
|
|
|
|
/**
|
|
* @brief Gets the UI density of the theme settings.
|
|
* @deprecated Use lvgl_theme_is_compact() from <lvgl/theme.h>
|
|
* @return the UI density
|
|
*/
|
|
__attribute__((deprecated("Use lvgl_theme_is_compact()")))
|
|
enum UiDensity lvgl_get_ui_density(void);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|