refactor: remove mutex handling from LVGLHandler constructor and destructor
This commit is contained in:
@@ -11,12 +11,7 @@
|
|||||||
|
|
||||||
LVGLHandler::LVGLHandler(
|
LVGLHandler::LVGLHandler(
|
||||||
std::unique_ptr<EInkDisplayHandler> display_handler_in
|
std::unique_ptr<EInkDisplayHandler> display_handler_in
|
||||||
) : display_handler_(std::move(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");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
LVGLHandler::~LVGLHandler() {
|
LVGLHandler::~LVGLHandler() {
|
||||||
if (lvgl_display_ != nullptr) {
|
if (lvgl_display_ != nullptr) {
|
||||||
@@ -35,10 +30,6 @@ LVGLHandler::~LVGLHandler() {
|
|||||||
heap_caps_free(framebuffer_);
|
heap_caps_free(framebuffer_);
|
||||||
framebuffer_ = nullptr;
|
framebuffer_ = nullptr;
|
||||||
}
|
}
|
||||||
if (lvgl_mutex_ != nullptr) {
|
|
||||||
vSemaphoreDelete(lvgl_mutex_);
|
|
||||||
lvgl_mutex_ = nullptr;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
esp_err_t LVGLHandler::initLVGL(EventGroupHandle_t system_event_group) {
|
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
|
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);
|
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
|
// copy data to framebuffer
|
||||||
int32_t area_w = lv_area_get_width(area);
|
int32_t area_w = lv_area_get_width(area);
|
||||||
|
|||||||
Reference in New Issue
Block a user