diff options
author | Robin Gareus <robin@gareus.org> | 2012-12-21 22:47:38 +0000 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2012-12-21 22:47:38 +0000 |
commit | 1d7e9daea431466cb4efb1ec2789009109daba02 (patch) | |
tree | 2bc9643be983527192e4911864b9b2a27d13140e | |
parent | d01a9599a4edf27d0de5da0a462e64db3401d511 (diff) |
fix for problem when reverse playback hits 00:00:00:00 (may be incomplete)
should fix #5221
git-svn-id: svn://localhost/ardour2/branches/3.0@13708 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r-- | libs/ardour/session_process.cc | 1 | ||||
-rw-r--r-- | libs/ardour/session_transport.cc | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/libs/ardour/session_process.cc b/libs/ardour/session_process.cc index 05b800fead..0a44829bd2 100644 --- a/libs/ardour/session_process.cc +++ b/libs/ardour/session_process.cc @@ -349,6 +349,7 @@ Session::process_with_events (pframes_t nframes) } end_frame = _transport_frame + frames_moved; + _transport_frame = std::max((ARDOUR::framepos_t) 0, _transport_frame); { SessionEvent* this_event; diff --git a/libs/ardour/session_transport.cc b/libs/ardour/session_transport.cc index 037ca83484..693074cf9a 100644 --- a/libs/ardour/session_transport.cc +++ b/libs/ardour/session_transport.cc @@ -851,6 +851,7 @@ Session::micro_locate (framecnt_t distance) } _transport_frame += distance; + _transport_frame = std::max((ARDOUR::framepos_t) 0, _transport_frame); return 0; } @@ -896,6 +897,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 + target_frame = std::max((ARDOUR::framepos_t) 0, target_frame); _transport_frame = target_frame; _last_roll_or_reversal_location = target_frame; timecode_time(_transport_frame, transmitting_timecode_time); |