mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-02-18 19:03:16 +00:00
* **New Features** * Added a standalone LVGL module and enabled LVGL support in the simulator for richer local UI testing. * **Refactor** * HAL and LVGL split into distinct modules; startup and device attach/detach flows reorganized for clearer lifecycle management. * Public APIs tightened with clearer nullability/documentation. * **Bug Fixes** * More consistent LVGL start/stop and device attach/detach behavior for improved stability.
39 lines
1.2 KiB
C++
39 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include <Tactility/RecursiveMutex.h>
|
|
|
|
#include <EspLcdDisplay.h>
|
|
#include <lvgl.h>
|
|
|
|
class St7701Display final : public EspLcdDisplay {
|
|
|
|
std::shared_ptr<tt::hal::touch::TouchDevice> touchDevice;
|
|
|
|
bool createIoHandle(esp_lcd_panel_io_handle_t& outHandle) override;
|
|
|
|
bool createPanelHandle(esp_lcd_panel_io_handle_t ioHandle, esp_lcd_panel_handle_t& panelHandle) override;
|
|
|
|
lvgl_port_display_cfg_t getLvglPortDisplayConfig(esp_lcd_panel_io_handle_t ioHandle, esp_lcd_panel_handle_t panelHandle) override;
|
|
|
|
bool isRgbPanel() const override { return true; }
|
|
|
|
lvgl_port_display_rgb_cfg_t getLvglPortDisplayRgbConfig(esp_lcd_panel_io_handle_t ioHandle, esp_lcd_panel_handle_t panelHandle) override;
|
|
|
|
public:
|
|
|
|
St7701Display() : EspLcdDisplay(std::make_shared<tt::RecursiveMutex>()) {}
|
|
|
|
std::string getName() const override { return "ST7701S"; }
|
|
|
|
std::string getDescription() const override { return "ST7701S RGB display"; }
|
|
|
|
std::shared_ptr<tt::hal::touch::TouchDevice> getTouchDevice() override;
|
|
|
|
void setBacklightDuty(uint8_t backlightDuty) override;
|
|
|
|
bool supportsBacklightDuty() const override { return true; }
|
|
|
|
// TODO: Find out why it crashes
|
|
bool supportsDisplayDriver() const override { return false; }
|
|
};
|