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
This commit is contained in:
Paul Davis
2008-09-29 09:44:25 +00:00
parent d6ce0641a7
commit 400f8bb03d
2 changed files with 15 additions and 3 deletions

View File

@@ -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);

View File

@@ -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