libBeatsaber/include/beatsaber-impl/beatsetimpl.h

26 lines
626 B
C
Raw Normal View History

2021-05-30 21:56:21 +02:00
#include "beatset.h"
#include <nlohmann/json_fwd.hpp>
using json = nlohmann::json;
namespace Beatsaber {
2021-06-01 11:47:41 +02:00
class BeatSetImpl : public BeatSet, protected std::enable_shared_from_this<BeatSetImpl> {
2021-05-30 21:56:21 +02:00
protected:
2021-06-01 11:47:41 +02:00
std::weak_ptr<BeatMap> parent;
2021-05-30 21:56:21 +02:00
BeatmapCharacteristic::BeatmapCharacteristic characteristic;
2021-06-01 11:47:41 +02:00
2021-05-30 21:56:21 +02:00
public:
2021-06-01 11:47:41 +02:00
BeatSetImpl(std::weak_ptr<BeatMap> p, const json& j);
2021-05-30 21:56:21 +02:00
BeatSetImpl(const BeatSetImpl& c) = default;
BeatSetImpl() = default;
virtual ~BeatSetImpl();
2021-06-01 11:47:41 +02:00
virtual BeatmapCharacteristic::BeatmapCharacteristic getCharacteristic() const override;
virtual std::shared_ptr<BeatMap> getBeatMap() const override;
2021-05-30 21:56:21 +02:00
};
}