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 83ce2f463e60f25d363d104bd1026d534704e09d
parent 64180151569adff31c012819e42cb8ae42a74a78
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date:   Sun, 20 Mar 2022 02:15:45 +0100

support disable/enable with alpha, defined by custom properties

Diffstat:
Msource/jucePlugin/ui3/FxPage.cpp | 4++--
Msource/jucePlugin/ui3/Parts.cpp | 10+++++-----
Msource/jucePlugin/ui3/VirusEditor.cpp | 15+++++++++++++++
Msource/jucePlugin/ui3/VirusEditor.h | 3+++
4 files changed, 25 insertions(+), 7 deletions(-)

diff --git a/source/jucePlugin/ui3/FxPage.cpp b/source/jucePlugin/ui3/FxPage.cpp @@ -44,7 +44,7 @@ namespace genericVirusUI const bool isReverb = (value > 1 && value < 5); - m_delayContainer->setVisible(!isReverb); - m_reverbContainer->setVisible(isReverb); + VirusEditor::setEnabled(*m_delayContainer, !isReverb); + VirusEditor::setEnabled(*m_reverbContainer, isReverb); } } diff --git a/source/jucePlugin/ui3/Parts.cpp b/source/jucePlugin/ui3/Parts.cpp @@ -145,15 +145,15 @@ namespace genericVirusUI { const bool visible = multiMode || !i; - m_partSelect[i]->setVisible(visible); - m_partPan[i]->setVisible(visible); - m_partVolume[i]->setVisible(visible); + VirusEditor::setEnabled(*m_partSelect[i], visible); + VirusEditor::setEnabled(*m_partPan[i], visible); + VirusEditor::setEnabled(*m_partVolume[i], visible); if(i < m_presetPrev.size()) - m_presetPrev[i]->setVisible(visible); + VirusEditor::setEnabled(*m_presetPrev[i], visible); if(i < m_presetNext.size()) - m_presetNext[i]->setVisible(visible); + VirusEditor::setEnabled(*m_presetNext[i], visible); m_presetName[i]->setVisible(visible); } diff --git a/source/jucePlugin/ui3/VirusEditor.cpp b/source/jucePlugin/ui3/VirusEditor.cpp @@ -101,6 +101,21 @@ namespace genericVirusUI return m_processor.getController(); } + void VirusEditor::setEnabled(juce::Component& _component, bool _enable) + { + if(_component.getProperties().contains("disabledAlpha")) + { + float a = _component.getProperties()["disabledAlpha"]; + + _component.setAlpha(_enable ? 1.0f : a); + _component.setEnabled(_enable); + } + else + { + _component.setVisible(_enable); + } + } + const char* VirusEditor::getResourceByFilename(const std::string& _name, uint32_t& _dataSize) { for(size_t i=0; i<BinaryData::namedResourceListSize; ++i) diff --git a/source/jucePlugin/ui3/VirusEditor.h b/source/jucePlugin/ui3/VirusEditor.h @@ -24,6 +24,9 @@ namespace genericVirusUI VirusParameterBinding& getParameterBinding() const { return m_parameterBinding; } Virus::Controller& getController() const; + + static void setEnabled(juce::Component& _component, bool _enable); + private: const char* getResourceByFilename(const std::string& _name, uint32_t& _dataSize) override; int getParameterIndexByName(const std::string& _name) override;