#pragma once #include #include "core/time.h" namespace kku { class Music { public: virtual ~Music() = default; virtual bool open(const std::string& filepath) = 0; virtual void play() = 0; virtual void pause() = 0; virtual void stop() = 0; virtual bool isPlaying() const = 0; virtual void setVolume(float volume) = 0; virtual void setOffset(const kku::microsec& offset) = 0; virtual void moveOffset(const kku::microsec& delta) = 0; virtual kku::microsec fetchOffset() = 0; virtual kku::microsec getDuration() const = 0; }; }