X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fplugin_manager.h;h=1a925432a08a1dfc5a6aa35ae439f250d2f31706;hb=5c32fc3babdd3ed7d715b6aeb24a72f3a0f550a0;hp=17400ea4d8002020b987ea7ffcb3683da293b0ab;hpb=597db6421ada94023d6087c9eafcdfc5d7610502;p=ardour.git diff --git a/libs/ardour/ardour/plugin_manager.h b/libs/ardour/ardour/plugin_manager.h index 17400ea4d8..1a925432a0 100644 --- a/libs/ardour/ardour/plugin_manager.h +++ b/libs/ardour/ardour/plugin_manager.h @@ -50,16 +50,21 @@ class LIBARDOUR_API PluginManager : public boost::noncopyable { ARDOUR::PluginInfoList &ladspa_plugin_info (); ARDOUR::PluginInfoList &lv2_plugin_info (); ARDOUR::PluginInfoList &au_plugin_info (); + ARDOUR::PluginInfoList &lua_plugin_info (); void refresh (bool cache_only = false); void cancel_plugin_scan(); + void cancel_plugin_timeout(); void clear_vst_cache (); void clear_vst_blacklist (); + void clear_au_cache (); + void clear_au_blacklist (); const std::string get_default_windows_vst_path() const { return windows_vst_path; } const std::string get_default_lxvst_path() const { return lxvst_path; } - bool cancelled () { return cancel_scan; } + bool cancelled () { return _cancel_scan; } + bool no_timeout () { return _cancel_timeout; } enum PluginStatusType { Normal = 0, @@ -74,6 +79,8 @@ class LIBARDOUR_API PluginManager : public boost::noncopyable { /** plugins were added to or removed from one of the PluginInfoLists */ PBD::Signal0 PluginListChanged; + /** Plugin Hidden/Favorite status changed */ + PBD::Signal0 PluginStatusesChanged; private: struct PluginStatus { @@ -106,15 +113,19 @@ class LIBARDOUR_API PluginManager : public boost::noncopyable { ARDOUR::PluginInfoList* _ladspa_plugin_info; ARDOUR::PluginInfoList* _lv2_plugin_info; ARDOUR::PluginInfoList* _au_plugin_info; + ARDOUR::PluginInfoList* _lua_plugin_info; std::map rdf_type; std::string windows_vst_path; std::string lxvst_path; - bool cancel_scan; + bool _cancel_scan; + bool _cancel_timeout; void ladspa_refresh (); + void lua_refresh (); + void lua_refresh_cb (); void windows_vst_refresh (bool cache_only = false); void lxvst_refresh (bool cache_only = false); @@ -124,13 +135,13 @@ class LIBARDOUR_API PluginManager : public boost::noncopyable { void add_lxvst_presets (); void add_presets (std::string domain); - void au_refresh (); + void au_refresh (bool cache_only = false); void lv2_refresh (); int windows_vst_discover_from_path (std::string path, bool cache_only = false); int windows_vst_discover (std::string path, bool cache_only = false); - + int lxvst_discover_from_path (std::string path, bool cache_only = false); int lxvst_discover (std::string path, bool cache_only = false); @@ -139,6 +150,9 @@ class LIBARDOUR_API PluginManager : public boost::noncopyable { std::string get_ladspa_category (uint32_t id); std::vector ladspa_plugin_whitelist; + PBD::ScopedConnection lua_refresh_connection; + Glib::Threads::Mutex _lock; + static PluginManager* _instance; // singleton PluginManager (); };