From c1160ffc8a5dfb38891b0faa6373c9eecdd8e4c9 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 22 Sep 2007 23:51:00 +0000 Subject: Type oblivious set_port_value interface. git-svn-id: http://svn.drobilla.net/lad/ingen@765 a436a847-0d15-0410-975c-d299462d15a1 --- src/libs/client/OSCEngineSender.cpp | 43 ++++++++++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 10 deletions(-) (limited to 'src/libs/client/OSCEngineSender.cpp') diff --git a/src/libs/client/OSCEngineSender.cpp b/src/libs/client/OSCEngineSender.cpp index 46181195..90f27676 100644 --- a/src/libs/client/OSCEngineSender.cpp +++ b/src/libs/client/OSCEngineSender.cpp @@ -16,9 +16,10 @@ */ #include -#include "OSCEngineSender.hpp" #include -using std::cout; using std::cerr; using std::endl; +#include "OSCEngineSender.hpp" + +using namespace std; namespace Ingen { namespace Client { @@ -350,39 +351,61 @@ OSCEngineSender::disconnect_all(const string& node_path) void OSCEngineSender::set_port_value(const string& port_path, - float val) + uint32_t data_size, + const void* data) { assert(_engine_addr); + assert(data_size == 4); lo_send(_engine_addr, "/ingen/set_port_value", "isf", next_id(), port_path.c_str(), - val); + *(float*)data); } void OSCEngineSender::set_port_value(const string& port_path, uint32_t voice, - float val) + uint32_t data_size, + const void* data) { assert(_engine_addr); + assert(data_size == 4); lo_send(_engine_addr, "/ingen/set_port_value", "isif", next_id(), port_path.c_str(), voice, - val); + *(float*)data); +} + + +void +OSCEngineSender::set_port_value_immediate(const string& port_path, + uint32_t data_size, + const void* data) +{ + assert(_engine_addr); + assert(data_size == 4); + lo_send(_engine_addr, "/ingen/set_port_value_immediate", "isf", + next_id(), + port_path.c_str(), + *(float*)data); } void -OSCEngineSender::set_port_value_queued(const string& port_path, - float val) +OSCEngineSender::set_port_value_immediate(const string& port_path, + uint32_t voice, + uint32_t data_size, + const void* data) { assert(_engine_addr); - lo_send(_engine_addr, "/ingen/set_port_value_queued", "isf", + assert(data_size == 4); + lo_send(_engine_addr, "/ingen/set_port_value_immediate", "isif", next_id(), port_path.c_str(), - val); + voice, + *(float*)data); } -- cgit v1.2.1