PatchManager.h (1507B)
1 #pragma once 2 3 #include "jucePluginEditorLib/patchmanager/patchmanager.h" 4 #include "jucePluginLib/patchdb/patch.h" 5 6 #include "virusLib/microcontrollerTypes.h" 7 8 namespace virus 9 { 10 class Controller; 11 } 12 13 namespace genericVirusUI 14 { 15 class VirusEditor; 16 17 class PatchManager : public jucePluginEditorLib::patchManager::PatchManager 18 { 19 public: 20 PatchManager(VirusEditor& _editor, juce::Component* _root); 21 ~PatchManager() override; 22 23 // PatchDB impl 24 bool loadRomData(pluginLib::patchDB::DataList& _results, uint32_t _bank, uint32_t _program) override; 25 std::shared_ptr<pluginLib::patchDB::Patch> initializePatch(std::vector<uint8_t>&& _sysex, const std::string& _defaultPatchName) override; 26 pluginLib::patchDB::Data applyModifications(const pluginLib::patchDB::PatchPtr& _patch, const pluginLib::FileType& _fileType, pluginLib::ExportType _exportType) const override; 27 bool parseFileData(std::vector<std::vector<uint8_t>>& _results, const std::vector<uint8_t>& _data) override; 28 bool requestPatchForPart(pluginLib::patchDB::Data& _data, uint32_t _part, uint64_t _userData) override; 29 uint32_t getCurrentPart() const override; 30 bool equals(const pluginLib::patchDB::PatchPtr& _a, const pluginLib::patchDB::PatchPtr& _b) const override; 31 32 // PatchManager impl 33 bool activatePatch(const pluginLib::patchDB::PatchPtr& _patch, uint32_t _part) override; 34 35 private: 36 void addRomPatches(); 37 pluginLib::patchDB::DataSource createRomDataSource(uint32_t _bank) const; 38 39 virus::Controller& m_controller; 40 }; 41 }