summaryrefslogtreecommitdiffstats
path: root/src/engine/PatchImpl.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2010-02-23 05:14:20 +0000
committerDavid Robillard <d@drobilla.net>2010-02-23 05:14:20 +0000
commitca809494991686b253679ecf0c0b8b4bf48aa22d (patch)
treec51e4e764c12e9fe899f20830b08bebaa82f784e /src/engine/PatchImpl.cpp
parent3893203399c1b67fb70729558e51f014b863b307 (diff)
downloadingen-ca809494991686b253679ecf0c0b8b4bf48aa22d.tar.gz
ingen-ca809494991686b253679ecf0c0b8b4bf48aa22d.tar.bz2
ingen-ca809494991686b253679ecf0c0b8b4bf48aa22d.zip
Working dynamic polyphony in the root patch.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2483 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/PatchImpl.cpp')
-rw-r--r--src/engine/PatchImpl.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/engine/PatchImpl.cpp b/src/engine/PatchImpl.cpp
index 165f708f..77408275 100644
--- a/src/engine/PatchImpl.cpp
+++ b/src/engine/PatchImpl.cpp
@@ -140,6 +140,10 @@ PatchImpl::apply_internal_poly(BufferFactory& bufs, Raul::Maid& maid, uint32_t p
}
}
+ const bool polyphonic = parent_patch() && (_internal_poly == parent_patch()->internal_poly());
+ for (List<PortImpl*>::iterator i = _output_ports.begin(); i != _output_ports.end(); ++i)
+ (*i)->setup_buffers(bufs, polyphonic ? poly : 1);
+
_internal_poly = poly;
return true;