if (play_loop) {
- /* Set this so that when/if we have to stop the
- * transport for a locate, we know that it is triggered
- * by loop-changing, and we do not cancel play loop
- */
+ if (_transport_sample < location->start() || _transport_sample > location->end()) {
- loop_changing = true;
+ /* new loop range excludes current transport
+ * sample => relocate to beginning of loop and roll.
+ */
- if (_transport_sample < location->start() || _transport_sample > location->end()) {
- // new loop range excludes current transport
- // sample => relocate to beginning of loop and roll.
+ /* Set this so that when/if we have to stop the
+ * transport for a locate, we know that it is triggered
+ * by loop-changing, and we do not cancel play loop
+ */
+ loop_changing = true;
request_locate (location->start(), true);
- }
+ } else {
- // schedule a buffer overwrite to refill buffers with the new loop.
+ // schedule a buffer overwrite to refill buffers with the new loop.
- request_overwrite_buffer (boost::shared_ptr<Track>());
+ request_overwrite_buffer (boost::shared_ptr<Track>());
+ }
}
} else {