fix transport issues when loop-is-mode is off.

Session::unset_play_loop() needed to be a no-op if play loop was
already false, and this was exacerbated now that it potentially
schedules butler transport work.
This commit is contained in:
Paul Davis 2015-02-19 10:33:20 -05:00
parent b18bd1ed0e
commit 37ae5bb30c

View file

@ -833,15 +833,18 @@ Session::check_declick_out ()
void
Session::unset_play_loop ()
{
play_loop = false;
clear_events (SessionEvent::AutoLoop);
clear_events (SessionEvent::AutoLoopDeclick);
set_track_loop (false);
if (Config->get_seamless_loop()) {
/* likely need to flush track buffers: this will locate us to wherever we are */
add_post_transport_work (PostTransportLocate);
_butler->schedule_transport_work ();
if (play_loop) {
play_loop = false;
clear_events (SessionEvent::AutoLoop);
clear_events (SessionEvent::AutoLoopDeclick);
set_track_loop (false);
if (Config->get_seamless_loop()) {
/* likely need to flush track buffers: this will locate us to wherever we are */
add_post_transport_work (PostTransportLocate);
_butler->schedule_transport_work ();
}
}
}