From 0032896251d8ddc6c2775495445da8fceffba98e Mon Sep 17 00:00:00 2001 From: jacqueline Date: Tue, 5 Sep 2023 09:51:10 +1000 Subject: Move UI task to priority 0 during playback Also other misc task cleanup --- src/ui/lvgl_task.cpp | 26 ++++---------------------- 1 file changed, 4 insertions(+), 22 deletions(-) (limited to 'src/ui/lvgl_task.cpp') diff --git a/src/ui/lvgl_task.cpp b/src/ui/lvgl_task.cpp index a0f14f7d..74f68cf5 100644 --- a/src/ui/lvgl_task.cpp +++ b/src/ui/lvgl_task.cpp @@ -49,24 +49,8 @@ namespace ui { static const char* kTag = "ui_task"; -static const TickType_t kMaxFrameRate = pdMS_TO_TICKS(100); -static auto next_frame(TimerHandle_t t) { - SemaphoreHandle_t sem = - reinterpret_cast(pvTimerGetTimerID(t)); - xSemaphoreGive(sem); -} - -UiTask::UiTask() - : quit_(false), - frame_semaphore_(xSemaphoreCreateBinary()), - frame_timer_(xTimerCreate("ui_frame", - kMaxFrameRate, - pdTRUE, - frame_semaphore_, - next_frame)) { - xTimerStart(frame_timer_, portMAX_DELAY); -} +UiTask::UiTask() {} UiTask::~UiTask() { assert(false); @@ -98,10 +82,8 @@ auto UiTask::Main() -> void { current_screen_->Tick(); } - lv_task_handler(); - - // Wait for the signal to loop again. - xSemaphoreTake(frame_semaphore_, portMAX_DELAY); + TickType_t delay = lv_timer_handler(); + vTaskDelay(pdMS_TO_TICKS(std::clamp(delay, 0, 100))); } } @@ -114,7 +96,7 @@ auto UiTask::SetInputDevice(std::shared_ptr dev) -> void { auto UiTask::Start() -> UiTask* { UiTask* ret = new UiTask(); - tasks::StartPersistent(0, [=]() { ret->Main(); }); + tasks::StartPersistent([=]() { ret->Main(); }); return ret; } -- cgit v1.2.3