#ifndef AUDIO_RESOURCE_H #define AUDIO_RESOURCE_H #include #include "../../base/closure.h" #include "audio_forward.h" namespace eng { struct AudioSample; class Sound; class AudioResource { public: AudioResource(Audio* audio); ~AudioResource(); void Play(std::shared_ptr sound, float amplitude, bool reset_pos); void Stop(); void SetLoop(bool loop); void SetSimulateStereo(bool simulate); void SetResampleStep(size_t step); void SetMaxAmplitude(float max_amplitude); void SetAmplitudeInc(float amplitude_inc); void SetEndCallback(base::Closure cb); private: std::shared_ptr sample_; Audio* audio_ = nullptr; AudioResource(const AudioResource&) = delete; AudioResource& operator=(const AudioResource&) = delete; }; } // namespace eng #endif // AUDIO_RESOURCE_H