summaryrefslogtreecommitdiff
path: root/libs/ardour/session_process.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-04-05 06:50:54 +0200
committerRobin Gareus <robin@gareus.org>2013-04-05 06:50:54 +0200
commit985e3dcc50fc7dd66a258ae0758956a1fff8f3bd (patch)
treeff86123ada5aae297c309b00334466f57c9d8f44 /libs/ardour/session_process.cc
parent3f97d8c6d50d04b1eb18ada690a114240d1e5593 (diff)
ignore "external timecode is sync locked" for non timecode slaves.
Diffstat (limited to 'libs/ardour/session_process.cc')
-rw-r--r--libs/ardour/session_process.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/libs/ardour/session_process.cc b/libs/ardour/session_process.cc
index cd7daaf185..7ed8030e6b 100644
--- a/libs/ardour/session_process.cc
+++ b/libs/ardour/session_process.cc
@@ -515,7 +515,9 @@ Session::follow_slave (pframes_t nframes)
slave_speed = 0.0f;
}
- if (_slave->is_always_synced() || Config->get_timecode_source_is_synced()) {
+ if (_slave->is_always_synced() ||
+ (Config->get_timecode_source_is_synced() && (dynamic_cast<TimecodeSlave*>(_slave)) != 0)
+ ) {
/* if the TC source is synced, then we assume that its
speed is binary: 0.0 or 1.0
@@ -543,7 +545,9 @@ Session::follow_slave (pframes_t nframes)
_slave_state, slave_transport_frame, slave_speed, this_delta, average_slave_delta));
- if (_slave_state == Running && !_slave->is_always_synced() && !Config->get_timecode_source_is_synced()) {
+ if (_slave_state == Running && !_slave->is_always_synced() &&
+ !(Config->get_timecode_source_is_synced() && (dynamic_cast<TimecodeSlave*>(_slave)) != 0)
+ ) {
if (_transport_speed != 0.0f) {