fix Session::audible_frame() return when transport speed has been reversed, by resett...
authorPaul Davis <paul@linuxaudiosystems.com>
Wed, 12 Nov 2008 06:47:59 +0000 (06:47 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Wed, 12 Nov 2008 06:47:59 +0000 (06:47 +0000)
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@4143 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/session.cc
libs/ardour/session_transport.cc

index e6d8fa9c670619f2072d3551b58aa82dd6bc765c..ae755720ad3f347a34f4a4f604308c52d471297b 100644 (file)
@@ -1377,7 +1377,7 @@ Session::audible_frame () const
        nframes_t ret;
        nframes_t offset;
        nframes_t tf;
-       
+
        if (_transport_speed == 0.0f) {
                return last_stop_frame;
        }
@@ -1410,7 +1410,7 @@ Session::audible_frame () const
        } else {
                tf = _transport_frame;
        }
-
+       
        ret = tf;
 
        if (!non_realtime_work_pending()) {
index 83bac047ac8af5b27c98012c18aa5e9a934a7f1f..0249350d2e392a264c99c69e4ceee772e4b8b311 100644 (file)
@@ -207,8 +207,7 @@ Session::butler_transport_work ()
        }
 
        if (post_transport_work & PostTransportReverse) {
-
-
+               
                clear_clicks();
                cumulative_rf_motion = 0;
                reset_rf_scale (0);
@@ -865,6 +864,7 @@ Session::set_transport_speed (float speed, bool abort)
 
                if ((_transport_speed && speed * _transport_speed < 0.0f) || (_last_transport_speed * speed < 0.0f) || (_last_transport_speed == 0.0f && speed < 0.0f)) {
                        post_transport_work = PostTransportWork (post_transport_work | PostTransportReverse);
+                       last_stop_frame = _transport_frame;
                }
                
                _last_transport_speed = _transport_speed;