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

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 }