Refresh JUCE patch
authorIOhannes m zmölnig <zmoelnig@iem.at>
Wed, 29 Jan 2020 10:22:02 +0000 (11:22 +0100)
committerIOhannes m zmölnig <zmoelnig@iem.at>
Wed, 29 Jan 2020 10:22:16 +0000 (11:22 +0100)
debian/patches/0003-JUCE544-compat.patch

index 9ac236b8c709ae10393281cfacba874877e578cb..f7c2106a97e2ab9a8ab6a399a71568ddc3269b62 100644 (file)
@@ -8,116 +8,86 @@ Subject: JUCE544 compat
  src/core/pluginManager.cpp | 18 ++++++++----------
  3 files changed, 13 insertions(+), 15 deletions(-)
 
-diff --git a/src/core/plugin.cpp b/src/core/plugin.cpp
-index 32e9b88..26108ca 100644
---- a/src/core/plugin.cpp
-+++ b/src/core/plugin.cpp
-@@ -48,9 +48,9 @@ int Plugin::m_idGenerator = 1;
+--- giada.orig/src/core/plugin.cpp
++++ giada/src/core/plugin.cpp
+@@ -54,11 +54,11 @@
  /* -------------------------------------------------------------------------- */
  
  
--Plugin::Plugin(juce::AudioPluginInstance* plugin, double samplerate, int buffersize)
-+Plugin::Plugin(std::unique_ptr<juce::AudioPluginInstance> plugin, double samplerate, int buffersize)
- : m_ui    (nullptr),
+-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_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);
-       
-diff --git a/src/core/plugin.h b/src/core/plugin.h
-index a7cca04..1323b86 100644
---- a/src/core/plugin.h
-+++ b/src/core/plugin.h
-@@ -41,7 +41,7 @@ class Plugin
- {
+--- giada.orig/src/core/plugin.h
++++ giada/src/core/plugin.h
+@@ -45,7 +45,7 @@
  public:
  
--      Plugin(juce::AudioPluginInstance* p, double samplerate, int buffersize);
-+      Plugin(std::unique_ptr<juce::AudioPluginInstance> p, double samplerate, int buffersize);
+       Plugin(ID id, const std::string& UID);
+-      Plugin(ID id, juce::AudioPluginInstance* p, double samplerate, int buffersize);
++      Plugin(ID id, std::unique_ptr<juce::AudioPluginInstance> p, double samplerate, int buffersize);
+       Plugin(const Plugin& o);
        ~Plugin();
  
-       /* getUniqueId
-@@ -102,7 +102,7 @@ private:
-       static int m_idGenerator;
+@@ -119,7 +119,7 @@
  
-       juce::AudioProcessorEditor* m_ui;     // gui
--      juce::AudioPluginInstance*  m_plugin; // core
-+      std::unique_ptr<juce::AudioPluginInstance>  m_plugin; // core
-       juce::AudioBuffer<float>    m_buffer;
+       int countMainOutChannels() const;
  
-       int m_id;
-diff --git a/src/core/pluginManager.cpp b/src/core/pluginManager.cpp
-index 4b6d1a1..53a6186 100644
---- a/src/core/pluginManager.cpp
-+++ b/src/core/pluginManager.cpp
-@@ -104,14 +104,14 @@ VSTs: their ID is based on the plug-in file location. E.g.:
+-      juce::AudioPluginInstance* m_plugin;
++      std::unique_ptr<juce::AudioPluginInstance> m_plugin;
+       juce::AudioBuffer<float>   m_buffer;
+       std::atomic<bool> m_bypass;
+--- giada.orig/src/core/pluginManager.cpp
++++ giada/src/core/pluginManager.cpp
+@@ -105,14 +105,14 @@
  
  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)
+-const juce::PluginDescription* findPluginDescription_(const std::string& id)
++std::unique_ptr<juce::PluginDescription> findPluginDescription_(const std::string& id)
  {
-       vector<string> idParts = splitPluginDescription_(id);
+       std::vector<std::string> idParts = splitPluginDescription_(id);
  
 -      for (const juce::PluginDescription* pd : knownPluginList_) {
 +      for (auto pd : knownPluginList_) {
-               vector<string> tmpIdParts = splitPluginDescription_(pd->createIdentifierString().toStdString());
+               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;
  }
-@@ -181,10 +181,9 @@ int saveList(const string& filepath)
+@@ -184,7 +184,7 @@
  
- int loadList(const string& filepath)
+ int loadList(const std::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). */
+-      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 @@
+       
+       pluginId_.set(id);
  
 -      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)
-               }
+               u::log::print("[pluginManager::makePlugin] no plugin found with fid=%s!\n", fid.c_str());
+               missingPlugins_ = true;
+@@ -210,7 +210,7 @@
+               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) {
-               gu_log("[pluginManager::makePlugin] unable to create instance with fid=%s!\n", fid.c_str());
+       if (pi == nullptr) {
+               u::log::print("[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_);
- }