Program Listing for File editor.hpp
↰ Return to documentation for file (include/editor/editor.hpp
)
#pragma once
#include "jsonWrapper.hpp"
#include "gitWrapper.hpp"
#include "dbRoot.hpp"
#include <filesystem>
#include "PDJE_EXPORT_SETTER.hpp"
#include "fileNameSanitizer.hpp"
class PDJE_API PDJE_Editor{
private:
fs::path pt;
fs::path mixp;
fs::path notep;
fs::path musicp;
fs::path kvp;
DONT_SANITIZE name;
DONT_SANITIZE email;
public:
std::pair<std::unique_ptr<PDJE_GitHandler>, PDJE_JSONHandler<MIX_W>> mixHandle;
std::pair<std::unique_ptr<PDJE_GitHandler>, PDJE_JSONHandler<NOTE_W>> noteHandle;
std::pair<std::unique_ptr<PDJE_GitHandler>, PDJE_JSONHandler<KV_W>> KVHandler;
struct MusicHandleStruct{
std::unique_ptr<PDJE_GitHandler> gith;
PDJE_JSONHandler<MUSIC_W> jsonh;
SANITIZED musicName;
fs::path dataPath;
MusicHandleStruct() = delete;
MusicHandleStruct(const MusicHandleStruct&) = delete;
// MusicHandleStruct& operator=(const MusicHandleStruct&) = delete;
MusicHandleStruct(MusicHandleStruct&&) noexcept = default;
MusicHandleStruct& operator=(MusicHandleStruct&&) noexcept = default;
MusicHandleStruct(const DONT_SANITIZE& auth_name, const DONT_SANITIZE& auth_email):
jsonh(){
gith = std::make_unique<PDJE_GitHandler>(auth_name, auth_email);
}
};
std::vector<MusicHandleStruct> musicHandle;
bool AddMusicConfig(const SANITIZED& NewMusicName, fs::path& DataPath);
bool openProject(const fs::path& projectPath);
PDJE_Editor(const DONT_SANITIZE& auth_name, const DONT_SANITIZE& auth_email):
mixHandle{
std::make_unique<PDJE_GitHandler>(auth_name, auth_email),
PDJE_JSONHandler<MIX_W>{}},
noteHandle{
std::make_unique<PDJE_GitHandler>(auth_name, auth_email),
PDJE_JSONHandler<NOTE_W>{}},
KVHandler{
std::make_unique<PDJE_GitHandler>(auth_name, auth_email),
PDJE_JSONHandler<KV_W>{}},
name(auth_name),
email(auth_email)
{}
~PDJE_Editor() = default;
};