mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-04-18 17:35:05 +00:00
- Created `tactility-headless` to support ESP32 firmwares that don't require graphics - `tactility` subproject now contains both PC and ESP32 code (to avoid having to split up `tactility` and `tactility-headless` into separate projects, which would result in a very complex dependency tree) - `tactility` subproject is now defined as component for ESP32 and as regular module for PC - Improvements for dispatcher - Added `project-structure.puml` to docs - `Gui` service now depends on `Loader` service instead of the reverse - Added `statusbar_updater` service for updating Wi-Fi and SD card icons
41 lines
831 B
C
41 lines
831 B
C
#pragma once
|
|
|
|
#include "gui.h"
|
|
#include "message_queue.h"
|
|
#include "mutex.h"
|
|
#include "pubsub.h"
|
|
#include "view_port.h"
|
|
#include "view_port_i.h"
|
|
#include <stdio.h>
|
|
|
|
#define GUI_THREAD_FLAG_DRAW (1 << 0)
|
|
#define GUI_THREAD_FLAG_INPUT (1 << 1)
|
|
#define GUI_THREAD_FLAG_EXIT (1 << 2)
|
|
#define GUI_THREAD_FLAG_ALL (GUI_THREAD_FLAG_DRAW | GUI_THREAD_FLAG_INPUT | GUI_THREAD_FLAG_EXIT)
|
|
|
|
/** Gui structure */
|
|
struct Gui {
|
|
// Thread and lock
|
|
Thread* thread;
|
|
Mutex* mutex;
|
|
PubSubSubscription* loader_pubsub_subscription;
|
|
|
|
// Layers and Canvas
|
|
lv_obj_t* lvgl_parent;
|
|
|
|
// App-specific
|
|
ViewPort* app_view_port;
|
|
|
|
lv_obj_t* _Nullable keyboard;
|
|
lv_group_t* keyboard_group;
|
|
};
|
|
|
|
/** Update GUI, request redraw */
|
|
void gui_request_draw();
|
|
|
|
/** Lock GUI */
|
|
void gui_lock();
|
|
|
|
/** Unlock GUI */
|
|
void gui_unlock();
|