summaryrefslogtreecommitdiff
path: root/libs/ardour/route.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-10-31 18:32:26 +0100
committerRobin Gareus <robin@gareus.org>2017-10-31 18:32:26 +0100
commit00a4ad712c2d5ac73f04b0f43906590b24a22fb6 (patch)
treec849d672536222bc173c0e6fbbe3d38739dcbaf8 /libs/ardour/route.cc
parent8e8168547bef7e404f70916fa3838cbe5c15bc62 (diff)
Move Loop Location to Processors
The processors will becomes responsible to know about loop-positions and map latency-compensated start_sample, end_sample into the loop-range as needed.
Diffstat (limited to 'libs/ardour/route.cc')
-rw-r--r--libs/ardour/route.cc12
1 files changed, 11 insertions, 1 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index 29225404d9..6b1a73c088 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -108,6 +108,7 @@ Route::Route (Session& sess, string name, PresentationInfo::Flag flag, DataType
, _declickable (false)
, _have_internal_generator (false)
, _default_type (default_type)
+ , _loop_location (NULL)
, _track_number (0)
, _strict_io (false)
, _in_configure_processors (false)
@@ -5881,6 +5882,16 @@ Route::set_disk_io_point (DiskIOPoint diop)
processors_changed (RouteProcessorChange ()); /* EMIT SIGNAL */
}
+int
+Route::set_loop (Location* l)
+{
+ _loop_location = l;
+ Glib::Threads::RWLock::ReaderLock lm (_processor_lock);
+ for (ProcessorList::const_iterator i = _processors.begin(); i != _processors.end(); ++i) {
+ (*i)->set_loop (l);
+ }
+}
+
#ifdef USE_TRACKS_CODE_FEATURES
/* This is the Tracks version of Track::monitoring_state().
@@ -6039,5 +6050,4 @@ Route::monitoring_state () const
abort(); /* NOTREACHED */
return MonitoringSilence;
}
-
#endif