summaryrefslogtreecommitdiffstats
path: root/src/libs/client/OSCClientReceiver.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-08-01 14:10:46 +0000
committerDavid Robillard <d@drobilla.net>2007-08-01 14:10:46 +0000
commit188e34375827915a9832ddb1db4b94494bbee455 (patch)
tree2acbb717536af9a82949dcaa324360ed14bf5302 /src/libs/client/OSCClientReceiver.cpp
parent1a77934531b0ddfc4392ccffbdde0058c2dbab68 (diff)
downloadingen-188e34375827915a9832ddb1db4b94494bbee455.tar.gz
ingen-188e34375827915a9832ddb1db4b94494bbee455.tar.bz2
ingen-188e34375827915a9832ddb1db4b94494bbee455.zip
Clean up engine/client interfaces.
Hide Response, now an internal engine implementation detail (and not a problem for script bindings anymore). git-svn-id: http://svn.drobilla.net/lad/ingen@666 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/client/OSCClientReceiver.cpp')
-rw-r--r--src/libs/client/OSCClientReceiver.cpp40
1 files changed, 25 insertions, 15 deletions
diff --git a/src/libs/client/OSCClientReceiver.cpp b/src/libs/client/OSCClientReceiver.cpp
index 96533db2..0479cea9 100644
--- a/src/libs/client/OSCClientReceiver.cpp
+++ b/src/libs/client/OSCClientReceiver.cpp
@@ -21,8 +21,9 @@
#include <cassert>
#include <cstring>
#include <iostream>
+#include <sstream>
-using std::cerr; using std::cout; using std::endl;
+using namespace std;
using namespace Raul;
namespace Ingen {
@@ -30,14 +31,14 @@ namespace Client {
OSCClientReceiver::OSCClientReceiver(int listen_port)
-: _listen_port(listen_port),
+: ClientInterface("localhost"),
_st(NULL)//,
// _receiving_node(false),
// _receiving_node_model(NULL),
// _receiving_node_num_ports(0),
// _num_received_ports(0)
{
- start();
+ start(false);
}
@@ -48,7 +49,7 @@ OSCClientReceiver::~OSCClientReceiver()
void
-OSCClientReceiver::start()
+OSCClientReceiver::start(bool dump_osc)
{
if (_st != NULL)
return;
@@ -57,12 +58,12 @@ OSCClientReceiver::start()
if (_listen_port != 0) {
char port_str[8];
snprintf(port_str, 8, "%d", _listen_port);
- _st = lo_server_thread_new(port_str, error_cb);
+ _st = lo_server_thread_new(port_str, lo_error_cb);
}
// Find a free port
if (!_st) {
- _st = lo_server_thread_new(NULL, error_cb);
+ _st = lo_server_thread_new(NULL, lo_error_cb);
_listen_port = lo_server_thread_get_port(_st);
}
@@ -74,11 +75,9 @@ OSCClientReceiver::start()
}
// Print all incoming messages
- lo_server_thread_add_method(_st, NULL, NULL, generic_cb, NULL);
+ if (dump_osc)
+ lo_server_thread_add_method(_st, NULL, NULL, generic_cb, NULL);
- //lo_server_thread_add_method(_st, "/ingen/response/ok", "i", om_response_ok_cb, this);
- //lo_server_thread_add_method(_st, "/ingen/response/error", "is", om_responseerror_cb, this);
-
setup_callbacks();
// Display any uncaught messages to the console
@@ -122,7 +121,7 @@ OSCClientReceiver::generic_cb(const char* path, const char* types, lo_arg** argv
void
-OSCClientReceiver::error_cb(int num, const char* msg, const char* path)
+OSCClientReceiver::lo_error_cb(int num, const char* msg, const char* path)
{
cerr << "Got error from server: " << msg << endl;
}
@@ -144,7 +143,8 @@ OSCClientReceiver::unknown_cb(const char* path, const char* types, lo_arg** argv
void
OSCClientReceiver::setup_callbacks()
{
- lo_server_thread_add_method(_st, "/ingen/response", "iis", response_cb, this);
+ lo_server_thread_add_method(_st, "/ingen/ok", "i", response_ok_cb, this);
+ lo_server_thread_add_method(_st, "/ingen/error", "is", response_error_cb, this);
lo_server_thread_add_method(_st, "/ingen/num_plugins", "i", num_plugins_cb, this);
lo_server_thread_add_method(_st, "/ingen/plugin", "sss", plugin_cb, this);
lo_server_thread_add_method(_st, "/ingen/new_patch", "si", new_patch_cb, this);
@@ -366,10 +366,20 @@ OSCClientReceiver::_control_change_cb(const char* path, const char* types, lo_ar
int
-OSCClientReceiver::_response_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg)
+OSCClientReceiver::_response_ok_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg)
+{
+ assert(!strcmp(types, "i"));
+ response_ok(argv[0]->i);
+
+ return 0;
+}
+
+
+int
+OSCClientReceiver::_response_error_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg)
{
- assert(!strcmp(types, "iis"));
- response(argv[0]->i, argv[1]->i, &argv[2]->s);
+ assert(!strcmp(types, "is"));
+ response_error(argv[0]->i, &argv[1]->s);
return 0;
}