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

commit b982b55ccf3ac2404c0f7a75715284324d2e912d
parent a6ca2c18fe318d7a319b382bfda230651cb479de
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date:   Tue, 27 Aug 2024 21:32:44 +0200

add ability to provider userdata to patch request by patch manager to distinguish between different patch types

Diffstat:
Msource/jucePluginEditorLib/patchmanager/patchmanager.cpp | 14+++++++-------
Msource/jucePluginEditorLib/patchmanager/patchmanager.h | 2+-
Msource/jucePluginLib/patchdb/db.cpp | 4++--
Msource/jucePluginLib/patchdb/db.h | 4++--
Msource/mqJucePlugin/mqPatchManager.cpp | 2+-
Msource/mqJucePlugin/mqPatchManager.h | 2+-
Msource/nord/n2x/n2xJucePlugin/n2xPatchManager.cpp | 2+-
Msource/nord/n2x/n2xJucePlugin/n2xPatchManager.h | 2+-
Msource/virusJucePlugin/PatchManager.cpp | 2+-
Msource/virusJucePlugin/PatchManager.h | 2+-
Msource/xtJucePlugin/xtPatchManager.cpp | 2+-
Msource/xtJucePlugin/xtPatchManager.h | 2+-
12 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/source/jucePluginEditorLib/patchmanager/patchmanager.cpp b/source/jucePluginEditorLib/patchmanager/patchmanager.cpp @@ -384,7 +384,7 @@ namespace jucePluginEditorLib::patchManager }); } - uint32_t PatchManager::createSaveMenuEntries(juce::PopupMenu& _menu, uint32_t _part, const std::string& _name/* = "patch"*/) + uint32_t PatchManager::createSaveMenuEntries(juce::PopupMenu& _menu, uint32_t _part, const std::string& _name/* = "patch"*/, uint64_t _userData/* = 0*/) { const auto& state = getState(); const auto key = state.getPatch(_part); @@ -403,9 +403,9 @@ namespace jucePluginEditorLib::patchManager if(*p == key) { ++countAdded; - _menu.addItem("Overwrite " + _name + " '" + p->getName() + "' in user bank '" + ds->name + "'", true, false, [this, p, _part] + _menu.addItem("Overwrite " + _name + " '" + p->getName() + "' in user bank '" + ds->name + "'", true, false, [this, p, _part, _userData] { - const auto newPatch = requestPatchForPart(_part); + const auto newPatch = requestPatchForPart(_part, _userData); if(newPatch) { replacePatch(p, newPatch); @@ -426,9 +426,9 @@ namespace jucePluginEditorLib::patchManager for (const auto& ds : existingLocalDS) { ++countAdded; - _menu.addItem("Add " + _name + " to user bank '" + ds->name + "'", true, false, [this, ds, _part] + _menu.addItem("Add " + _name + " to user bank '" + ds->name + "'", true, false, [this, ds, _part, _userData] { - const auto newPatch = requestPatchForPart(_part); + const auto newPatch = requestPatchForPart(_part, _userData); if(!newPatch) return; @@ -440,9 +440,9 @@ namespace jucePluginEditorLib::patchManager else { ++countAdded; - _menu.addItem("Create new user bank and add " + _name, true, false, [this, _part] + _menu.addItem("Create new user bank and add " + _name, true, false, [this, _part, _userData] { - const auto newPatch = requestPatchForPart(_part); + const auto newPatch = requestPatchForPart(_part, _userData); if(!newPatch) return; diff --git a/source/jucePluginEditorLib/patchmanager/patchmanager.h b/source/jucePluginEditorLib/patchmanager/patchmanager.h @@ -92,7 +92,7 @@ namespace jucePluginEditorLib::patchManager void copyPatchesToLocalStorage(const pluginLib::patchDB::DataSourceNodePtr& _ds, const std::vector<pluginLib::patchDB::PatchPtr>& _patches, int _part); - uint32_t createSaveMenuEntries(juce::PopupMenu& _menu, uint32_t _part, const std::string& _name = "patch"); + uint32_t createSaveMenuEntries(juce::PopupMenu& _menu, uint32_t _part, const std::string& _name = "patch", uint64_t _userData = 0); uint32_t createSaveMenuEntries(juce::PopupMenu& _menu, const std::string& _name = "patch") { return createSaveMenuEntries(_menu, getCurrentPart(), _name); diff --git a/source/jucePluginLib/patchdb/db.cpp b/source/jucePluginLib/patchdb/db.cpp @@ -589,10 +589,10 @@ namespace pluginLib::patchDB return true; } - PatchPtr DB::requestPatchForPart(const uint32_t _part) + PatchPtr DB::requestPatchForPart(const uint32_t _part, const uint64_t _userData) { Data data; - requestPatchForPart(data, _part); + requestPatchForPart(data, _part, _userData); return initializePatch(std::move(data)); } diff --git a/source/jucePluginLib/patchdb/db.h b/source/jucePluginLib/patchdb/db.h @@ -72,8 +72,8 @@ namespace pluginLib::patchDB static bool isValid(const PatchPtr& _patch); - PatchPtr requestPatchForPart(uint32_t _part); - virtual bool requestPatchForPart(Data& _data, uint32_t _part) = 0; + PatchPtr requestPatchForPart(uint32_t _part, uint64_t _userData = 0); + virtual bool requestPatchForPart(Data& _data, uint32_t _part, uint64_t _userData) = 0; bool isLoading() const { return m_loading; } bool isScanning() const { return !m_loader.empty(); } diff --git a/source/mqJucePlugin/mqPatchManager.cpp b/source/mqJucePlugin/mqPatchManager.cpp @@ -26,7 +26,7 @@ namespace mqJucePlugin stopLoaderThread(); } - bool PatchManager::requestPatchForPart(pluginLib::patchDB::Data& _data, uint32_t _part) + bool PatchManager::requestPatchForPart(pluginLib::patchDB::Data& _data, uint32_t _part, uint64_t) { _data = m_controller.createSingleDump(mqLib::MidiBufferNum::SingleBankA, static_cast<mqLib::MidiSoundLocation>(0), _part, _part); return !_data.empty(); diff --git a/source/mqJucePlugin/mqPatchManager.h b/source/mqJucePlugin/mqPatchManager.h @@ -14,7 +14,7 @@ namespace mqJucePlugin ~PatchManager() override; // PatchManager overrides - bool requestPatchForPart(pluginLib::patchDB::Data& _data, uint32_t _part) override; + bool requestPatchForPart(pluginLib::patchDB::Data& _data, uint32_t _part, uint64_t _userData) override; bool loadRomData(pluginLib::patchDB::DataList& _results, uint32_t _bank, uint32_t _program) override; pluginLib::patchDB::PatchPtr initializePatch(pluginLib::patchDB::Data&& _sysex) override; pluginLib::patchDB::Data prepareSave(const pluginLib::patchDB::PatchPtr& _patch) const override; diff --git a/source/nord/n2x/n2xJucePlugin/n2xPatchManager.cpp b/source/nord/n2x/n2xJucePlugin/n2xPatchManager.cpp @@ -33,7 +33,7 @@ namespace n2xJucePlugin stopLoaderThread(); } - bool PatchManager::requestPatchForPart(pluginLib::patchDB::Data& _data, const uint32_t _part) + bool PatchManager::requestPatchForPart(pluginLib::patchDB::Data& _data, const uint32_t _part, const uint64_t _userData) { if(_part < m_controller.getPartCount()) _data = m_controller.createSingleDump(n2x::SysexByte::SingleDumpBankA, 0, static_cast<uint8_t>(_part)); diff --git a/source/nord/n2x/n2xJucePlugin/n2xPatchManager.h b/source/nord/n2x/n2xJucePlugin/n2xPatchManager.h @@ -14,7 +14,7 @@ namespace n2xJucePlugin ~PatchManager() override; // PatchManager overrides - bool requestPatchForPart(pluginLib::patchDB::Data& _data, uint32_t _part) override; + bool requestPatchForPart(pluginLib::patchDB::Data& _data, uint32_t _part, uint64_t _userData) override; bool loadRomData(pluginLib::patchDB::DataList& _results, uint32_t _bank, uint32_t _program) override; pluginLib::patchDB::PatchPtr initializePatch(pluginLib::patchDB::Data&& _sysex) override; pluginLib::patchDB::Data prepareSave(const pluginLib::patchDB::PatchPtr& _patch) const override; diff --git a/source/virusJucePlugin/PatchManager.cpp b/source/virusJucePlugin/PatchManager.cpp @@ -350,7 +350,7 @@ namespace genericVirusUI return !_results.empty(); } - bool PatchManager::requestPatchForPart(pluginLib::patchDB::Data& _data, const uint32_t _part) + bool PatchManager::requestPatchForPart(pluginLib::patchDB::Data& _data, const uint32_t _part, uint64_t) { _data = m_controller.createSingleDump(static_cast<uint8_t>(_part), toMidiByte(virusLib::BankNumber::A), 0); return !_data.empty(); diff --git a/source/virusJucePlugin/PatchManager.h b/source/virusJucePlugin/PatchManager.h @@ -25,7 +25,7 @@ namespace genericVirusUI std::shared_ptr<pluginLib::patchDB::Patch> initializePatch(std::vector<uint8_t>&& _sysex) override; pluginLib::patchDB::Data prepareSave(const pluginLib::patchDB::PatchPtr& _patch) const override; bool parseFileData(std::vector<std::vector<uint8_t>>& _results, const std::vector<uint8_t>& _data) override; - bool requestPatchForPart(pluginLib::patchDB::Data& _data, uint32_t _part) override; + bool requestPatchForPart(pluginLib::patchDB::Data& _data, uint32_t _part, uint64_t _userData) override; uint32_t getCurrentPart() const override; bool equals(const pluginLib::patchDB::PatchPtr& _a, const pluginLib::patchDB::PatchPtr& _b) const override; diff --git a/source/xtJucePlugin/xtPatchManager.cpp b/source/xtJucePlugin/xtPatchManager.cpp @@ -30,7 +30,7 @@ namespace xtJucePlugin stopLoaderThread(); } - bool PatchManager::requestPatchForPart(pluginLib::patchDB::Data& _data, const uint32_t _part) + bool PatchManager::requestPatchForPart(pluginLib::patchDB::Data& _data, const uint32_t _part, uint64_t) { _data = m_controller.createSingleDump(xt::LocationH::SingleBankA, 0, static_cast<uint8_t>(_part)); return !_data.empty(); diff --git a/source/xtJucePlugin/xtPatchManager.h b/source/xtJucePlugin/xtPatchManager.h @@ -14,7 +14,7 @@ namespace xtJucePlugin ~PatchManager() override; // PatchManager overrides - bool requestPatchForPart(pluginLib::patchDB::Data& _data, uint32_t _part) override; + bool requestPatchForPart(pluginLib::patchDB::Data& _data, uint32_t _part, uint64_t _userData) override; bool loadRomData(pluginLib::patchDB::DataList& _results, uint32_t _bank, uint32_t _program) override; pluginLib::patchDB::PatchPtr initializePatch(pluginLib::patchDB::Data&& _sysex) override; pluginLib::patchDB::Data prepareSave(const pluginLib::patchDB::PatchPtr& _patch) const override;