Line data Source code
1 : #pragma once
2 :
3 : #include "presets/i_preset_migrator.h"
4 : #include "presets/i_preset_serializer.h"
5 : #include "presets/i_preset_storage.h"
6 :
7 : namespace Amplitron {
8 :
9 : class PresetSerializer : public IPresetSerializer {
10 : public:
11 504 : PresetSerializer() = default;
12 756 : ~PresetSerializer() override = default;
13 : std::string serialize(const PresetData& preset) override;
14 : bool deserialize(const std::string& json_str, PresetData& preset) override;
15 : };
16 :
17 : class PresetStorage : public IPresetStorage {
18 : public:
19 504 : PresetStorage() = default;
20 756 : ~PresetStorage() override = default;
21 : bool save(const std::string& filepath, const std::string& data) override;
22 : std::string load(const std::string& filepath) override;
23 : std::vector<std::string> list() override;
24 : bool remove(const std::string& filepath) override;
25 : };
26 :
27 : class PresetMigrator : public IPresetMigrator {
28 : public:
29 504 : PresetMigrator() = default;
30 756 : ~PresetMigrator() override = default;
31 : std::string migrate(const std::string& raw_json) override;
32 : };
33 :
34 : } // namespace Amplitron
|