samplepos_t audible_sample (bool* latent_locate = NULL) const;
samplepos_t requested_return_sample() const { return _requested_return_sample; }
void set_requested_return_sample(samplepos_t return_to);
+ boost::optional<samplepos_t> const & nominal_jack_transport_sample() { return _nominal_jack_transport_sample; }
bool compute_audible_delta (samplepos_t& pos_and_delta) const;
samplecnt_t remaining_latency_preroll () const { return _remaining_latency_preroll; }
CoreSelection* _selection;
bool _global_locate_pending;
+ boost::optional<samplepos_t> _nominal_jack_transport_sample;
};
// Update Timecode time
_transport_sample = target_sample;
+ _nominal_jack_transport_sample = boost::none;
// Bump seek counter so that any in-process locate in the butler
// thread(s?) can restart.
g_atomic_int_inc (&_seek_counter);
{
Timecode::BBT_Time bbt;
TempoMap& tempo_map (_session->tempo_map());
- samplepos_t tf = _session->transport_sample ();
+ samplepos_t tf;
+
+ /* see commit msg for e2c26e1b9 and Session::start_locate() for
+ details.
+ */
+
+ tf = _session->nominal_jack_transport_sample().value_or (_session->transport_sample());
/* BBT info */
}
#endif
}
-