From 860e22ac6daac9d1c5f9155af27c522ca1c8b8f7 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sun, 10 May 2015 13:15:46 -0400 Subject: [PATCH] when loop range is set, if loop-is-mode and seamless looping, set loop for all tracks --- libs/ardour/session.cc | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 6d593ceb64..80fcc57b1f 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -1537,9 +1537,21 @@ Session::set_auto_loop_location (Location* location) location->StartChanged.connect_same_thread (loop_connections, boost::bind (&Session::auto_loop_changed, this, location)); location->EndChanged.connect_same_thread (loop_connections, boost::bind (&Session::auto_loop_changed, this, location)); location->Changed.connect_same_thread (loop_connections, boost::bind (&Session::auto_loop_changed, this, location)); + location->FlagsChanged.connect_same_thread (loop_connections, boost::bind (&Session::auto_loop_changed, this, location)); location->set_auto_loop (true, this); + if (Config->get_loop_is_mode() && play_loop && Config->get_seamless_loop()) { + // set all tracks to use internal looping + boost::shared_ptr rl = routes.reader (); + for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) { + boost::shared_ptr tr = boost::dynamic_pointer_cast (*i); + if (tr && !tr->hidden()) { + tr->set_loop (location); + } + } + } + /* take care of our stuff first */ auto_loop_changed (location);