diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2015-10-20 09:07:51 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2015-10-20 09:07:58 -0400 |
commit | 336b2eb9a4a8634bae84a15e952d20335aa28c12 (patch) | |
tree | ab171341dd5ab7915ae77c937673ae586116ecb9 /libs/ardour/plugin.cc | |
parent | f1a6d7816d13d3eca5885494f711b88a8270c899 (diff) |
rename ParameterChanged signal in Plugin to ParameterChangedExternally to reflect its intent, and clean up the result.
The signal exists to notify listeners that something outside of the host's control (e.g. a plugin's own GUI for AU or VST)
has modified a plugin parameter. Previous code had strange feedback loops and ambiguous semantics.
Significant modification of LV2 GUI updating was required.
Still to be tested for feedback loop issues: AudioUnits
Diffstat (limited to 'libs/ardour/plugin.cc')
-rw-r--r-- | libs/ardour/plugin.cc | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/libs/ardour/plugin.cc b/libs/ardour/plugin.cc index f14c56798b..d68502713c 100644 --- a/libs/ardour/plugin.cc +++ b/libs/ardour/plugin.cc @@ -356,19 +356,21 @@ Plugin::clear_preset () PresetLoaded (); /* EMIT SIGNAL */ } -/** @param val `plugin' value */ void -Plugin::set_parameter (uint32_t which, float) +Plugin::set_parameter (uint32_t /* which */, float /* value */) { _parameter_changed_since_last_preset = true; _session.set_dirty (); - ParameterChanged (which, get_parameter (which)); /* EMIT SIGNAL */ + PresetDirty (); /* EMIT SIGNAL */ } void -Plugin::set_parameter_automated (uint32_t which, float val) +Plugin::parameter_changed_externally (uint32_t which, float /* value */) { - Plugin::set_parameter (which, val); + _parameter_changed_since_last_preset = true; + _session.set_dirty (); + ParameterChangedExternally (which, get_parameter (which)); /* EMIT SIGNAL */ + PresetDirty (); /* EMIT SIGNAL */ } int |