forked from NaiJi/project-kyoku
33 lines
588 B
C
33 lines
588 B
C
|
#pragma once
|
||
|
|
||
|
#include <string>
|
||
|
|
||
|
#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;
|
||
|
};
|
||
|
|
||
|
}
|