diff options
author | Carl Hetherington <carl@carlh.net> | 2010-04-27 00:57:46 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-04-27 00:57:46 +0000 |
commit | 581376e0ed7d8934b384766ee4500dd6abeb755d (patch) | |
tree | 7c420c721e6e93fb9722e3ce72698f1981b1a3ca /libs/ardour/session_transport.cc | |
parent | 83b30a6d0609f1778f8ec8a25eac298714a0a4f2 (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.cc | 3 |
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 |