summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2012-06-26 01:40:34 +0000
committerCarl Hetherington <carl@carlh.net>2012-06-26 01:40:34 +0000
commit06ad59e93647ed604b026bc1680919638f3a7edc (patch)
tree7a377591d2639d03e0fccefd1c8a73ca879dde39 /libs
parenta5d013d841870ecf9dfe18e0071ed560a88cc6b8 (diff)
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
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/session.h1
-rw-r--r--libs/ardour/session.cc2
-rw-r--r--libs/ardour/session_transport.cc1
3 files changed, 3 insertions, 1 deletions
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;