#pragma once #include #include #include class Ili9881cDisplay final : public EspLcdDisplayV2 { esp_lcd_dsi_bus_handle_t mipiDsiBus = nullptr; esp_ldo_channel_handle_t ldoChannel = nullptr; bool createMipiDsiBus(); protected: bool createIoHandle(esp_lcd_panel_io_handle_t& ioHandle) override; esp_lcd_panel_dev_config_t createPanelConfig(std::shared_ptr espLcdConfiguration, gpio_num_t resetPin) override; bool createPanelHandle(esp_lcd_panel_io_handle_t ioHandle, const esp_lcd_panel_dev_config_t& panelConfig, esp_lcd_panel_handle_t& panelHandle) override; bool useDsiPanel() const override { return true; } lvgl_port_display_dsi_cfg_t getLvglPortDisplayDsiConfig(esp_lcd_panel_io_handle_t /*ioHandle*/, esp_lcd_panel_handle_t /*panelHandle*/) override; public: Ili9881cDisplay( const std::shared_ptr& configuration ) : EspLcdDisplayV2(configuration) {} ~Ili9881cDisplay() override; std::string getName() const override { return "ILI9881C"; } std::string getDescription() const override { return "ILI9881C MIPI-DSI display"; } };