summaryrefslogtreecommitdiff
path: root/libs/ardour/vst_info_file.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2014-03-09 19:34:53 +0100
committerRobin Gareus <robin@gareus.org>2014-03-09 20:32:52 +0100
commitba0ae4818a887f39d5feac7446b09055b93fc08f (patch)
treeee8a718c2bc616c6eacd63ea8450c1a133793466 /libs/ardour/vst_info_file.cc
parentda73b0f670625e142f7784a60fa31e1eeb0666b3 (diff)
[VST] scan timeout display and per plugin timeout override.
Diffstat (limited to 'libs/ardour/vst_info_file.cc')
-rw-r--r--libs/ardour/vst_info_file.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/libs/ardour/vst_info_file.cc b/libs/ardour/vst_info_file.cc
index 1db9afbbc4..fe434909f3 100644
--- a/libs/ardour/vst_info_file.cc
+++ b/libs/ardour/vst_info_file.cc
@@ -916,7 +916,15 @@ vstfx_get_info (const char* dllpath, enum ARDOUR::PluginType type, enum VSTScanM
return infos;
} else {
int timeout = PLUGIN_SCAN_TIMEOUT;
- while (scanner.is_running() && --timeout) {
+ bool no_timeout = (timeout <= 0);
+ ARDOUR::PluginScanTimeout(timeout);
+ while (scanner.is_running() && (no_timeout || timeout > 0)) {
+ if (!no_timeout && !ARDOUR::PluginManager::instance().no_timeout()) {
+ if (timeout%5 == 0) {
+ ARDOUR::PluginScanTimeout(timeout);
+ }
+ --timeout;
+ }
ARDOUR::GUIIdle();
Glib::usleep (100000);