You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
648 B
C++
31 lines
648 B
C++
#pragma once
|
|
|
|
#include "tools/music.h"
|
|
|
|
#include <SFML/Audio/Music.hpp>
|
|
|
|
class MusicSFML : public Music
|
|
{
|
|
public:
|
|
explicit MusicSFML();
|
|
|
|
virtual bool openFromFile(const std::string& filepath) override;
|
|
|
|
virtual void play() override;
|
|
virtual void pause() override;
|
|
virtual void stop() override;
|
|
|
|
virtual void setVolume(int volume) override;
|
|
|
|
virtual void setOffset(const microsec& offset) override;
|
|
virtual microsec fetchOffset() override;
|
|
|
|
private:
|
|
sf::Music _music;
|
|
sf::Clock _offset_interpolator;
|
|
|
|
microsec _sfml_music_offset;
|
|
microsec _previous_frame_offset;
|
|
microsec _absolute_offset;
|
|
};
|