13
0

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 3a63b785a9
commit aea700fbc4

View File

@ -782,15 +782,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 ();
}
}
}