m_bypass (false)
{
/* Initialize midiInParams vector, where midiInParams.size == number of
+@@ -87,12 +87,12 @@
+ /* -------------------------------------------------------------------------- */
+
+
+-Plugin::Plugin(const Plugin& o)
++Plugin::Plugin(Plugin& o)
+ : id (o.id),
++ midiInParams(o.midiInParams),
+ valid (o.valid),
+- m_plugin (o.m_plugin),
+- m_bypass (o.m_bypass.load()),
+- midiInParams(o.midiInParams)
++ m_plugin (std::move(o.m_plugin)),
++ m_bypass (o.m_bypass.load())
+ {
+ }
+
--- giada.orig/src/core/plugin.h
+++ giada/src/core/plugin.h
-@@ -45,7 +45,7 @@
+@@ -45,8 +45,8 @@
public:
Plugin(ID id, const std::string& UID);
- Plugin(ID id, juce::AudioPluginInstance* p, double samplerate, int buffersize);
+- Plugin(const Plugin& o);
+ Plugin(ID id, std::unique_ptr<juce::AudioPluginInstance> p, double samplerate, int buffersize);
- Plugin(const Plugin& o);
++ Plugin(Plugin& o);
~Plugin();
+ /* getUniqueId
@@ -117,7 +117,7 @@
int countMainOutChannels() const;
if (pi == nullptr) {
u::log::print("[pluginManager::makePlugin] unable to create instance with fid=%s!\n", fid.c_str());
missingPlugins_ = true;
+@@ -219,7 +219,7 @@
+ }
+ u::log::print("[pluginManager::makePlugin] plugin instance with fid=%s created\n", fid.c_str());
+
+- return std::make_unique<Plugin>(pluginId_.get(id), pi, samplerate_, buffersize_);
++ return std::make_unique<Plugin>(pluginId_.get(id), std::move(pi), samplerate_, buffersize_);
+ }
+
+