Mercurial > hg > svcore
comparison plugin/LADSPAPluginFactory.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 |
---|---|
42 | 42 |
43 const std::vector<QString> &getPluginIdentifiers() const override; | 43 const std::vector<QString> &getPluginIdentifiers() const override; |
44 | 44 |
45 void enumeratePlugins(std::vector<QString> &list) override; | 45 void enumeratePlugins(std::vector<QString> &list) override; |
46 | 46 |
47 const RealTimePluginDescriptor *getPluginDescriptor(QString identifier) const override; | 47 RealTimePluginDescriptor getPluginDescriptor(QString identifier) |
48 const override; | |
48 | 49 |
49 RealTimePluginInstance *instantiatePlugin(QString identifier, | 50 std::shared_ptr<RealTimePluginInstance> |
50 int clientId, | 51 instantiatePlugin(QString identifier, |
51 int position, | 52 int clientId, |
52 sv_samplerate_t sampleRate, | 53 int position, |
53 int blockSize, | 54 sv_samplerate_t sampleRate, |
54 int channels) override; | 55 int blockSize, |
56 int channels) override; | |
55 | 57 |
56 QString getPluginCategory(QString identifier) override; | 58 QString getPluginCategory(QString identifier) override; |
57 | 59 |
58 QString getPluginLibraryPath(QString identifier) override; | 60 QString getPluginLibraryPath(QString identifier) override; |
59 | 61 |
77 | 79 |
78 virtual void discoverPluginsFrom(QString soName); | 80 virtual void discoverPluginsFrom(QString soName); |
79 virtual void generateTaxonomy(QString uri, QString base); | 81 virtual void generateTaxonomy(QString uri, QString base); |
80 virtual void generateFallbackCategories(); | 82 virtual void generateFallbackCategories(); |
81 | 83 |
82 void releasePlugin(RealTimePluginInstance *, QString) override; | |
83 | |
84 virtual const LADSPA_Descriptor *getLADSPADescriptor(QString identifier); | 84 virtual const LADSPA_Descriptor *getLADSPADescriptor(QString identifier); |
85 | 85 |
86 void loadLibrary(QString soName); | 86 void loadLibrary(QString soName); |
87 void unloadLibrary(QString soName); | 87 void unloadLibrary(QString soName); |
88 void unloadUnusedLibraries(); | 88 void unloadUnusedLibraries(); |
89 | 89 |
90 std::vector<QString> m_identifiers; | 90 std::vector<QString> m_identifiers; |
91 std::map<QString, QString> m_libraries; // identifier -> full file path | 91 std::map<QString, QString> m_libraries; // identifier -> full file path |
92 std::map<QString, RealTimePluginDescriptor *> m_rtDescriptors; | 92 std::map<QString, RealTimePluginDescriptor> m_rtDescriptors; |
93 | 93 |
94 std::map<QString, QString> m_taxonomy; | 94 std::map<QString, QString> m_taxonomy; |
95 std::map<unsigned long, QString> m_lrdfTaxonomy; | 95 std::map<unsigned long, QString> m_lrdfTaxonomy; |
96 std::map<unsigned long, std::map<int, float> > m_portDefaults; | 96 std::map<unsigned long, std::map<int, float> > m_portDefaults; |
97 | 97 |
98 std::set<RealTimePluginInstance *> m_instances; | 98 std::set<std::weak_ptr<RealTimePluginInstance>, |
99 std::owner_less<std::weak_ptr<RealTimePluginInstance>>> m_instances; | |
99 | 100 |
100 typedef std::map<QString, void *> LibraryHandleMap; | 101 typedef std::map<QString, void *> LibraryHandleMap; |
101 LibraryHandleMap m_libraryHandles; | 102 LibraryHandleMap m_libraryHandles; |
102 }; | 103 }; |
103 | 104 |