35 lines
878 B
C++
35 lines
878 B
C++
#pragma once
|
|
|
|
namespace esphome {
|
|
namespace brmesh {
|
|
|
|
class Output : public Component, public light::LightOutput
|
|
{
|
|
public:
|
|
virtual const char *kind() const = 0;
|
|
virtual uint8_t id() const = 0;
|
|
|
|
virtual std::span<uint8_t> command(const std::span<uint8_t> &output) const = 0;
|
|
|
|
virtual void advertise(bool advertise) const;
|
|
|
|
// interface: Component
|
|
void dump_config() override;
|
|
float get_setup_priority() const override {
|
|
return setup_priority::AFTER_BLUETOOTH;
|
|
}
|
|
void setup() override;
|
|
void loop() override;
|
|
|
|
// interface: LightOutput
|
|
light::LightTraits get_traits() override;
|
|
void setup_state(light::LightState *state) override;
|
|
void update_state(light::LightState *state) override;
|
|
void write_state(light::LightState *state) override;
|
|
|
|
private:
|
|
Network &network_;
|
|
};
|
|
|
|
} // namespace brmesh
|
|
} // namespace esphome
|