diff options
author | David Robillard <d@drobilla.net> | 2011-05-20 03:48:01 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2011-05-20 03:48:01 +0000 |
commit | 65f4c6021c03eb14084a1e6446185274fec751fe (patch) | |
tree | a952e0f3278f1e0af6262cea8fb7e931e0b88ff2 /src/server/ObjectSender.cpp | |
parent | 4999a7199470ee751d710cfca2a39b4fdc561a82 (diff) | |
download | ingen-65f4c6021c03eb14084a1e6446185274fec751fe.tar.gz ingen-65f4c6021c03eb14084a1e6446185274fec751fe.tar.bz2 ingen-65f4c6021c03eb14084a1e6446185274fec751fe.zip |
Fix multiple put replies on port creation.
Include value in initial put response for control ports.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3296 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/ObjectSender.cpp')
-rw-r--r-- | src/server/ObjectSender.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/server/ObjectSender.cpp b/src/server/ObjectSender.cpp index 22aff285..a166a885 100644 --- a/src/server/ObjectSender.cpp +++ b/src/server/ObjectSender.cpp @@ -134,11 +134,15 @@ ObjectSender::send_port(ClientInterface* client, const PortImpl* port, bool bund if (bundle) client->bundle_begin(); - client->put(port->path(), port->properties()); - - // Send control value - if (port->is_a(PortType::CONTROL)) - client->set_property(port->path(), port->bufs().uris().ingen_value, port->value()); + if (port->is_a(PortType::CONTROL)) { + Resource::Properties props = port->properties(); + props.erase(port->bufs().uris().ingen_value); + props.insert(make_pair(port->bufs().uris().ingen_value, + port->value())); + client->put(port->path(), props); + } else { + client->put(port->path(), port->properties()); + } if (bundle) client->bundle_end(); |