idfxx 1.0.0
Modern C++23 components for ESP-IDF
Loading...
Searching...
No Matches
ili9341.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
2// Copyright 2026 Chris Leishman
3
4#pragma once
5
13#include <idfxx/lcd/panel>
14#include <idfxx/panel_io>
15
20namespace idfxx::lcd {
21
28class ili9341 : public panel {
29public:
30#ifdef CONFIG_COMPILER_CXX_EXCEPTIONS
44#endif
45
58
60
61 ili9341(const ili9341&) = delete;
62 ili9341& operator=(const ili9341&) = delete;
63 ili9341(ili9341&& other) noexcept;
64 ili9341& operator=(ili9341&& other) noexcept;
65
66private:
67 explicit ili9341(esp_lcd_panel_handle_t handle)
68 : panel(240, 320)
69 , _handle(handle) {}
70
71 // lcd::panel customization hooks.
72 [[nodiscard]] esp_lcd_panel_handle_t do_idf_handle() const override;
73
74 esp_lcd_panel_handle_t _handle = nullptr;
75};
76
77} // namespace idfxx::lcd
ILI9341 display controller driver.
Definition ili9341.hpp:28
ili9341 & operator=(ili9341 &&other) noexcept
ili9341(ili9341 &&other) noexcept
ili9341(const ili9341 &)=delete
ili9341(idfxx::panel_io &panel_io, panel::config config)
Creates a new ili9341 panel.
ili9341 & operator=(const ili9341 &)=delete
static result< ili9341 > make(idfxx::panel_io &panel_io, panel::config config)
Creates a new ili9341 panel.
Abstract base class for LCD panels.
Definition panel.hpp:47
Panel I/O interface for SPI- and I2C-connected displays.
Definition panel_io.hpp:42
struct esp_lcd_panel_t * esp_lcd_panel_handle_t
Definition panel.hpp:30
LCD driver classes.
Definition color.hpp:21
std::expected< T, std::error_code > result
result type wrapping a value or error code.
Definition error.hpp:120
Configuration structure for LCD panels.
Definition panel.hpp:53