cmvr-es/cmvr-es/devices/speaker/abstract_speaker.h
2026-07-21 17:04:41 +08:00

34 lines
977 B
C++

//
// Created by xtkuang on 2025/5/8.
//
#ifndef CMVR_ES_ABSTRACT_SPEAKER_H
#define CMVR_ES_ABSTRACT_SPEAKER_H
#pragma once
#include "devices/abstract_device.h"
#include "cmvr/config/speaker_config/speaker_config.pb.h"
namespace cmvr::device{
class AbstractSpeaker: public AbstractDevice {
public:
AbstractSpeaker() = default;
~AbstractSpeaker() override = default;
DeviceKind kind() const noexcept override { return DeviceKind::Speaker; }
virtual void getState(SpeakerState &state) {}
virtual void play(const std::string &file_path) {}
virtual void setVolume(int volume) {}
virtual int getVolume() const {return 0;}
virtual void pause() {}
virtual void resume() {}
virtual bool pushAudioFrame(const AudioStreamFrameData& frame_data) { return false; }
virtual void stopStreaming() {}
protected:
SpeakerState state_{};
};
}
#endif //CMVR_ES_ABSTRACT_SPEAKER_H