21class PluginManager final :
public QObject
27 getPluginDescriptors CONSTANT FINAL)
31 QString currentlyScanningPlugin READ getCurrentlyScanningPlugin NOTIFY
32 currentlyScanningPluginChanged FINAL)
37 PluginManager (QObject * parent =
nullptr);
39 QString getCurrentlyScanningPlugin ()
const
41 return scanner_->getCurrentlyScanningPlugin ();
46 return scanner_.get ();
50 getPluginDescriptors ()
const
52 return plugin_descriptors_.get ();
55 Q_INVOKABLE
void beginScan ();
65 static PluginManager * get_active_instance ();
70 std::unique_ptr<zrythm::plugins::PluginDescriptor>
90 void clear_plugins ();
98 Q_SIGNAL
void scanFinished ();
99 Q_SIGNAL
void currentlyScanningPluginChanged (
const QString &plugin);
111 void add_category_and_author (
115 static fs::path get_known_plugins_xml_path ();
116 void serialize_known_plugins ();
117 void deserialize_known_plugins ();
121 std::vector<utils::Utf8String> plugin_categories_;
124 std::vector<utils::Utf8String> plugin_authors_;
126 std::shared_ptr<juce::AudioPluginFormatManager> format_manager_;
129 std::shared_ptr<juce::KnownPluginList> known_plugin_list_;
134 std::unique_ptr<zrythm::plugins::discovery::PluginDescriptorList>
138 std::unique_ptr<PluginCollections> collections_;
140 std::unique_ptr<::zrythm::plugins::PluginScanManager> scanner_;
146 int num_new_plugins_ = 0;