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>
Tue, 20 Aug 2019 13:32:54 +0000 (15:32 +0200)
Gbp-Pq: Name 0003-JUCE544-compat.patch

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

index 32e9b888d57fde04417514812b039a4e2a003705..26108ca725db297cdefa86fbbc9210ea5af0ac24 100644 (file)
@@ -48,9 +48,9 @@ int Plugin::m_idGenerator = 1;
 /* -------------------------------------------------------------------------- */
 
 
-Plugin::Plugin(juce::AudioPluginInstance* plugin, double samplerate, int buffersize)
+Plugin::Plugin(std::unique_ptr<juce::AudioPluginInstance> plugin, double samplerate, int buffersize)
 : m_ui    (nullptr),
-  m_plugin(plugin),
+  m_plugin(std::move(plugin)),
   m_id    (m_idGenerator++),
   m_bypass(false)
 {
@@ -59,7 +59,7 @@ Plugin::Plugin(juce::AudioPluginInstance* plugin, double samplerate, int buffers
        /* Init midiInParams. All values are empty (0x0): they will be filled during
        midi learning process. */
 
-       const OwnedArray<AudioProcessorParameter>& params = m_plugin->getParameters();
+       auto params = m_plugin->getParameters();
        for (int i=0; i<params.size(); i++)
                midiInParams.push_back(0x0);
        
index a7cca047a7ffcbc2cc152a903afad386e2c1c719..1323b86a102929ee7cfd738ba977757ba7cd709e 100644 (file)
@@ -41,7 +41,7 @@ class Plugin
 {
 public:
 
-       Plugin(juce::AudioPluginInstance* p, double samplerate, int buffersize);
+       Plugin(std::unique_ptr<juce::AudioPluginInstance> p, double samplerate, int buffersize);
        ~Plugin();
 
        /* getUniqueId
@@ -102,7 +102,7 @@ private:
        static int m_idGenerator;
 
        juce::AudioProcessorEditor* m_ui;     // gui
-       juce::AudioPluginInstance*  m_plugin; // core
+       std::unique_ptr<juce::AudioPluginInstance>  m_plugin; // core
        juce::AudioBuffer<float>    m_buffer;
 
        int m_id;
index 4b6d1a1e4a78730e5bb32365a447a834d6825e5e..53a6186f131a8d29d3ab7926e791e7d6c19c6e43 100644 (file)
@@ -104,14 +104,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 string& id)
+std::unique_ptr<juce::PluginDescription> findPluginDescription_(const string& id)
 {
        vector<string> idParts = splitPluginDescription_(id);
 
-       for (const juce::PluginDescription* pd : knownPluginList_) {
+       for (auto pd : knownPluginList_) {
                vector<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;
 }
@@ -181,10 +181,9 @@ int saveList(const string& filepath)
 
 int loadList(const string& filepath)
 {
-       juce::XmlElement* elem = juce::XmlDocument::parse(juce::File(filepath));
+       std::unique_ptr<juce::XmlElement> elem = juce::XmlDocument::parse(juce::File(filepath));
        if (elem != nullptr) {
                knownPluginList_.recreateFromXml(*elem);
-               delete elem;
                return 1;
        }
        return 0;
@@ -199,11 +198,11 @@ std::unique_ptr<Plugin> makePlugin(const string& fid)
        /* Initialize plugin. The default mode uses getTypeForIdentifierString, 
        falling back to  getTypeForFile (deprecated) for old patches (< 0.14.4). */
 
-       const juce::PluginDescription* pd = findPluginDescription_(fid);
+       auto pd = findPluginDescription_(fid);
        if (pd == nullptr) {
                gu_log("[pluginManager::makePlugin] no plugin found with fid=%s! Trying with "
                        "deprecated mode...\n", fid.c_str());
-               pd = knownPluginList_.getTypeForFile(fid);
+               pd = std::move(knownPluginList_.getTypeForFile(fid));
                if (pd == nullptr) {
                        gu_log("[pluginManager::makePlugin] still nothing to do, returning unknown plugin\n");
                        missingPlugins_ = true;
@@ -212,15 +211,14 @@ std::unique_ptr<Plugin> makePlugin(const string& fid)
                }
        }
 
-       juce::AudioPluginInstance* pi = pluginFormat_.createInstanceFromDescription(*pd, samplerate_, buffersize_);
+       auto pi = pluginFormat_.createInstanceFromDescription(*pd, samplerate_, buffersize_);
        if (!pi) {
                gu_log("[pluginManager::makePlugin] unable to create instance with fid=%s!\n", fid.c_str());
                missingPlugins_ = true;
                return {};
        }
        gu_log("[pluginManager::makePlugin] plugin instance with fid=%s created\n", fid.c_str());
-
-       return std::make_unique<Plugin>(pi, samplerate_, buffersize_);
+       return std::make_unique<Plugin>(std::move(pi), samplerate_, buffersize_);
 }