summaryrefslogtreecommitdiff
path: root/libs/ardour/session_transport.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-04-27 00:57:46 +0000
committerCarl Hetherington <carl@carlh.net>2010-04-27 00:57:46 +0000
commit581376e0ed7d8934b384766ee4500dd6abeb755d (patch)
tree7c420c721e6e93fb9722e3ce72698f1981b1a3ca /libs/ardour/session_transport.cc
parent83b30a6d0609f1778f8ec8a25eac298714a0a4f2 (diff)
Make Session::audible_frame() return a (more) correct answer when the transport has changed direction since it last started rolling. Fixes some playhead anomolies when reversing the transport.
git-svn-id: svn://localhost/ardour2/branches/3.0@6999 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/session_transport.cc')
-rw-r--r--libs/ardour/session_transport.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/libs/ardour/session_transport.cc b/libs/ardour/session_transport.cc
index aab27fe68b..6d7d3b4521 100644
--- a/libs/ardour/session_transport.cc
+++ b/libs/ardour/session_transport.cc
@@ -1012,6 +1012,7 @@ Session::set_transport_speed (double speed, bool abort, bool clear_state)
if ((_transport_speed && speed * _transport_speed < 0.0) || (_last_transport_speed * speed < 0.0) || (_last_transport_speed == 0.0f && speed < 0.0f)) {
todo = PostTransportWork (todo | PostTransportReverse);
+ _last_roll_or_reversal_location = _transport_frame;
}
_last_transport_speed = _transport_speed;
@@ -1097,6 +1098,8 @@ void
Session::start_transport ()
{
_last_roll_location = _transport_frame;
+ _last_roll_or_reversal_location = _transport_frame;
+
have_looped = false;
/* if record status is Enabled, move it to Recording. if its