summaryrefslogtreecommitdiff
path: root/libs/ardour/plugin_insert.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-02-16 00:13:30 +0100
committerRobin Gareus <robin@gareus.org>2019-02-16 01:10:50 +0100
commit3cffaeac74163535295513488756c55ba5e2dffa (patch)
tree3cf90ea9932a8f707f5dc8b04bf0113f2c743e79 /libs/ardour/plugin_insert.cc
parent26f37a47530bac5f1c21d660dcea0b794cc22f09 (diff)
Prepare to allow to disable latency-compensation
Previously "zero custom/user latency" meant "default plugin latency". This is now saved in a separate boolean allowing a user to reduce a processor's latency to zero. This also prepares for a global switch to use zero latency throughout the whole session.
Diffstat (limited to 'libs/ardour/plugin_insert.cc')
-rw-r--r--libs/ardour/plugin_insert.cc23
1 files changed, 12 insertions, 11 deletions
diff --git a/libs/ardour/plugin_insert.cc b/libs/ardour/plugin_insert.cc
index 3435fd2241..a4a5ad1972 100644
--- a/libs/ardour/plugin_insert.cc
+++ b/libs/ardour/plugin_insert.cc
@@ -651,8 +651,10 @@ PluginInsert::activate ()
if (!owner ()) {
return;
}
- if (_plugin_signal_latency != signal_latency ()) {
- _plugin_signal_latency = signal_latency ();
+
+ const samplecnt_t l = effective_latency ();
+ if (_plugin_signal_latency != l) {
+ _plugin_signal_latency = l;
latency_changed ();
}
}
@@ -671,8 +673,10 @@ PluginInsert::deactivate ()
for (Plugins::iterator i = _plugins.begin(); i != _plugins.end(); ++i) {
(*i)->deactivate ();
}
- if (_plugin_signal_latency != signal_latency ()) {
- _plugin_signal_latency = signal_latency ();
+
+ const samplecnt_t l = effective_latency ();
+ if (_plugin_signal_latency != l) {
+ _plugin_signal_latency = l;
latency_changed ();
}
}
@@ -1063,8 +1067,9 @@ PluginInsert::connect_and_run (BufferSet& bufs, samplepos_t start, samplepos_t e
}
}
- if (_plugin_signal_latency != signal_latency ()) {
- _plugin_signal_latency = signal_latency ();
+ const samplecnt_t l = effective_latency ();
+ if (_plugin_signal_latency != l) {
+ _plugin_signal_latency = l;
latency_changed ();
}
}
@@ -2906,11 +2911,7 @@ PluginInsert::signal_latency() const
if (!_pending_active) {
return 0;
}
- if (_user_latency) {
- return _user_latency;
- }
-
- return _plugins[0]->signal_latency ();
+ return plugin_latency ();
}
ARDOUR::PluginType