commit f12e103a0ed637ee41523b1bccc39cc238187e43
parent d5731f76a9d2c5d1986566be1e27b08f7d5013f9
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date: Tue, 27 Aug 2024 21:40:25 +0200
fix crash when storing performance via "Store" button while slot A is selected
Diffstat:
4 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/doc/changelog.txt b/doc/changelog.txt
@@ -13,6 +13,7 @@ NodalRed2x:
- [Fix] Negative VM MAP values were displayed as maximum positive values after loading
a patch or DAW state
- [Fix] Performances saved via "Store" button couldn't be loaded
+- [Fix] Crash when storing a performance via "Store" button while slot A is selected
1.3.19
diff --git a/source/jucePluginEditorLib/patchmanager/patchmanager.h b/source/jucePluginEditorLib/patchmanager/patchmanager.h
@@ -93,9 +93,9 @@ 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", uint64_t _userData = 0);
- uint32_t createSaveMenuEntries(juce::PopupMenu& _menu, const std::string& _name = "patch")
+ uint32_t createSaveMenuEntries(juce::PopupMenu& _menu, const std::string& _name = "patch", uint64_t _userData = 0)
{
- return createSaveMenuEntries(_menu, getCurrentPart(), _name);
+ return createSaveMenuEntries(_menu, getCurrentPart(), _name, _userData);
}
std::string getTagTypeName(pluginLib::patchDB::TagType _type) const;
diff --git a/source/nord/n2x/n2xJucePlugin/n2xEditor.cpp b/source/nord/n2x/n2xJucePlugin/n2xEditor.cpp
@@ -201,7 +201,7 @@ namespace n2xJucePlugin
if(getPatchManager()->createSaveMenuEntries(menu, "Program"))
menu.addSeparator();
- getPatchManager()->createSaveMenuEntries(menu, m_controller.getPartCount(), "Performance");
+ getPatchManager()->createSaveMenuEntries(menu, "Performance", 1);
menu.showMenuAsync({});
}
diff --git a/source/nord/n2x/n2xJucePlugin/n2xPatchManager.cpp b/source/nord/n2x/n2xJucePlugin/n2xPatchManager.cpp
@@ -35,10 +35,10 @@ namespace n2xJucePlugin
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));
- else
+ if(_userData)
_data = m_controller.createMultiDump(n2x::SysexByte::MultiDumpBankA, 0);
+ else
+ _data = m_controller.createSingleDump(n2x::SysexByte::SingleDumpBankA, 0, static_cast<uint8_t>(_part));
return !_data.empty();
}