diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2015-05-10 13:15:46 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2015-06-29 14:18:11 -0400 |
commit | 860e22ac6daac9d1c5f9155af27c522ca1c8b8f7 (patch) | |
tree | 712b3e9c83c69c1b9d11d016b4fcb7d29e518882 /libs/ardour | |
parent | 13964dd9eb7d4d500501db2790749413dc4a479a (diff) |
when loop range is set, if loop-is-mode and seamless looping, set loop for all tracks
Diffstat (limited to 'libs/ardour')
-rw-r--r-- | libs/ardour/session.cc | 12 |
1 files changed, 12 insertions, 0 deletions
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<RouteList> rl = routes.reader (); + for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) { + boost::shared_ptr<Track> tr = boost::dynamic_pointer_cast<Track> (*i); + if (tr && !tr->hidden()) { + tr->set_loop (location); + } + } + } + /* take care of our stuff first */ auto_loop_changed (location); |