summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2020-05-09 00:33:59 +0200
committerRobin Gareus <robin@gareus.org>2020-05-09 00:34:15 +0200
commitace8a0d7b921ad835e1c2500a9a568c29e3d0fab (patch)
tree8499c72370bd796249e62de27ae597e4988a4a5a /libs
parentecd55f9fec0dda36b28393cdb33c7daa9e551da9 (diff)
LTC Generator: prefer LatencyUpdated signal
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/session.h2
-rw-r--r--libs/ardour/session_ltc.cc17
2 files changed, 10 insertions, 9 deletions
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h
index 86822f3adc..a54166937e 100644
--- a/libs/ardour/ardour/session.h
+++ b/libs/ardour/ardour/session.h
@@ -1717,7 +1717,7 @@ private:
void ltc_tx_initialize();
void ltc_tx_cleanup();
void ltc_tx_reset();
- void ltc_tx_resync_latency();
+ void ltc_tx_resync_latency (bool);
void ltc_tx_recalculate_position();
void ltc_tx_parse_offset();
PBD::ScopedConnectionList ltc_tx_connections;
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);
}
}