summaryrefslogtreecommitdiff
path: root/libs/ardour/plugin_manager.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2011-11-14 17:41:29 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2011-11-14 17:41:29 +0000
commitc66955386ecfb86b3dd2b137a8e6e4143711f329 (patch)
tree5da85b4fcf3b6c0c4c8cf2f4a49d2ed1eb88a147 /libs/ardour/plugin_manager.cc
parent28f328e09c6227ab6248c91ae0690a02d9d23300 (diff)
make PluginManager API more in line with other singletons; do initial plugin discovery before beginning to construct the UI, so that if plugins create GUIs (e.g for license verification) they don't cause a run loop to catch the UIManager in an inconsistent state with menus defined but actions missing
git-svn-id: svn://localhost/ardour2/branches/3.0@10586 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/plugin_manager.cc')
-rw-r--r--libs/ardour/plugin_manager.cc15
1 files changed, 12 insertions, 3 deletions
diff --git a/libs/ardour/plugin_manager.cc b/libs/ardour/plugin_manager.cc
index cc0fd554d5..d15f48e5f3 100644
--- a/libs/ardour/plugin_manager.cc
+++ b/libs/ardour/plugin_manager.cc
@@ -81,7 +81,16 @@ using namespace ARDOUR;
using namespace PBD;
using namespace std;
-PluginManager* PluginManager::_manager = 0;
+PluginManager* PluginManager::_instance = 0;
+
+PluginManager&
+PluginManager::instance()
+{
+ if (!_instance) {
+ _instance = new PluginManager;
+ }
+ return *_instance;
+}
PluginManager::PluginManager ()
: _vst_plugin_info(0)
@@ -133,8 +142,8 @@ PluginManager::PluginManager ()
lxvst_path = s;
}
- if (_manager == 0) {
- _manager = this;
+ if (_instance == 0) {
+ _instance = this;
}
/* the plugin manager is constructed too early to use Profile */