X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fplugin_manager.h;h=1a925432a08a1dfc5a6aa35ae439f250d2f31706;hb=74a604d261b1ecb0f20ee0c69aef7648da3a1d86;hp=0806935a26e5748344eb6c087bd34ed357f438f3;hpb=30de04a58ccab82d00ff87ebdd2cece6c0aa388b;p=ardour.git diff --git a/libs/ardour/ardour/plugin_manager.h b/libs/ardour/ardour/plugin_manager.h index 0806935a26..1a925432a0 100644 --- a/libs/ardour/ardour/plugin_manager.h +++ b/libs/ardour/ardour/plugin_manager.h @@ -50,14 +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 (); - 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, @@ -72,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 { @@ -104,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); @@ -122,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); @@ -137,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 (); };