mirror of
https://github.com/esphome/esphome.git
synced 2025-09-15 17:52:19 +01:00
Make some Action methods protected
Apparently play()/stop() etc. are not meant to be called directly by users of the class and if they're called directly that would not give the expected result for the classes that have an empty play(). Make all methods except play_complex, stop_comples and is_running protected. While there also make RemoteTransmitterActionBase::encode protected.
This commit is contained in:
committed by
Andrew Zaborowski
parent
da390d32f8
commit
a62b6548d2
@@ -23,7 +23,9 @@ DECLARE_REMOTE_PROTOCOL(JVC)
|
||||
template<typename... Ts> class JVCAction : public RemoteTransmitterActionBase<Ts...> {
|
||||
public:
|
||||
TEMPLATABLE_VALUE(uint32_t, data)
|
||||
void encode(RemoteTransmitData *dst, Ts... x) override {
|
||||
|
||||
protected:
|
||||
void encode_(RemoteTransmitData *dst, Ts... x) override {
|
||||
JVCData data{};
|
||||
data.data = this->data_.value(x...);
|
||||
JVCProtocol().encode(dst, data);
|
||||
|
@@ -26,7 +26,9 @@ template<typename... Ts> class LGAction : public RemoteTransmitterActionBase<Ts.
|
||||
public:
|
||||
TEMPLATABLE_VALUE(uint32_t, data)
|
||||
TEMPLATABLE_VALUE(uint8_t, nbits)
|
||||
void encode(RemoteTransmitData *dst, Ts... x) override {
|
||||
|
||||
protected:
|
||||
void encode_(RemoteTransmitData *dst, Ts... x) override {
|
||||
LGData data{};
|
||||
data.data = this->data_.value(x...);
|
||||
data.nbits = this->nbits_.value(x...);
|
||||
|
@@ -25,7 +25,9 @@ template<typename... Ts> class NECAction : public RemoteTransmitterActionBase<Ts
|
||||
public:
|
||||
TEMPLATABLE_VALUE(uint16_t, address)
|
||||
TEMPLATABLE_VALUE(uint16_t, command)
|
||||
void encode(RemoteTransmitData *dst, Ts... x) override {
|
||||
|
||||
protected:
|
||||
void encode_(RemoteTransmitData *dst, Ts... x) override {
|
||||
NECData data{};
|
||||
data.address = this->address_.value(x...);
|
||||
data.command = this->command_.value(x...);
|
||||
|
@@ -26,7 +26,9 @@ template<typename... Ts> class PanasonicAction : public RemoteTransmitterActionB
|
||||
public:
|
||||
TEMPLATABLE_VALUE(uint16_t, address)
|
||||
TEMPLATABLE_VALUE(uint32_t, command)
|
||||
void encode(RemoteTransmitData *dst, Ts... x) override {
|
||||
|
||||
protected:
|
||||
void encode_(RemoteTransmitData *dst, Ts... x) override {
|
||||
PanasonicData data{};
|
||||
data.address = this->address_.value(x...);
|
||||
data.command = this->command_.value(x...);
|
||||
|
@@ -25,7 +25,9 @@ template<typename... Ts> class PioneerAction : public RemoteTransmitterActionBas
|
||||
public:
|
||||
TEMPLATABLE_VALUE(uint16_t, rc_code_1)
|
||||
TEMPLATABLE_VALUE(uint16_t, rc_code_2)
|
||||
void encode(RemoteTransmitData *dst, Ts... x) override {
|
||||
|
||||
protected:
|
||||
void encode_(RemoteTransmitData *dst, Ts... x) override {
|
||||
PioneerData data{};
|
||||
data.rc_code_1 = this->rc_code_1_.value(x...);
|
||||
data.rc_code_2 = this->rc_code_2_.value(x...);
|
||||
|
@@ -46,7 +46,8 @@ template<typename... Ts> class RawAction : public RemoteTransmitterActionBase<Ts
|
||||
}
|
||||
TEMPLATABLE_VALUE(uint32_t, carrier_frequency);
|
||||
|
||||
void encode(RemoteTransmitData *dst, Ts... x) override {
|
||||
protected:
|
||||
void encode_(RemoteTransmitData *dst, Ts... x) override {
|
||||
if (this->code_static_ != nullptr) {
|
||||
for (size_t i = 0; i < this->code_static_len_; i++) {
|
||||
auto val = this->code_static_[i];
|
||||
@@ -61,7 +62,6 @@ template<typename... Ts> class RawAction : public RemoteTransmitterActionBase<Ts
|
||||
dst->set_carrier_frequency(this->carrier_frequency_.value(x...));
|
||||
}
|
||||
|
||||
protected:
|
||||
std::function<std::vector<int32_t>(Ts...)> code_func_{};
|
||||
const int32_t *code_static_{nullptr};
|
||||
int32_t code_static_len_{0};
|
||||
|
@@ -26,7 +26,9 @@ template<typename... Ts> class RC5Action : public RemoteTransmitterActionBase<Ts
|
||||
public:
|
||||
TEMPLATABLE_VALUE(uint8_t, address)
|
||||
TEMPLATABLE_VALUE(uint8_t, command)
|
||||
void encode(RemoteTransmitData *dst, Ts... x) override {
|
||||
|
||||
protected:
|
||||
void encode_(RemoteTransmitData *dst, Ts... x) override {
|
||||
RC5Data data{};
|
||||
data.address = this->address_.value(x...);
|
||||
data.command = this->command_.value(x...);
|
||||
|
@@ -71,7 +71,8 @@ template<typename... Ts> class RCSwitchRawAction : public RemoteTransmitterActio
|
||||
TEMPLATABLE_VALUE(RCSwitchBase, protocol);
|
||||
TEMPLATABLE_VALUE(std::string, code);
|
||||
|
||||
void encode(RemoteTransmitData *dst, Ts... x) override {
|
||||
protected:
|
||||
void encode_(RemoteTransmitData *dst, Ts... x) override {
|
||||
auto code = this->code_.value(x...);
|
||||
uint64_t the_code = decode_binary_string(code);
|
||||
uint8_t nbits = code.size();
|
||||
@@ -88,7 +89,8 @@ template<typename... Ts> class RCSwitchTypeAAction : public RemoteTransmitterAct
|
||||
TEMPLATABLE_VALUE(std::string, device);
|
||||
TEMPLATABLE_VALUE(bool, state);
|
||||
|
||||
void encode(RemoteTransmitData *dst, Ts... x) override {
|
||||
protected:
|
||||
void encode_(RemoteTransmitData *dst, Ts... x) override {
|
||||
auto group = this->group_.value(x...);
|
||||
auto device = this->device_.value(x...);
|
||||
auto state = this->state_.value(x...);
|
||||
@@ -111,7 +113,8 @@ template<typename... Ts> class RCSwitchTypeBAction : public RemoteTransmitterAct
|
||||
TEMPLATABLE_VALUE(uint8_t, channel);
|
||||
TEMPLATABLE_VALUE(bool, state);
|
||||
|
||||
void encode(RemoteTransmitData *dst, Ts... x) override {
|
||||
protected:
|
||||
void encode_(RemoteTransmitData *dst, Ts... x) override {
|
||||
auto address = this->address_.value(x...);
|
||||
auto channel = this->channel_.value(x...);
|
||||
auto state = this->state_.value(x...);
|
||||
@@ -133,7 +136,8 @@ template<typename... Ts> class RCSwitchTypeCAction : public RemoteTransmitterAct
|
||||
TEMPLATABLE_VALUE(uint8_t, device);
|
||||
TEMPLATABLE_VALUE(bool, state);
|
||||
|
||||
void encode(RemoteTransmitData *dst, Ts... x) override {
|
||||
protected:
|
||||
void encode_(RemoteTransmitData *dst, Ts... x) override {
|
||||
auto family = this->family_.value(x...);
|
||||
auto group = this->group_.value(x...);
|
||||
auto device = this->device_.value(x...);
|
||||
@@ -156,7 +160,8 @@ template<typename... Ts> class RCSwitchTypeDAction : public RemoteTransmitterAct
|
||||
TEMPLATABLE_VALUE(uint8_t, device);
|
||||
TEMPLATABLE_VALUE(bool, state);
|
||||
|
||||
void encode(RemoteTransmitData *dst, Ts... x) override {
|
||||
protected:
|
||||
void encode_(RemoteTransmitData *dst, Ts... x) override {
|
||||
auto group = this->group_.value(x...);
|
||||
auto device = this->device_.value(x...);
|
||||
auto state = this->state_.value(x...);
|
||||
|
@@ -323,20 +323,20 @@ template<typename... Ts> class RemoteTransmitterActionBase : public Action<Ts...
|
||||
public:
|
||||
void set_parent(RemoteTransmitterBase *parent) { this->parent_ = parent; }
|
||||
|
||||
void play(Ts... x) override {
|
||||
TEMPLATABLE_VALUE(uint32_t, send_times);
|
||||
TEMPLATABLE_VALUE(uint32_t, send_wait);
|
||||
|
||||
protected:
|
||||
virtual void encode_(RemoteTransmitData *dst, Ts... x) = 0;
|
||||
|
||||
void play_(Ts... x) override {
|
||||
auto call = this->parent_->transmit();
|
||||
this->encode(call.get_data(), x...);
|
||||
this->encode_(call.get_data(), x...);
|
||||
call.set_send_times(this->send_times_.value_or(x..., 1));
|
||||
call.set_send_wait(this->send_wait_.value_or(x..., 0));
|
||||
call.perform();
|
||||
}
|
||||
|
||||
virtual void encode(RemoteTransmitData *dst, Ts... x) = 0;
|
||||
|
||||
TEMPLATABLE_VALUE(uint32_t, send_times);
|
||||
TEMPLATABLE_VALUE(uint32_t, send_wait);
|
||||
|
||||
protected:
|
||||
RemoteTransmitterBase *parent_{};
|
||||
};
|
||||
|
||||
|
@@ -24,7 +24,9 @@ DECLARE_REMOTE_PROTOCOL(Samsung)
|
||||
template<typename... Ts> class SamsungAction : public RemoteTransmitterActionBase<Ts...> {
|
||||
public:
|
||||
TEMPLATABLE_VALUE(uint32_t, data)
|
||||
void encode(RemoteTransmitData *dst, Ts... x) override {
|
||||
|
||||
protected:
|
||||
void encode_(RemoteTransmitData *dst, Ts... x) override {
|
||||
SamsungData data{};
|
||||
data.data = this->data_.value(x...);
|
||||
SamsungProtocol().encode(dst, data);
|
||||
|
@@ -26,7 +26,9 @@ template<typename... Ts> class SonyAction : public RemoteTransmitterActionBase<T
|
||||
public:
|
||||
TEMPLATABLE_VALUE(uint32_t, data)
|
||||
TEMPLATABLE_VALUE(uint8_t, nbits)
|
||||
void encode(RemoteTransmitData *dst, Ts... x) override {
|
||||
|
||||
protected:
|
||||
void encode_(RemoteTransmitData *dst, Ts... x) override {
|
||||
SonyData data{};
|
||||
data.data = this->data_.value(x...);
|
||||
data.nbits = this->nbits_.value(x...);
|
||||
|
Reference in New Issue
Block a user