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 fb4244cd2604c51d596f2b36d4050d7bc8137379
parent 15462f577d4490e80cd348f6f8362a8c7f536879
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date:   Sat,  1 Jun 2024 02:47:56 +0200

add parameter links menu

Diffstat:
Msource/jucePluginEditorLib/pluginEditor.cpp | 36++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+), 0 deletions(-)

diff --git a/source/jucePluginEditorLib/pluginEditor.cpp b/source/jucePluginEditorLib/pluginEditor.cpp @@ -364,6 +364,42 @@ namespace jucePluginEditorLib } } + // Parameter links + + juce::PopupMenu linkMenu; + + menu.addSeparator(); + + for (const auto& regionId : paramRegionIds) + { + juce::PopupMenu regionMenu; + + const auto currentPart = controller.getCurrentPart(); + + for(uint8_t p=0; p<controller.getPartCount(); ++p) + { + if(p == currentPart) + continue; + + const auto isLinked = controller.getParameterLinks().isRegionLinked(regionId, currentPart, p); + + regionMenu.addItem(std::string("Link Part ") + std::to_string(p+1), true, isLinked, [this, regionId, isLinked, currentPart, p] + { + auto& links = m_processor.getController().getParameterLinks(); + + if(isLinked) + links.unlinkRegion(regionId, currentPart, p); + else + links.linkRegion(regionId, currentPart, p); + }); + } + + const auto& regionName = regions.find(regionId)->second.getName(); + linkMenu.addSubMenu("Region '" + regionName + "'", regionMenu); + } + + menu.addSubMenu("Parameter Links", linkMenu); + menu.showMenuAsync({}); return true;