ESPHome 2026.5.1
Loading...
Searching...
No Matches
symphony_protocol.h
Go to the documentation of this file.
1#pragma once
2
4#include "remote_base.h"
5
6#include <cinttypes>
7
8namespace esphome::remote_base {
9
12 uint8_t nbits;
13 uint8_t repeats{1};
14
15 bool operator==(const SymphonyData &rhs) const { return data == rhs.data && nbits == rhs.nbits; }
16};
17
18class SymphonyProtocol : public RemoteProtocol<SymphonyData> {
19 public:
20 void encode(RemoteTransmitData *dst, const SymphonyData &data) override;
21 optional<SymphonyData> decode(RemoteReceiveData src) override;
22 void dump(const SymphonyData &data) override;
23};
24
25DECLARE_REMOTE_PROTOCOL(Symphony)
26
27template<typename... Ts> class SymphonyAction : public RemoteTransmitterActionBase<Ts...> {
28 public:
29 TEMPLATABLE_VALUE(uint32_t, data)
30 TEMPLATABLE_VALUE(uint8_t, nbits)
31 TEMPLATABLE_VALUE(uint8_t, repeats)
32
33 void encode(RemoteTransmitData *dst, Ts... x) override {
34 SymphonyData data{};
35 data.data = this->data_.value(x...);
36 data.nbits = this->nbits_.value(x...);
37 data.repeats = this->repeats_.value(x...);
38 SymphonyProtocol().encode(dst, data);
39 }
40};
41
42} // namespace esphome::remote_base
void encode(RemoteTransmitData *dst, const SymphonyData &data) override
optional< SymphonyData > decode(RemoteReceiveData src) override
void dump(const SymphonyData &data) override
static void uint32_t
bool operator==(const SymphonyData &rhs) const
uint16_t x
Definition tt21100.cpp:5