diff plugin/RealTimePluginFactory.h @ 1830:5f8fbbde08ff audio-source-refactor

Use shared_ptr for plugin instances throughout
author Chris Cannam
date Fri, 20 Mar 2020 16:30:33 +0000
parents ad5f892c0c4d
children
line wrap: on
line diff
--- a/plugin/RealTimePluginFactory.h	Fri Mar 20 16:30:16 2020 +0000
+++ b/plugin/RealTimePluginFactory.h	Fri Mar 20 16:30:33 2020 +0000
@@ -24,6 +24,7 @@
 
 #include <QString>
 #include <vector>
+#include <memory>
 
 #include "base/Debug.h"
 #include "base/BaseTypes.h"
@@ -80,12 +81,12 @@
     /**
      * Get some basic information about a plugin (rapidly).
      */
-    virtual const RealTimePluginDescriptor *getPluginDescriptor(QString identifier) const = 0;
+    virtual RealTimePluginDescriptor getPluginDescriptor(QString identifier) const = 0;
 
     /**
      * Instantiate a plugin.
      */
-    virtual RealTimePluginInstance *instantiatePlugin(QString identifier,
+    virtual std::shared_ptr<RealTimePluginInstance> instantiatePlugin(QString identifier,
                                                       int clientId,
                                                       int position,
                                                       sv_samplerate_t sampleRate,
@@ -108,10 +109,6 @@
 protected:
     RealTimePluginFactory() { }
 
-    // for call by RealTimePluginInstance dtor
-    virtual void releasePlugin(RealTimePluginInstance *, QString identifier) = 0;
-    friend class RealTimePluginInstance;
-
     static sv_samplerate_t m_sampleRate;
 };