// // Created by xtkuang on 2025/5/8. // #ifndef CMVR_ES_ABSTRACT_SPEAKER_H #define CMVR_ES_ABSTRACT_SPEAKER_H #pragma once #include "abstract_device.h" namespace cmvr::device{ class AbstractSpeaker: public AbstractDevice { public: explicit AbstractSpeaker(const XmlNode &config): AbstractDevice(config) {} ~AbstractSpeaker() override = default; virtual void getState(SpeakerState &state) {} virtual void play(const std::string &file_path) {} virtual void setVolume(int volume) {} [[nodiscard]] virtual int getVolume() const {return 0;} virtual void pause() {} virtual void resume() {} protected: SpeakerState state_{}; }; } #endif //CMVR_ES_ABSTRACT_SPEAKER_H