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 6f9fbdca74107e50c0bcb5356b505e832aac0946
parent e908e0ce5854522912000e010ced17c9bb0cb1a3
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date:   Sun, 24 Nov 2024 03:47:29 +0100

toggle vm map via shift key

Diffstat:
Msource/nord/n2x/n2xJucePlugin/CMakeLists.txt | 1+
Msource/nord/n2x/n2xJucePlugin/n2xEditor.cpp | 13+++++++++++++
Msource/nord/n2x/n2xJucePlugin/n2xEditor.h | 12+++++++++++-
Asource/nord/n2x/n2xJucePlugin/n2xSlider.cpp | 16++++++++++++++++
Asource/nord/n2x/n2xJucePlugin/n2xSlider.h | 24++++++++++++++++++++++++
5 files changed, 65 insertions(+), 1 deletion(-)

diff --git a/source/nord/n2x/n2xJucePlugin/CMakeLists.txt b/source/nord/n2x/n2xJucePlugin/CMakeLists.txt @@ -19,6 +19,7 @@ set(SOURCES n2xPatchManager.cpp n2xPatchManager.h n2xPluginEditorState.cpp n2xPluginEditorState.h n2xPluginProcessor.cpp n2xPluginProcessor.h + n2xSlider.cpp n2xSlider.h n2xVmMap.cpp n2xVmMap.h parameterDescriptions_n2x.json skins/n2xTrancy/n2xTrancy.json diff --git a/source/nord/n2x/n2xJucePlugin/n2xEditor.cpp b/source/nord/n2x/n2xJucePlugin/n2xEditor.cpp @@ -12,6 +12,7 @@ #include "n2xParts.h" #include "n2xPatchManager.h" #include "n2xPluginProcessor.h" +#include "n2xSlider.h" #include "n2xVmMap.h" #include "jucePluginEditorLib/midiPorts.h" @@ -185,6 +186,18 @@ namespace n2xJucePlugin m_lcd->updatePatchName(); } + genericUI::Slider* Editor::createJuceComponent(genericUI::Slider* _slider, genericUI::UiObject& _object) + { + return new Slider(*this); + } + + void Editor::modifierKeysChanged(const juce::ModifierKeys& modifiers) + { + jucePluginEditorLib::Editor::modifierKeysChanged(modifiers); + + m_vmMap->setEnabled(modifiers.isShiftDown()); + } + void Editor::mouseEnter(const juce::MouseEvent& _ev) { m_focusedParameter->onMouseEnter(_ev); diff --git a/source/nord/n2x/n2xJucePlugin/n2xEditor.h b/source/nord/n2x/n2xJucePlugin/n2xEditor.h @@ -56,7 +56,7 @@ namespace n2xJucePlugin Lcd& getLCD() const { assert(m_lcd); - return *m_lcd.get(); + return *m_lcd; } FocusedParameter& getFocusedParameter() const @@ -65,6 +65,16 @@ namespace n2xJucePlugin return *m_focusedParameter; } + VmMap& getVmMap() const + { + assert(m_vmMap); + return *m_vmMap; + } + + genericUI::Slider* createJuceComponent(genericUI::Slider*, genericUI::UiObject& _object) override; + + void modifierKeysChanged(const juce::ModifierKeys& modifiers) override; + private: void mouseEnter(const juce::MouseEvent& _ev) override; void onBtSave() const; diff --git a/source/nord/n2x/n2xJucePlugin/n2xSlider.cpp b/source/nord/n2x/n2xJucePlugin/n2xSlider.cpp @@ -0,0 +1,16 @@ +#include "n2xSlider.h" + +#include "n2xEditor.h" +#include "n2xVmMap.h" + +namespace n2xJucePlugin +{ + Slider::Slider(Editor& _editor) : genericUI::Slider(), m_editor(_editor) + { + } + + void Slider::modifierKeysChanged(const juce::ModifierKeys& _modifiers) + { + m_editor.getVmMap().setEnabled(_modifiers.isShiftDown()); + } +} diff --git a/source/nord/n2x/n2xJucePlugin/n2xSlider.h b/source/nord/n2x/n2xJucePlugin/n2xSlider.h @@ -0,0 +1,24 @@ +#pragma once + +#include "juceUiLib/slider.h" + +namespace genericUI +{ + class UiObject; +} + +namespace n2xJucePlugin +{ + class Editor; + + class Slider : public genericUI::Slider + { + public: + Slider(Editor& _editor); + + void modifierKeysChanged(const juce::ModifierKeys& _modifiers) override; + + private: + Editor& m_editor; + }; +}