summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-10-30 17:42:00 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-10-30 17:42:00 +0000
commit9e1c3be0a7a2506058584cacdd11bc5acadf3399 (patch)
treee7324035001d53899c124b7292dde7150ce112f7 /libs
parent5c6c82bb797cc76e981d79c41b7a55fc87296fe0 (diff)
part two of: don't reset panner or plugin parameter values when switching automation to Write or Off to avoid losing manually-set value (#879, from carl)
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@5988 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/insert.cc5
-rw-r--r--libs/ardour/panner.cc7
2 files changed, 9 insertions, 3 deletions
diff --git a/libs/ardour/insert.cc b/libs/ardour/insert.cc
index 03b56e5167..d931f3a8e2 100644
--- a/libs/ardour/insert.cc
+++ b/libs/ardour/insert.cc
@@ -166,7 +166,10 @@ PluginInsert::auto_state_changed (uint32_t which)
{
AutomationList& alist (automation_list (which));
- if (alist.automation_state() != Off) {
+ /* don't reset automation if we're moving to Off or Write mode;
+ if we're moving to Write, the user may have manually set up automation
+ that they don't want to lose */
+ if (alist.automation_state() != Off && alist.automation_state() != Write) {
_plugins[0]->set_parameter (which, alist.eval (_session.transport_frame()));
}
}
diff --git a/libs/ardour/panner.cc b/libs/ardour/panner.cc
index d626ec4afb..473354d29e 100644
--- a/libs/ardour/panner.cc
+++ b/libs/ardour/panner.cc
@@ -224,8 +224,11 @@ BaseStereoPanner::set_automation_state (AutoState state)
if (state != _automation.automation_state()) {
_automation.set_automation_state (state);
-
- if (state != Off) {
+
+ /* don't reset pan if we're moving to Off or Write mode;
+ if we're moving to Write, the user may have manually set up pans
+ that they don't want to lose */
+ if (state != Off && state != Write) {
set_position (_automation.eval (parent.session().transport_frame()));
}
}