summaryrefslogtreecommitdiff
path: root/libs/ardour/session_ltc.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/session_ltc.cc')
-rw-r--r--libs/ardour/session_ltc.cc17
1 files changed, 9 insertions, 8 deletions
diff --git a/libs/ardour/session_ltc.cc b/libs/ardour/session_ltc.cc
index 26e16047cb..5c3da63f17 100644
--- a/libs/ardour/session_ltc.cc
+++ b/libs/ardour/session_ltc.cc
@@ -84,9 +84,9 @@ Session::ltc_tx_initialize()
ltc_speed = 0;
ltc_prev_cycle = -1;
ltc_tx_reset();
- ltc_tx_resync_latency();
+ ltc_tx_resync_latency (true);
Xrun.connect_same_thread (ltc_tx_connections, boost::bind (&Session::ltc_tx_reset, this));
- engine().GraphReordered.connect_same_thread (ltc_tx_connections, boost::bind (&Session::ltc_tx_resync_latency, this));
+ LatencyUpdated.connect_same_thread (ltc_tx_connections, boost::bind (&Session::ltc_tx_resync_latency, this, _1));
restarting = false;
}
@@ -102,14 +102,15 @@ Session::ltc_tx_cleanup()
}
void
-Session::ltc_tx_resync_latency()
+Session::ltc_tx_resync_latency (bool playback)
{
+ if (deletion_in_progress() || !playback) {
+ return;
+ }
DEBUG_TRACE (DEBUG::TXLTC, "resync latency\n");
- if (!deletion_in_progress()) {
- boost::shared_ptr<Port> ltcport = ltc_output_port();
- if (ltcport) {
- ltcport->get_connected_latency_range(ltc_out_latency, true);
- }
+ boost::shared_ptr<Port> ltcport = ltc_output_port();
+ if (ltcport) {
+ ltcport->get_connected_latency_range(ltc_out_latency, true);
}
}