summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-08-20 01:02:22 +0000
committerDavid Robillard <d@drobilla.net>2008-08-20 01:02:22 +0000
commitdb3cfa6cca0039c406176024d9efb43eb6e8bf40 (patch)
tree77d1a11b2ca5aac9eeddd2105dbd4adb2314d760
parent86d961d77bdc6de15f79e80bbc920e8d130859c7 (diff)
downloadingen-db3cfa6cca0039c406176024d9efb43eb6e8bf40.tar.gz
ingen-db3cfa6cca0039c406176024d9efb43eb6e8bf40.tar.bz2
ingen-db3cfa6cca0039c406176024d9efb43eb6e8bf40.zip
Fix set_port_value stuff over OSC with blobs (i.e. make klaviatur work with a remote engine).
git-svn-id: http://svn.drobilla.net/lad/ingen@1454 a436a847-0d15-0410-975c-d299462d15a1
-rw-r--r--src/libs/client/OSCEngineSender.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/libs/client/OSCEngineSender.cpp b/src/libs/client/OSCEngineSender.cpp
index 83852969..e274f72b 100644
--- a/src/libs/client/OSCEngineSender.cpp
+++ b/src/libs/client/OSCEngineSender.cpp
@@ -20,6 +20,7 @@
#include "OSCEngineSender.hpp"
using namespace std;
+using Raul::Atom;
namespace Ingen {
namespace Client {
@@ -260,7 +261,10 @@ OSCEngineSender::set_port_value(const string& port_path,
const Raul::Atom& value)
{
lo_message m = lo_message_new();
+ lo_message_add_int32(m, next_id());
lo_message_add_string(m, port_path.c_str());
+ if (value.type() == Atom::BLOB)
+ lo_message_add_string(m, value.get_blob_type());
Raul::AtomLiblo::lo_message_add_atom(m, value);
send_message("/ingen/set_port_value", m);
}
@@ -272,8 +276,11 @@ OSCEngineSender::set_voice_value(const string& port_path,
const Raul::Atom& value)
{
lo_message m = lo_message_new();
+ lo_message_add_int32(m, next_id());
lo_message_add_string(m, port_path.c_str());
lo_message_add_int32(m, voice);
+ if (value.type() == Atom::BLOB)
+ lo_message_add_string(m, value.get_blob_type());
Raul::AtomLiblo::lo_message_add_atom(m, value);
send_message("/ingen/set_port_value", m);
}
@@ -284,7 +291,10 @@ OSCEngineSender::set_port_value_immediate(const string& port_path,
const Raul::Atom& value)
{
lo_message m = lo_message_new();
+ lo_message_add_int32(m, next_id());
lo_message_add_string(m, port_path.c_str());
+ if (value.type() == Atom::BLOB)
+ lo_message_add_string(m, value.get_blob_type());
Raul::AtomLiblo::lo_message_add_atom(m, value);
send_message("/ingen/set_port_value_immediate", m);
}
@@ -296,8 +306,11 @@ OSCEngineSender::set_voice_value_immediate(const string& port_path,
const Raul::Atom& value)
{
lo_message m = lo_message_new();
+ lo_message_add_int32(m, next_id());
lo_message_add_string(m, port_path.c_str());
lo_message_add_int32(m, voice);
+ if (value.type() == Atom::BLOB)
+ lo_message_add_string(m, value.get_blob_type());
Raul::AtomLiblo::lo_message_add_atom(m, value);
send_message("/ingen/set_port_value_immediate", m);
}