diff options
author | David Robillard <d@drobilla.net> | 2009-10-22 17:17:34 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2009-10-22 17:17:34 +0000 |
commit | 155338d168b362dd135597695aaa1e419831a277 (patch) | |
tree | c2f97ff4b99366b72418765cb4a69ccbd4c45065 /libs/ardour/ardour | |
parent | 525da3281674a92ff00150098ef1be7a403555dd (diff) |
Defer plugin discovery until actually needed (significant startup time improvement, especially with LV2).
git-svn-id: svn://localhost/ardour2/branches/3.0@5859 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r-- | libs/ardour/ardour/audio_unit.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/lv2_plugin.h | 4 | ||||
-rw-r--r-- | libs/ardour/ardour/plugin_manager.h | 21 |
3 files changed, 12 insertions, 15 deletions
diff --git a/libs/ardour/ardour/audio_unit.h b/libs/ardour/ardour/audio_unit.h index a1f22a88df..d1dd92dd3d 100644 --- a/libs/ardour/ardour/audio_unit.h +++ b/libs/ardour/ardour/audio_unit.h @@ -166,7 +166,7 @@ class AUPluginInfo : public PluginInfo { AUPluginCachedInfo cache; - static PluginInfoList discover (); + static PluginInfoList* discover (); static void get_names (CAComponentDescription&, std::string& name, Glib::ustring& maker); static std::string stringify_descriptor (const CAComponentDescription&); diff --git a/libs/ardour/ardour/lv2_plugin.h b/libs/ardour/ardour/lv2_plugin.h index f2773a3d6c..9705459ee1 100644 --- a/libs/ardour/ardour/lv2_plugin.h +++ b/libs/ardour/ardour/lv2_plugin.h @@ -176,7 +176,7 @@ struct LV2World { SLV2Value srate; SLV2Value gtk_gui; SLV2Value external_gui; - SLV2Value logarithmic; + SLV2Value logarithmic; }; @@ -184,7 +184,7 @@ class LV2PluginInfo : public PluginInfo { public: LV2PluginInfo (void* slv2_world, void* slv2_plugin);; ~LV2PluginInfo ();; - static PluginInfoList discover (void* slv2_world); + static PluginInfoList* discover (void* slv2_world); PluginPtr load (Session& session); diff --git a/libs/ardour/ardour/plugin_manager.h b/libs/ardour/ardour/plugin_manager.h index c792b539a7..d564d62a87 100644 --- a/libs/ardour/ardour/plugin_manager.h +++ b/libs/ardour/ardour/plugin_manager.h @@ -46,12 +46,10 @@ class PluginManager : public boost::noncopyable { PluginManager (); ~PluginManager (); - /* realtime plugin APIs */ - - ARDOUR::PluginInfoList &vst_plugin_info () { return _vst_plugin_info; } - ARDOUR::PluginInfoList &ladspa_plugin_info () { return _ladspa_plugin_info; } - ARDOUR::PluginInfoList &lv2_plugin_info () { return _lv2_plugin_info; } - ARDOUR::PluginInfoList &au_plugin_info () { return _au_plugin_info; } + ARDOUR::PluginInfoList &vst_plugin_info (); + ARDOUR::PluginInfoList &ladspa_plugin_info (); + ARDOUR::PluginInfoList &lv2_plugin_info (); + ARDOUR::PluginInfoList &au_plugin_info (); void refresh (); @@ -85,10 +83,11 @@ class PluginManager : public boost::noncopyable { typedef std::set<FavoritePlugin> FavoritePluginList; FavoritePluginList favorites; - ARDOUR::PluginInfoList _vst_plugin_info; - ARDOUR::PluginInfoList _ladspa_plugin_info; - ARDOUR::PluginInfoList _lv2_plugin_info; - ARDOUR::PluginInfoList _au_plugin_info; + ARDOUR::PluginInfoList _empty_plugin_info; + ARDOUR::PluginInfoList* _vst_plugin_info; + ARDOUR::PluginInfoList* _ladspa_plugin_info; + ARDOUR::PluginInfoList* _lv2_plugin_info; + ARDOUR::PluginInfoList* _au_plugin_info; #ifdef HAVE_SLV2 LV2World* _lv2_world; @@ -107,10 +106,8 @@ class PluginManager : public boost::noncopyable { void add_vst_presets (); void add_presets (std::string domain); - int au_discover (); void au_refresh (); - int lv2_discover (); void lv2_refresh (); int vst_discover_from_path (std::string path); |