#pragma once #include "esphome/core/automation.h" #include "microphone.h" #include namespace esphome { namespace microphone { template class CaptureAction : public Action, public Parented { void play(Ts... x) override { this->parent_->start(); } }; template class StopCaptureAction : public Action, public Parented { void play(Ts... x) override { this->parent_->stop(); } }; class DataTrigger : public Trigger &> { public: explicit DataTrigger(Microphone *mic) { mic->add_data_callback([this](const std::vector &data) { this->trigger(data); }); } }; template class IsCapturingActon : public Condition, public Parented { public: bool check(Ts... x) override { return this->parent_->is_running(); } }; } // namespace microphone } // namespace esphome