diff options
author | Robin Gareus <robin@gareus.org> | 2020-05-09 00:33:59 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2020-05-09 00:34:15 +0200 |
commit | ace8a0d7b921ad835e1c2500a9a568c29e3d0fab (patch) | |
tree | 8499c72370bd796249e62de27ae597e4988a4a5a /libs/ardour | |
parent | ecd55f9fec0dda36b28393cdb33c7daa9e551da9 (diff) |
LTC Generator: prefer LatencyUpdated signal
Diffstat (limited to 'libs/ardour')
-rw-r--r-- | libs/ardour/ardour/session.h | 2 | ||||
-rw-r--r-- | libs/ardour/session_ltc.cc | 17 |
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); } } |