1 #ifndef __ardour_plugin_manager_h__
2 #define __ardour_plugin_manager_h__
8 #include <boost/shared_ptr.hpp>
10 #include <ardour/types.h>
11 #include <ardour/plugin.h>
12 #include <ardour/audio_unit.h>
23 PluginManager (ARDOUR::AudioEngine&);
26 ARDOUR::PluginInfoList &vst_plugin_info () { return _vst_plugin_info; }
27 ARDOUR::PluginInfoList &ladspa_plugin_info () { return _ladspa_plugin_info; }
31 int add_ladspa_directory (std::string dirpath);
32 int add_vst_directory (std::string dirpath);
34 boost::shared_ptr<Plugin> load (ARDOUR::Session& s, PluginInfoPtr info);
36 static PluginManager* the_manager() { return _manager; }
39 ARDOUR::AudioEngine& _engine;
40 ARDOUR::PluginInfoList _vst_plugin_info;
41 ARDOUR::PluginInfoList _ladspa_plugin_info;
42 std::map<uint32_t, std::string> rdf_type;
44 std::string ladspa_path;
47 void ladspa_refresh ();
50 void add_lrdf_data (const std::string &path);
51 void add_ladspa_presets ();
52 void add_vst_presets ();
53 void add_presets (std::string domain);
55 int vst_discover_from_path (std::string path);
56 int vst_discover (std::string path);
58 int ladspa_discover_from_path (std::string path);
59 int ladspa_discover (std::string path);
61 std::string get_ladspa_category (uint32_t id);
63 static PluginManager* _manager; // singleton
66 } /* namespace ARDOUR */
68 #endif /* __ardour_plugin_manager_h__ */