JUCE544 compat
authorIOhannes m zmölnig <zmoelnig@umlautS.umlaeute.mur.at>
Tue, 20 Aug 2019 12:38:49 +0000 (14:38 +0200)
committerIOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>
Thu, 2 Apr 2020 13:19:12 +0000 (15:19 +0200)
Gbp-Pq: Name 03-JUCE544-compat.patch

src/core/plugin.cpp
src/core/plugin.h
src/core/pluginManager.cpp

index aa30bc3af4af6ae8b40250c1f8d39e29dcf30fe0..2ad3760d29b55940b6fb1bafe3eb25b3ccb5645c 100644 (file)
@@ -54,11 +54,11 @@ Plugin::Plugin(ID id, const std::string& UID)
 /* -------------------------------------------------------------------------- */
 
 
-Plugin::Plugin(ID id, juce::AudioPluginInstance* plugin, double samplerate,
+Plugin::Plugin(ID id, std::unique_ptr<juce::AudioPluginInstance> plugin, double samplerate,
        int buffersize)
 : id          (id),
   valid       (true),
-  m_plugin    (plugin),
+  m_plugin    (std::move(plugin)),
   m_bypass    (false)
 {
        /* Initialize midiInParams vector, where midiInParams.size == number of 
@@ -87,12 +87,12 @@ Plugin::Plugin(ID id, juce::AudioPluginInstance* plugin, double samplerate,
 /* -------------------------------------------------------------------------- */
 
 
-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())
 {
 }
 
index 898ea2d6d3374d680f434ef7bc225052e43d87b0..e2cae433727df98f736ac8e2f6a6eff06c52ab16 100644 (file)
@@ -45,8 +45,8 @@ class Plugin
 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(Plugin& o);
        ~Plugin();
 
        /* getUniqueId
@@ -117,7 +117,7 @@ private:
 
        int countMainOutChannels() const;
 
-       juce::AudioPluginInstance* m_plugin;
+       std::unique_ptr<juce::AudioPluginInstance> m_plugin;
        juce::AudioBuffer<float>   m_buffer;
 
        std::atomic<bool> m_bypass;
index 9746da9cf608a1aa053d6c1e645a730afa15a3dd..3f9729ea303cb22849c4ffb91fb3bd9aaee1f615 100644 (file)
@@ -105,14 +105,14 @@ VSTs: their ID is based on the plug-in file location. E.g.:
 
 The following function simply drops the first hash code during comparison. */
 
-const juce::PluginDescription* findPluginDescription_(const std::string& id)
+std::unique_ptr<juce::PluginDescription> findPluginDescription_(const std::string& id)
 {
        std::vector<std::string> idParts = splitPluginDescription_(id);
 
-       for (const juce::PluginDescription* pd : knownPluginList_) {
+       for (auto pd : knownPluginList_) {
                std::vector<std::string> tmpIdParts = splitPluginDescription_(pd->createIdentifierString().toStdString());
                if (idParts[0] == tmpIdParts[0] && idParts[2] == tmpIdParts[2])
-                       return pd;
+                       return std::unique_ptr<juce::PluginDescription> (pd);
        }
        return nullptr;
 }
@@ -184,7 +184,7 @@ int saveList(const std::string& filepath)
 
 int loadList(const std::string& filepath)
 {
-       std::unique_ptr<juce::XmlElement> elem(juce::XmlDocument::parse(juce::File(filepath)));
+       auto elem(juce::XmlDocument::parse(juce::File(filepath)));
        if (elem == nullptr)
                return 0;
        knownPluginList_.recreateFromXml(*elem);
@@ -202,7 +202,7 @@ std::unique_ptr<Plugin> makePlugin(const std::string& fid, ID id)
        
        pluginId_.set(id);
 
-       const juce::PluginDescription* pd = findPluginDescription_(fid);
+       auto pd = findPluginDescription_(fid);
        if (pd == nullptr) {
                u::log::print("[pluginManager::makePlugin] no plugin found with fid=%s!\n", fid.c_str());
                missingPlugins_ = true;
@@ -210,7 +210,7 @@ std::unique_ptr<Plugin> makePlugin(const std::string& fid, ID id)
                return std::make_unique<Plugin>(pluginId_.get(id), fid); // Invalid plug-in
        }
 
-       juce::AudioPluginInstance* pi = pluginFormat_.createInstanceFromDescription(*pd, samplerate_, buffersize_);
+       auto pi = pluginFormat_.createInstanceFromDescription(*pd, samplerate_, buffersize_);
        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 @@ std::unique_ptr<Plugin> makePlugin(const std::string& fid, ID id)
        }
        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_);
 }