gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

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 }