ESPHome 2026.8.0-dev
Loading...
Searching...
No Matches
wled_light_effect.h
Go to the documentation of this file.
1#pragma once
2
3#ifdef USE_ARDUINO
4
7
8#include <vector>
9#include <memory>
10
11#if defined(USE_RP2) || defined(USE_LIBRETINY)
12namespace arduino {
13class UDP;
14} // namespace arduino
15using arduino::UDP; // NOLINT(google-global-names-in-headers)
16#else
17class UDP;
18#endif
19
20namespace esphome::wled {
21
23 public:
24 WLEDLightEffect(const char *name);
25
26 void start() override;
27 void stop() override;
28 void apply(light::AddressableLight &it, const Color &current_color) override;
29 void set_port(uint16_t port) { this->port_ = port; }
30 void set_sync_group_mask(uint8_t mask) { this->sync_group_mask_ = mask; }
31 void set_blank_on_start(bool blank) { this->blank_on_start_ = blank; }
32
33 protected:
35 bool parse_frame_(light::AddressableLight &it, const uint8_t *payload, uint16_t size);
36 bool parse_notifier_frame_(light::AddressableLight &it, const uint8_t *payload, uint16_t size);
37 bool parse_warls_frame_(light::AddressableLight &it, const uint8_t *payload, uint16_t size);
38 bool parse_drgb_frame_(light::AddressableLight &it, const uint8_t *payload, uint16_t size);
39 bool parse_drgbw_frame_(light::AddressableLight &it, const uint8_t *payload, uint16_t size);
40 bool parse_dnrgb_frame_(light::AddressableLight &it, const uint8_t *payload, uint16_t size);
41
42 uint16_t port_{0};
43 std::unique_ptr<UDP> udp_;
44 optional<uint32_t> blank_start_{};
47 uint8_t sync_group_mask_{0};
48 bool blank_on_start_{true};
49};
50
51} // namespace esphome::wled
52
53#endif // USE_ARDUINO
bool parse_dnrgb_frame_(light::AddressableLight &it, const uint8_t *payload, uint16_t size)
optional< uint32_t > blank_start_
bool parse_drgb_frame_(light::AddressableLight &it, const uint8_t *payload, uint16_t size)
void set_sync_group_mask(uint8_t mask)
bool parse_notifier_frame_(light::AddressableLight &it, const uint8_t *payload, uint16_t size)
void blank_all_leds_(light::AddressableLight &it)
bool parse_frame_(light::AddressableLight &it, const uint8_t *payload, uint16_t size)
bool parse_warls_frame_(light::AddressableLight &it, const uint8_t *payload, uint16_t size)
bool parse_drgbw_frame_(light::AddressableLight &it, const uint8_t *payload, uint16_t size)
uint16_t size
Definition helpers.cpp:25
static void uint32_t