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:
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)