X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fplugin_manager.h;h=1a925432a08a1dfc5a6aa35ae439f250d2f31706;hb=5c32fc3babdd3ed7d715b6aeb24a72f3a0f550a0;hp=73de0eb704b3c37dbb95b9832d80e2ec446f926e;hpb=b0e4f81eb3a38b7236ec39f11d5211840a064d15;p=ardour.git diff --git a/libs/ardour/ardour/plugin_manager.h b/libs/ardour/ardour/plugin_manager.h index 73de0eb704..1a925432a0 100644 --- a/libs/ardour/ardour/plugin_manager.h +++ b/libs/ardour/ardour/plugin_manager.h @@ -41,6 +41,7 @@ class Plugin; class LIBARDOUR_API PluginManager : public boost::noncopyable { public: static PluginManager& instance(); + static std::string scanner_bin_path; ~PluginManager (); @@ -49,12 +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 (); + 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 (); - int add_ladspa_directory (std::string dirpath); - int add_windows_vst_directory (std::string dirpath); - int add_lxvst_directory (std::string dirpath); + 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 no_timeout () { return _cancel_timeout; } enum PluginStatusType { Normal = 0, @@ -69,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 { @@ -101,16 +113,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; std::map rdf_type; - std::string ladspa_path; std::string windows_vst_path; std::string lxvst_path; + bool _cancel_scan; + bool _cancel_timeout; + void ladspa_refresh (); - void windows_vst_refresh (); - void lxvst_refresh (); + void lua_refresh (); + void lua_refresh_cb (); + void windows_vst_refresh (bool cache_only = false); + void lxvst_refresh (bool cache_only = false); void add_lrdf_data (const std::string &path); void add_ladspa_presets (); @@ -118,22 +135,24 @@ 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); - int windows_vst_discover (std::string path); - - int lxvst_discover_from_path (std::string path); - int lxvst_discover (std::string path); + 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); - int ladspa_discover_from_path (std::string path); int ladspa_discover (std::string path); 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 (); };