projects
/
ardour.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f049d02
)
do not needlessly keep starting touch/automation watch passes just because a command...
author
Paul Davis
<paul@linuxaudiosystems.com>
Wed, 19 Feb 2014 17:53:19 +0000
(12:53 -0500)
committer
Paul Davis
<paul@linuxaudiosystems.com>
Thu, 20 Feb 2014 04:25:08 +0000
(23:25 -0500)
libs/ardour/automation_control.cc
patch
|
blob
|
history
diff --git
a/libs/ardour/automation_control.cc
b/libs/ardour/automation_control.cc
index 2586a14b5841810d0891a1cbfd8a49167a7cf954..355b0176ced0fe09ad8f6933dad613c4901a8a94 100644
(file)
--- a/
libs/ardour/automation_control.cc
+++ b/
libs/ardour/automation_control.cc
@@
-117,15
+117,23
@@
AutomationControl::set_automation_style (AutoStyle as)
void
AutomationControl::start_touch(double when)
{
void
AutomationControl::start_touch(double when)
{
- set_touching (true);
- alist()->start_touch(when);
- AutomationWatch::instance().add_automation_watch (shared_from_this());
+ if (!touching()) {
+ if (alist()->automation_state() == Touch) {
+ alist()->start_touch (when);
+ AutomationWatch::instance().add_automation_watch (shared_from_this());
+ }
+ set_touching (true);
+ }
}
void
AutomationControl::stop_touch(bool mark, double when)
{
}
void
AutomationControl::stop_touch(bool mark, double when)
{
- set_touching (false);
- alist()->stop_touch (mark, when);
- AutomationWatch::instance().remove_automation_watch (shared_from_this());
+ if (touching()) {
+ set_touching (false);
+ if (alist()->automation_state() == Touch) {
+ alist()->stop_touch (mark, when);
+ AutomationWatch::instance().remove_automation_watch (shared_from_this());
+ }
+ }
}
}