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 f2a612fa43e396ab3c5d9d30ae4e9ef86d9c64a5
parent a82f18389090386b2307e27b6e643d91b70418eb
Author: Tal Aviram <me@talaviram.com>
Date:   Fri, 30 Jul 2021 08:52:52 +0300

controller - add getter from processor.

Diffstat:
Msource/jucePlugin/PluginProcessor.cpp | 19++++++++++++-------
Msource/jucePlugin/PluginProcessor.h | 2+-
2 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/source/jucePlugin/PluginProcessor.cpp b/source/jucePlugin/PluginProcessor.cpp @@ -86,13 +86,7 @@ void AudioPluginAudioProcessor::prepareToPlay (double sampleRate, int samplesPer { // Use this method as the place to do any pre-playback // initialisation that you need.. - if (m_controller == nullptr) - { - // initialize controller if not exists. - // assures PluginProcessor is fully constructed! - m_controller = std::make_unique<Virus::Controller>(*this); - } - + getController(); // ensures controller is constructed before calling from processBlock! m_plugin.setSamplerate(static_cast<float>(sampleRate)); m_plugin.setBlockSize(samplesPerBlock); setLatencySamples(m_plugin.getLatencySamples()); @@ -276,6 +270,17 @@ void AudioPluginAudioProcessor::addMidiEvent(const synthLib::SMidiEvent& ev) m_plugin.addMidiEvent(ev); } +Virus::Controller &AudioPluginAudioProcessor::getController() +{ + if (m_controller == nullptr) + { + // initialize controller if not exists. + // assures PluginProcessor is fully constructed! + m_controller = std::make_unique<Virus::Controller>(*this); + } + return *m_controller; +} + void AudioPluginAudioProcessor::setState(const void* _data, size_t _sizeInBytes) { if(_sizeInBytes < 1) diff --git a/source/jucePlugin/PluginProcessor.h b/source/jucePlugin/PluginProcessor.h @@ -50,7 +50,7 @@ public: // _____________ // - + Virus::Controller &getController(); bool isPluginValid() const { return m_plugin.isValid(); } void getLastMidiOut(std::vector<synthLib::SMidiEvent>& dst); void addMidiEvent(const synthLib::SMidiEvent& ev);