Implemented parsing of loop station presets

This commit is contained in:
2022-12-27 22:47:46 +01:00
parent b2f688c178
commit 56d56947c9
16 changed files with 981 additions and 371 deletions

62
loopstationpresets.h Normal file
View File

@@ -0,0 +1,62 @@
#pragma once
#include <vector>
#include <map>
#include <optional>
#include <array>
#include <QString>
#include <QDateTime>
namespace loopstation_presets {
struct Filter
{
std::optional<std::vector<QString>> tags;
};
struct Category
{
std::optional<QString> title;
std::optional<Filter> filter;
};
struct LessonPad
{
std::optional<int> tap;
};
struct Lesson
{
std::optional<int> version;
std::optional<QString> name;
std::optional<int> id;
std::optional<int> orderBy;
std::optional<std::map<QString, std::vector<LessonPad>>> pads;
};
struct Preset
{
std::optional<QString> id;
std::optional<QString> audioPreviewUrl;
std::optional<QString> author;
std::optional<int> bpm;
std::optional<std::vector<Lesson>> lessons;
std::optional<QString> coverUrl;
std::optional<int> loopLength;
std::optional<QString> orderBy;
std::optional<std::array<QString, 48>> pads;
std::optional<bool> premium;
std::optional<std::vector<QString>> tags;
std::optional<QString> title;
// TODO beatschool
std::optional<bool> DELETED;
};
struct PresetsConfig
{
std::optional<std::vector<Category>> categories;
std::optional<std::map<QString, Preset>> presets;
};
} // namespace loopstation_presets