refactor: remove mutex handling from LVGLHandler constructor and destructor
This commit is contained in:
@@ -11,12 +11,7 @@
|
||||
|
||||
LVGLHandler::LVGLHandler(
|
||||
std::unique_ptr<EInkDisplayHandler> display_handler_in
|
||||
) : display_handler_(std::move(display_handler_in)) {
|
||||
lvgl_mutex_ = xSemaphoreCreateMutex();
|
||||
if (lvgl_mutex_ == nullptr) {
|
||||
ESP_LOGE(TAG, "Failed to create LVGL mutex");
|
||||
}
|
||||
}
|
||||
) : display_handler_(std::move(display_handler_in)) { }
|
||||
|
||||
LVGLHandler::~LVGLHandler() {
|
||||
if (lvgl_display_ != nullptr) {
|
||||
@@ -35,10 +30,6 @@ LVGLHandler::~LVGLHandler() {
|
||||
heap_caps_free(framebuffer_);
|
||||
framebuffer_ = nullptr;
|
||||
}
|
||||
if (lvgl_mutex_ != nullptr) {
|
||||
vSemaphoreDelete(lvgl_mutex_);
|
||||
lvgl_mutex_ = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
esp_err_t LVGLHandler::initLVGL(EventGroupHandle_t system_event_group) {
|
||||
@@ -111,13 +102,6 @@ void LVGLHandler::flush_cb_(lv_display_t* disp, const lv_area_t* area, uint8_t*
|
||||
uint8_t* pixel_data = px_map + 8; // Skip palette
|
||||
//
|
||||
ESP_LOGI(TAG, "Flush callback: x1=%d, y1=%d, x2=%d, y2=%d", area->x1, area->y1, area->x2, area->y2);
|
||||
// take mutex
|
||||
SemaphoreGuard guard(handler->lvgl_mutex_);
|
||||
if (!guard.take(pdMS_TO_TICKS(5000))) {
|
||||
ESP_LOGE(TAG, "LVGL mutex timeout in flush callback");
|
||||
lv_display_flush_ready(disp);
|
||||
return;
|
||||
}
|
||||
|
||||
// copy data to framebuffer
|
||||
int32_t area_w = lv_area_get_width(area);
|
||||
|
||||
Reference in New Issue
Block a user