summaryrefslogtreecommitdiffstats
path: root/src/server/GraphImpl.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2014-08-31 01:24:57 +0000
committerDavid Robillard <d@drobilla.net>2014-08-31 01:24:57 +0000
commita2792bd09212eed55bba1aa30dc09043a6955486 (patch)
treed4262f760d4522bc6f1c99778987aada332b9e7e /src/server/GraphImpl.cpp
parente3ecb2b439bd03d27b5e11efe430c24f0ebe6283 (diff)
downloadingen-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.cpp22
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