summaryrefslogtreecommitdiff
path: root/src/events/event_queue.cpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-05-24 13:30:05 +1000
committerjacqueline <me@jacqueline.id.au>2023-05-24 13:30:05 +1000
commit65833649f4779754e90760c1f0fc81ed220c84d0 (patch)
tree7aa4baa722edb7db80055fdeb9e8053766707259 /src/events/event_queue.cpp
parent3b371cfc544d4b7c462d0a32d06525ab2b970875 (diff)
downloadtangara-fw-65833649f4779754e90760c1f0fc81ed220c84d0.tar.gz
Add some placeholder splash and menu screens
Includes a bunch of misc display fixes. Most significantly, our lvgl tickers was busted.
Diffstat (limited to 'src/events/event_queue.cpp')
-rw-r--r--src/events/event_queue.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/events/event_queue.cpp b/src/events/event_queue.cpp
index 06f747ab..c69b1e72 100644
--- a/src/events/event_queue.cpp
+++ b/src/events/event_queue.cpp
@@ -14,11 +14,22 @@ namespace events {
static const std::size_t kMaxPendingEvents = 16;
EventQueue::EventQueue()
- : handle_(xQueueCreate(kMaxPendingEvents, sizeof(WorkItem*))) {}
+ : system_handle_(xQueueCreate(kMaxPendingEvents, sizeof(WorkItem*))),
+ ui_handle_(xQueueCreate(kMaxPendingEvents, sizeof(WorkItem*))) {}
-auto EventQueue::Service(TickType_t max_wait_time) -> bool {
+auto EventQueue::ServiceSystem(TickType_t max_wait_time) -> bool {
WorkItem* item;
- if (xQueueReceive(handle_, &item, max_wait_time)) {
+ if (xQueueReceive(system_handle_, &item, max_wait_time)) {
+ (*item)();
+ delete item;
+ return true;
+ }
+ return false;
+}
+
+auto EventQueue::ServiceUi(TickType_t max_wait_time) -> bool {
+ WorkItem* item;
+ if (xQueueReceive(ui_handle_, &item, max_wait_time)) {
(*item)();
delete item;
return true;