summaryrefslogtreecommitdiffstats
path: root/src/libs/engine/ObjectSender.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-06-09 17:21:44 +0000
committerDavid Robillard <d@drobilla.net>2008-06-09 17:21:44 +0000
commit4e736d0b31c56a7ab397c7399b3a53f726466c78 (patch)
treea9640733f976926b5e4a9ddcea4fcffed9337fbe /src/libs/engine/ObjectSender.cpp
parentb3448dcc7c06fb19daee66dc2cf1cea79086e770 (diff)
downloadingen-4e736d0b31c56a7ab397c7399b3a53f726466c78.tar.gz
ingen-4e736d0b31c56a7ab397c7399b3a53f726466c78.tar.bz2
ingen-4e736d0b31c56a7ab397c7399b3a53f726466c78.zip
Bump liblo dependency to 0.24.
Bundleify communications where order is relevant (fixes 'random' issues like node positions being off, ticket #89, etc). git-svn-id: http://svn.drobilla.net/lad/ingen@1248 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/engine/ObjectSender.cpp')
-rw-r--r--src/libs/engine/ObjectSender.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/libs/engine/ObjectSender.cpp b/src/libs/engine/ObjectSender.cpp
index f51f0ad0..fff2a797 100644
--- a/src/libs/engine/ObjectSender.cpp
+++ b/src/libs/engine/ObjectSender.cpp
@@ -33,9 +33,21 @@ namespace Ingen {
void
ObjectSender::send_patch(ClientInterface* client, const PatchImpl* patch, bool recursive)
{
+ client->bundle_begin();
+
client->new_patch(patch->path(), patch->internal_polyphony());
client->polyphonic(patch->path(), patch->polyphonic());
+ // Send variable
+ const GraphObjectImpl::Variables& data = patch->variables();
+ for (GraphObjectImpl::Variables::const_iterator j = data.begin(); j != data.end(); ++j)
+ client->variable_change(patch->path(), (*j).first, (*j).second);
+
+ if (patch->enabled())
+ client->patch_enabled(patch->path());
+
+ client->bundle_end();
+
if (recursive) {
// Send nodes
@@ -60,14 +72,6 @@ ObjectSender::send_patch(ClientInterface* client, const PatchImpl* patch, bool r
client->connection((*j)->src_port_path(), (*j)->dst_port_path());
}
-
- // Send variable
- const GraphObjectImpl::Variables& data = patch->variables();
- for (GraphObjectImpl::Variables::const_iterator j = data.begin(); j != data.end(); ++j)
- client->variable_change(patch->path(), (*j).first, (*j).second);
-
- if (patch->enabled())
- client->patch_enabled(patch->path());
}