#pragma once #include #include #include #include #include /** * @brief High-level manager for display, LVGL 9 and touch on Kode Dot. */ class DisplayManager { private: Arduino_DataBus *bus; Arduino_CO5300 *gfx; BBCapTouch bbct; // LVGL 9 handles lv_display_t *lv_disp; lv_indev_t *lv_touch; uint8_t *buf1; uint8_t *buf2; // Static callbacks static void disp_flush_cb(lv_display_t *disp, const lv_area_t *area, uint8_t *px_map); static void touch_read_cb(lv_indev_t *indev, lv_indev_data_t *data); static DisplayManager *instance; public: DisplayManager(); ~DisplayManager(); bool init(); void update(); void setBrightness(uint8_t brightness); bool getTouchCoordinates(int16_t &x, int16_t &y); Arduino_CO5300 *getGfx() { return gfx; } BBCapTouch *getTouch() { return &bbct; } };