comparison plugin/PluginXml.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
comparison
equal deleted inserted replaced
1829:51fd27fbce9a 1830:5f8fbbde08ff
17 #define SV_PLUGIN_XML_H 17 #define SV_PLUGIN_XML_H
18 18
19 #include "base/XmlExportable.h" 19 #include "base/XmlExportable.h"
20 #include <vamp-hostsdk/PluginBase.h> 20 #include <vamp-hostsdk/PluginBase.h>
21 21
22 #include <memory>
23
22 class QXmlAttributes; 24 class QXmlAttributes;
23 25
24 class PluginXml : public XmlExportable 26 class PluginXml : public XmlExportable
25 { 27 {
26 public: 28 public:
27 PluginXml(Vamp::PluginBase *plugin); 29 PluginXml(std::shared_ptr<Vamp::PluginBase> plugin);
28 virtual ~PluginXml(); 30 virtual ~PluginXml();
29 31
30 /** 32 /**
31 * Export plugin settings to XML. 33 * Export plugin settings to XML.
32 */ 34 */
33 void toXml(QTextStream &stream, 35 void toXml(QTextStream &stream,
34 QString indent = "", 36 QString indent = "",
35 QString extraAttributes = "") const override; 37 QString extraAttributes = "") const override;
36 38
37 /** 39 /**
38 * Set the parameters and program of a plugin from a set of XML 40 * Set the parameters and program of a plugin from a set of XML
39 * attributes. This is a partial inverse of toXml. 41 * attributes. This is a partial inverse of toXml.
40 */ 42 */
51 static QString decodeConfigurationChars(QString text); 53 static QString decodeConfigurationChars(QString text);
52 54
53 protected: 55 protected:
54 QString stripInvalidParameterNameCharacters(QString) const; 56 QString stripInvalidParameterNameCharacters(QString) const;
55 57
56 Vamp::PluginBase *m_plugin; 58 std::shared_ptr<Vamp::PluginBase> m_plugin;
57 }; 59 };
58 60
59 #endif 61 #endif