diff options
author | David Robillard <d@drobilla.net> | 2014-08-31 01:24:57 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2014-08-31 01:24:57 +0000 |
commit | a2792bd09212eed55bba1aa30dc09043a6955486 (patch) | |
tree | d4262f760d4522bc6f1c99778987aada332b9e7e /src/server/GraphImpl.cpp | |
parent | e3ecb2b439bd03d27b5e11efe430c24f0ebe6283 (diff) | |
download | ingen-a2792bd09212eed55bba1aa30dc09043a6955486.tar.gz ingen-a2792bd09212eed55bba1aa30dc09043a6955486.tar.bz2 ingen-a2792bd09212eed55bba1aa30dc09043a6955486.zip |
Use float sequences for sample-accurate control ports.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5462 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/GraphImpl.cpp')
-rw-r--r-- | src/server/GraphImpl.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/server/GraphImpl.cpp b/src/server/GraphImpl.cpp index 2bb99dc8..a8a44cf1 100644 --- a/src/server/GraphImpl.cpp +++ b/src/server/GraphImpl.cpp @@ -143,21 +143,37 @@ GraphImpl::apply_internal_poly(ProcessContext& context, } void +GraphImpl::pre_process(ProcessContext& context) +{ + // Mix down input ports and connect buffers + for (uint32_t i = 0; i < num_ports(); ++i) { + PortImpl* const port = _ports->at(i); + port->pre_process(context); + port->pre_run(context); + port->connect_buffers(); + } +} + +void GraphImpl::process(ProcessContext& context) { if (!_process) return; - BlockImpl::pre_process(context); + pre_process(context); + run(context); + post_process(context); +} +void +GraphImpl::run(ProcessContext& context) +{ if (_compiled_graph && _compiled_graph->size() > 0) { // Run all blocks for (size_t i = 0; i < _compiled_graph->size(); ++i) { (*_compiled_graph)[i].block()->process(context); } } - - BlockImpl::post_process(context); } void |