summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2008-09-29 09:44:25 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2008-09-29 09:44:25 +0000
commit400f8bb03dea167c4b1f17b2cc80cf24a0bd4679 (patch)
tree68c118c94a45d06b155a33a53485d8ef4bade5d6
parentd6ce0641a79607bdf5e648d541dbb4238d3d99e3 (diff)
still call Port::cycle_start() for output ports; remove otification calls from Playlist::add_region() (torben)
git-svn-id: svn://localhost/ardour2/branches/3.0@3828 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--libs/ardour/audioengine.cc16
-rw-r--r--libs/ardour/playlist.cc2
2 files changed, 15 insertions, 3 deletions
diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc
index 8629a5c0df..d7bbe369fe 100644
--- a/libs/ardour/audioengine.cc
+++ b/libs/ardour/audioengine.cc
@@ -342,6 +342,18 @@ AudioEngine::process_callback (nframes_t nframes)
boost::shared_ptr<Ports> p = ports.reader();
+ for (Ports::iterator i = p->begin(); i != p->end(); ++i) {
+
+ /* Only run cycle_start() on output ports, because
+ inputs must be done in the correct processing order,
+ which requires interleaving with route processing.
+ */
+
+ if ((*i)->sends_output()) {
+ (*i)->cycle_start (nframes, 0);
+ }
+ }
+
if (_freewheeling) {
/* emit the Freewheel signal and stop freewheeling in the event of trouble */
if (Freewheel (nframes)) {
@@ -509,7 +521,9 @@ AudioEngine::set_session (Session *s)
boost::shared_ptr<Ports> p = ports.reader();
for (Ports::iterator i = p->begin(); i != p->end(); ++i) {
- (*i)->cycle_start (blocksize, 0);
+ if ((*i)->sends_output()) {
+ (*i)->cycle_start (blocksize, 0);
+ }
}
s->process (blocksize);
diff --git a/libs/ardour/playlist.cc b/libs/ardour/playlist.cc
index 65cb8637d5..fbe9990933 100644
--- a/libs/ardour/playlist.cc
+++ b/libs/ardour/playlist.cc
@@ -467,7 +467,6 @@ void
Playlist::add_region (boost::shared_ptr<Region> region, nframes_t position, float times)
{
RegionLock rlock (this);
- delay_notifications();
times = fabs (times);
int itimes = (int) floor (times);
@@ -503,7 +502,6 @@ Playlist::add_region (boost::shared_ptr<Region> region, nframes_t position, floa
possibly_splice_unlocked (position, (pos + length) - position, boost::shared_ptr<Region>());
- release_notifications ();
}
void