#pragma once #include "esphome/core/automation.h" #include "esphome/core/component.h" #include "audio_dac.h" namespace esphome { namespace audio_dac { template class MuteOffAction : public Action { public: explicit MuteOffAction(AudioDac *audio_dac) : audio_dac_(audio_dac) {} void play(Ts... x) override { this->audio_dac_->set_mute_off(); } protected: AudioDac *audio_dac_; }; template class MuteOnAction : public Action { public: explicit MuteOnAction(AudioDac *audio_dac) : audio_dac_(audio_dac) {} void play(Ts... x) override { this->audio_dac_->set_mute_on(); } protected: AudioDac *audio_dac_; }; template class SetVolumeAction : public Action { public: explicit SetVolumeAction(AudioDac *audio_dac) : audio_dac_(audio_dac) {} TEMPLATABLE_VALUE(float, volume) void play(Ts... x) override { this->audio_dac_->set_volume(this->volume_.value(x...)); } protected: AudioDac *audio_dac_; }; } // namespace audio_dac } // namespace esphome