xtPatchManager.h (1657B)
1 #pragma once 2 3 #include "xtLib/xtId.h" 4 5 #include "jucePluginEditorLib/patchmanager/patchmanager.h" 6 7 namespace xtJucePlugin 8 { 9 class Editor; 10 class Controller; 11 12 class PatchManager : public jucePluginEditorLib::patchManager::PatchManager 13 { 14 public: 15 PatchManager(Editor& _editor, juce::Component* _root); 16 ~PatchManager() override; 17 18 // PatchManager overrides 19 bool requestPatchForPart(pluginLib::patchDB::Data& _data, uint32_t _part, uint64_t _userData) override; 20 bool loadRomData(pluginLib::patchDB::DataList& _results, uint32_t _bank, uint32_t _program) override; 21 pluginLib::patchDB::PatchPtr initializePatch(pluginLib::patchDB::Data&& _sysex, const std::string& _defaultPatchName) override; 22 pluginLib::patchDB::Data applyModifications(const pluginLib::patchDB::PatchPtr& _patch, const pluginLib::FileType& _fileType, pluginLib::ExportType _exportType) const override; 23 uint32_t getCurrentPart() const override; 24 bool activatePatch(const pluginLib::patchDB::PatchPtr& _patch, uint32_t _part) override; 25 bool parseFileData(pluginLib::patchDB::DataList& _results, const pluginLib::patchDB::Data& _data) override; 26 27 private: 28 pluginLib::patchDB::Data createCombinedDump(const pluginLib::patchDB::Data& _data) const; 29 void createCombinedDumps(std::vector<pluginLib::patchDB::Data>& _messages); 30 void getWaveDataForSingle(std::vector<pluginLib::patchDB::Data>& _results, const pluginLib::patchDB::Data& _single) const; 31 32 Editor& m_editor; 33 Controller& m_controller; 34 35 std::vector<pluginLib::patchDB::Data> m_singles; 36 std::map<xt::WaveId, pluginLib::patchDB::Data> m_waves; 37 std::map<xt::TableId, pluginLib::patchDB::Data> m_tables; 38 }; 39 }