From 06ad59e93647ed604b026bc1680919638f3a7edc Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 26 Jun 2012 01:40:34 +0000 Subject: [PATCH] Fix some oddities with playhead movement when locating during roll. git-svn-id: svn://localhost/ardour2/branches/3.0@12937 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/ardour/session.h | 1 + libs/ardour/session.cc | 2 +- libs/ardour/session_transport.cc | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index eb84c0685e..4c87b759b1 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -1052,6 +1052,7 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi int load_state (std::string snapshot_name); framepos_t _last_roll_location; + /** the session frame time at which we last rolled, located, or changed transport direction */ framepos_t _last_roll_or_reversal_location; framepos_t _last_record_location; diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index a38f6a129a..bcba42f01d 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -1263,7 +1263,7 @@ Session::audible_frame () const of audible frames, we have not moved yet. `Start position' in this context means the time we last - either started or changed transport direction. + either started, located, or changed transport direction. */ if (_transport_speed > 0.0f) { diff --git a/libs/ardour/session_transport.cc b/libs/ardour/session_transport.cc index 27896f6e67..205c682b6f 100644 --- a/libs/ardour/session_transport.cc +++ b/libs/ardour/session_transport.cc @@ -880,6 +880,7 @@ Session::locate (framepos_t target_frame, bool with_roll, bool with_flush, bool // Update Timecode time // [DR] FIXME: find out exactly where this should go below _transport_frame = target_frame; + _last_roll_or_reversal_location = target_frame; timecode_time(_transport_frame, transmitting_timecode_time); outbound_mtc_timecode_frame = _transport_frame; next_quarter_frame_to_send = 0;