diff options
author | Robin Gareus <robin@gareus.org> | 2019-02-16 00:13:30 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2019-02-16 01:10:50 +0100 |
commit | 3cffaeac74163535295513488756c55ba5e2dffa (patch) | |
tree | 3cf90ea9932a8f707f5dc8b04bf0113f2c743e79 /libs/ardour/plugin_insert.cc | |
parent | 26f37a47530bac5f1c21d660dcea0b794cc22f09 (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.cc | 23 |
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 |