21class PluginManager :
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 ();
57 auto &get_format_manager ()
const {
return format_manager_; }
69 std::unique_ptr<zrythm::plugins::PluginDescriptor>
87 std::unique_ptr<zrythm::plugins::PluginDescriptor>
pick_instrument ()
const;
89 void clear_plugins ();
97 Q_SIGNAL
void scanFinished ();
98 Q_SIGNAL
void currentlyScanningPluginChanged (
const QString &plugin);
110 void add_category_and_author (
114 static fs::path get_known_plugins_xml_path ();
115 void serialize_known_plugins ();
116 void deserialize_known_plugins ();
120 std::vector<utils::Utf8String> plugin_categories_;
123 std::vector<utils::Utf8String> plugin_authors_;
125 std::shared_ptr<juce::AudioPluginFormatManager> format_manager_;
128 std::shared_ptr<juce::KnownPluginList> known_plugin_list_;
133 std::unique_ptr<zrythm::plugins::discovery::PluginDescriptorList>
137 std::unique_ptr<PluginCollections> collections_;
139 std::unique_ptr<::zrythm::plugins::PluginScanManager> scanner_;
145 int num_new_plugins_ = 0;