ESPHome 2026.11.0-dev
Loading...
Searching...
No Matches
hub75_component.h
Go to the documentation of this file.
1#pragma once
2
3#ifdef USE_ESP32
4
5#include <utility>
6
9#include "esphome/core/hal.h"
10#include "esphome/core/log.h"
11#include "hub75.h" // hub75 library
12
13namespace esphome::hub75 {
14
17
18class HUB75Display final : public display::Display {
19 public:
20 // Constructor accepting config
21 explicit HUB75Display(const Hub75Config &config);
22
23 // Core Component methods
24 void setup() override;
25 void dump_config() override;
26 float get_setup_priority() const override { return setup_priority::PROCESSOR; }
27
28 // Display/PollingComponent methods
29 void update() override;
31 void fill(Color color) override;
32 void draw_pixel_at(int x, int y, Color color) override;
33
34 // Brightness control (runtime mutable)
35 void set_brightness(uint8_t brightness);
36
37 void set_rotation(display::DisplayRotation rotation) override;
39
40 protected:
41 void draw_pixels_internal(int x_start, int y_start, int w, int h, const uint8_t *ptr, display::ColorBitness bitness,
42 bool big_endian, int x_offset, int y_offset, int x_pad) override;
43
44 // Display internal methods
45 int get_width_internal() override { return this->driver_ != nullptr ? this->driver_->get_width() : 0; }
46 int get_height_internal() override { return this->driver_ != nullptr ? this->driver_->get_height() : 0; }
47
48 // Member variables
49 Hub75Driver *driver_{nullptr};
50 Hub75Config config_; // Fixed after setup(); only the rotation can change before the driver exists
51
52 // Runtime state (mutable)
53 uint8_t brightness_{128};
54 bool enabled_{false};
55};
56
57} // namespace esphome::hub75
58
59#endif
int int int const uint8_t ColorOrder ColorBitness bitness
Definition display.h:389
int int int const uint8_t ColorOrder ColorBitness bool int int y_offset
Definition display.h:389
int int int const uint8_t ColorOrder ColorBitness bool int int int x_pad
Definition display.h:389
int int int const uint8_t * ptr
Definition display.h:388
int int int const uint8_t ColorOrder ColorBitness bool big_endian
Definition display.h:389
int int int const uint8_t ColorOrder ColorBitness bool int x_offset
Definition display.h:389
void update() override
Definition hub75.cpp:77
void draw_pixel_at(int x, int y, Color color) override
Definition hub75.cpp:117
HUB75Display(const Hub75Config &config)
Definition hub75.cpp:15
void set_brightness(uint8_t brightness)
Definition hub75.cpp:198
void setup() override
Definition hub75.cpp:25
display::DisplayRotation get_rotation() const override
Definition hub75.cpp:242
void draw_pixels_internal(int x_start, int y_start, int w, int h, const uint8_t *ptr, display::ColorBitness bitness, bool big_endian, int x_offset, int y_offset, int x_pad) override
Definition hub75.cpp:133
void dump_config() override
Definition hub75.cpp:38
void fill(Color color) override
Definition hub75.cpp:90
void set_rotation(display::DisplayRotation rotation) override
Definition hub75.cpp:233
display::DisplayType get_display_type() override
float get_setup_priority() const override
constexpr float PROCESSOR
For components that use data from sensors like displays.
Definition component.h:47
uint16_t x
Definition tt21100.cpp:5
uint16_t y
Definition tt21100.cpp:6