summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/plugin_manager.h
diff options
context:
space:
mode:
authorTaybin Rutkin <taybin@taybin.com>2005-09-24 19:13:41 +0000
committerTaybin Rutkin <taybin@taybin.com>2005-09-24 19:13:41 +0000
commit8af0757b61990767f2a85e68f535a5af9976fd79 (patch)
treef9e06fe12cac866d658a2e7074a61aa74d12f68f /libs/ardour/ardour/plugin_manager.h
parentf9546e5c76afa101e9dbe8a057e72463b03430e5 (diff)
libardour added.
git-svn-id: svn://localhost/trunk/ardour2@17 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/plugin_manager.h')
-rw-r--r--libs/ardour/ardour/plugin_manager.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/libs/ardour/ardour/plugin_manager.h b/libs/ardour/ardour/plugin_manager.h
new file mode 100644
index 0000000000..1a07c67c8d
--- /dev/null
+++ b/libs/ardour/ardour/plugin_manager.h
@@ -0,0 +1,63 @@
+#ifndef __ardour_plugin_manager_h__
+#define __ardour_plugin_manager_h__
+
+#include <list>
+#include <map>
+#include <string>
+
+#include <ardour/types.h>
+
+namespace ARDOUR {
+
+class PluginInfo;
+class Plugin;
+class Session;
+class AudioEngine;
+
+class PluginManager {
+ public:
+ PluginManager (ARDOUR::AudioEngine&);
+ ~PluginManager ();
+
+ std::list<PluginInfo*> &vst_plugin_info () { return _vst_plugin_info; }
+ std::list<PluginInfo*> &ladspa_plugin_info () { return _ladspa_plugin_info; }
+ void refresh ();
+
+ int add_ladspa_directory (std::string dirpath);
+ int add_vst_directory (std::string dirpath);
+
+ Plugin *load (ARDOUR::Session& s, PluginInfo* info);
+
+ static PluginManager* the_manager() { return _manager; }
+
+ private:
+ ARDOUR::AudioEngine& _engine;
+ std::list<PluginInfo*> _vst_plugin_info;
+ std::list<PluginInfo*> _ladspa_plugin_info;
+ std::map<uint32_t, std::string> rdf_type;
+
+ std::string ladspa_path;
+ std::string vst_path;
+
+ void ladspa_refresh ();
+ void vst_refresh ();
+
+ void add_lrdf_data (const std::string &path);
+ void add_ladspa_presets ();
+ void add_vst_presets ();
+ void add_presets (std::string domain);
+
+ int vst_discover_from_path (std::string path);
+ int vst_discover (std::string path);
+
+ int ladspa_discover_from_path (std::string path);
+ int ladspa_discover (std::string path);
+
+ std::string get_ladspa_category (uint32_t id);
+
+ static PluginManager* _manager; // singleton
+};
+
+} /* namespace ARDOUR */
+
+#endif /* __ardour_plugin_manager_h__ */