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 f5e641416cdfce2bf2718ac409ff5fd5510a2c9d
parent b59efc27d52896e5533e2f39b926a49fc1f1a067
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date:   Sat, 22 Feb 2025 00:29:06 +0100

make parameter description noncopyable, parameters only hold a ref now instead of copying it

Diffstat:
Msource/jucePluginLib/controller.h | 2+-
Msource/jucePluginLib/parameter.h | 2+-
Msource/jucePluginLib/parameterdescription.h | 7+++++++
Msource/jucePluginLib/parameterdescriptions.cpp | 2+-
4 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/source/jucePluginLib/controller.h b/source/jucePluginLib/controller.h @@ -152,7 +152,7 @@ namespace pluginLib private: Processor& m_processor; - ParameterDescriptions m_descriptions; + const ParameterDescriptions m_descriptions; uint8_t m_currentPart = 0; diff --git a/source/jucePluginLib/parameter.h b/source/jucePluginLib/parameter.h @@ -116,7 +116,7 @@ namespace pluginLib int clampValue(int _value) const; Controller& m_controller; - const Description m_desc; + const Description& m_desc; juce::NormalisableRange<float> m_range; const uint8_t m_part; const int m_uniqueId; // 0 for all unique parameters, > 0 if multiple Parameter instances reference a single synth parameter diff --git a/source/jucePluginLib/parameterdescription.h b/source/jucePluginLib/parameterdescription.h @@ -23,6 +23,13 @@ namespace pluginLib { static constexpr int NoDefaultValue = std::numeric_limits<int>::max(); + Description() = default; + Description(const Description&) = delete; + Description(Description&&) noexcept = default; + Description& operator = (const Description&) = delete; + Description& operator = (Description&&) noexcept = default; + ~Description() = default; + uint8_t page; uint8_t index; int classFlags; diff --git a/source/jucePluginLib/parameterdescriptions.cpp b/source/jucePluginLib/parameterdescriptions.cpp @@ -295,7 +295,7 @@ namespace pluginLib } } - m_descriptions.push_back(d); + m_descriptions.emplace_back(std::move(d)); } for (size_t i=0; i<m_descriptions.size(); ++i)