commit 49d1ba4a2daf0dc1921562756593a144e6673796
parent fe520f8e9e7be9be0e279b24f6295fc1ae854755
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date: Sat, 19 Mar 2022 01:30:00 +0100
make various controls optional due to the Trancy skin not having them / different onces
Diffstat:
3 files changed, 42 insertions(+), 15 deletions(-)
diff --git a/source/jucePlugin/ui3/Parts.cpp b/source/jucePlugin/ui3/Parts.cpp
@@ -20,8 +20,13 @@ namespace genericVirusUI
for(size_t i=0; i<m_partSelect.size(); ++i)
{
m_partSelect[i]->onClick = [this, i]{ selectPart(i); };
- m_presetPrev[i]->onClick = [this, i]{ selectPrevPreset(i); };
- m_presetNext[i]->onClick = [this, i]{ selectNextPreset(i); };
+
+ if(!m_presetPrev.empty())
+ m_presetPrev[i]->onClick = [this, i]{ selectPrevPreset(i); };
+
+ if(!m_presetNext.empty())
+ m_presetNext[i]->onClick = [this, i]{ selectNextPreset(i); };
+
m_presetName[i]->onClick = [this, i]{ selectPreset(i); };
_editor.getParameterBinding().bind(*m_partVolume[i], Virus::Param_PartVolume, static_cast<uint8_t>(i));
@@ -134,8 +139,13 @@ namespace genericVirusUI
m_partSelect[i]->setVisible(visible);
m_partPan[i]->setVisible(visible);
m_partVolume[i]->setVisible(visible);
- m_presetPrev[i]->setVisible(visible);
- m_presetNext[i]->setVisible(visible);
+
+ if(i < m_presetPrev.size())
+ m_presetPrev[i]->setVisible(visible);
+
+ if(i < m_presetNext.size())
+ m_presetNext[i]->setVisible(visible);
+
m_presetName[i]->setVisible(visible);
}
}
diff --git a/source/jucePlugin/ui3/VirusEditor.cpp b/source/jucePlugin/ui3/VirusEditor.cpp
@@ -28,11 +28,20 @@ namespace genericVirusUI
m_controlLabel = findComponentT<juce::Label>("ControlLabel");
m_romSelector = findComponentT<juce::ComboBox>("RomSelector");
- m_playModeSingle = findComponentT<juce::Button>("PlayModeSingle");
- m_playModeMulti = findComponentT<juce::Button>("PlayModeMulti");
+ m_playModeSingle = findComponentT<juce::Button>("PlayModeSingle", false);
+ m_playModeMulti = findComponentT<juce::Button>("PlayModeMulti", false);
+
+ if(m_playModeSingle && m_playModeMulti)
+ {
+ m_playModeSingle->onClick = [this]{ setPlayMode(virusLib::PlayMode::PlayModeSingle); };
+ m_playModeMulti->onClick = [this]{ setPlayMode(virusLib::PlayMode::PlayModeMulti); };
+ }
+ else
+ {
+ m_playModeToggle = findComponentT<juce::Button>("PlayModeToggle");
+ m_playModeToggle->onClick = [this]{ setPlayMode(m_playModeToggle->getToggleState() ? virusLib::PlayMode::PlayModeMulti : virusLib::PlayMode::PlayModeSingle); };
+ }
- m_playModeSingle->onClick = [this]{ setPlayMode(virusLib::PlayMode::PlayModeSingle); };
- m_playModeMulti->onClick = [this]{ setPlayMode(virusLib::PlayMode::PlayModeMulti); };
updatePlayModeButtons();
if(m_romSelector)
@@ -51,7 +60,7 @@ namespace genericVirusUI
m_controlLabel->setText("", juce::dontSendNotification);
- auto* versionInfo = findComponentT<juce::Label>("VersionInfo");
+ auto* versionInfo = findComponentT<juce::Label>("VersionInfo", false);
if(versionInfo)
{
@@ -59,11 +68,13 @@ namespace genericVirusUI
versionInfo->setText(message, juce::dontSendNotification);
}
- auto* presetSave = findComponentT<juce::Button>("PresetSave");
- presetSave->onClick = [this] { savePreset(); };
+ auto* presetSave = findComponentT<juce::Button>("PresetSave", false);
+ if(presetSave)
+ presetSave->onClick = [this] { savePreset(); };
- auto* presetLoad = findComponentT<juce::Button>("PresetLoad");
- presetLoad->onClick = [this] { loadPreset(); };
+ auto* presetLoad = findComponentT<juce::Button>("PresetLoad", false);
+ if(presetLoad)
+ presetLoad->onClick = [this] { loadPreset(); };
m_presetName->setEditable(false, true, true);
m_presetName->onTextChange = [this]()
@@ -204,8 +215,12 @@ namespace genericVirusUI
void VirusEditor::updatePlayModeButtons() const
{
- m_playModeSingle->setToggleState(!getController().isMultiMode(), juce::dontSendNotification);
- m_playModeMulti->setToggleState(getController().isMultiMode(), juce::dontSendNotification);
+ if(m_playModeSingle)
+ m_playModeSingle->setToggleState(!getController().isMultiMode(), juce::dontSendNotification);
+ if(m_playModeMulti)
+ m_playModeMulti->setToggleState(getController().isMultiMode(), juce::dontSendNotification);
+ if(m_playModeToggle)
+ m_playModeToggle->setToggleState(getController().isMultiMode(), juce::dontSendNotification);
}
void VirusEditor::savePreset()
diff --git a/source/jucePlugin/ui3/VirusEditor.h b/source/jucePlugin/ui3/VirusEditor.h
@@ -8,6 +8,7 @@
#include "MidiPorts.h"
#include "PatchBrowser.h"
+class VirusParameterBinding;
class AudioPluginAudioProcessor;
namespace genericVirusUI
@@ -63,6 +64,7 @@ namespace genericVirusUI
juce::Button* m_playModeSingle = nullptr;
juce::Button* m_playModeMulti = nullptr;
+ juce::Button* m_playModeToggle = nullptr;
juce::TooltipWindow m_tooltipWindow;