summaryrefslogtreecommitdiffstats
path: root/src/libs/engine/OSCEngineReceiver.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-09-30 23:36:39 +0000
committerDavid Robillard <d@drobilla.net>2007-09-30 23:36:39 +0000
commit8450921d5309c5ba677997e7ca722a466c8dc222 (patch)
tree2c0fdf58f142be8f42222c3a580614cfbf0d7989 /src/libs/engine/OSCEngineReceiver.cpp
parentffc6f457d61460ca73bb24a3d7e583f90d54ecd2 (diff)
downloadingen-8450921d5309c5ba677997e7ca722a466c8dc222.tar.gz
ingen-8450921d5309c5ba677997e7ca722a466c8dc222.tar.bz2
ingen-8450921d5309c5ba677997e7ca722a466c8dc222.zip
Working port notification for LV2 GUIs (ll-plugins VU meter works in Ingen now).
git-svn-id: http://svn.drobilla.net/lad/ingen@790 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/engine/OSCEngineReceiver.cpp')
-rw-r--r--src/libs/engine/OSCEngineReceiver.cpp40
1 files changed, 35 insertions, 5 deletions
diff --git a/src/libs/engine/OSCEngineReceiver.cpp b/src/libs/engine/OSCEngineReceiver.cpp
index d2d7a4a0..3fb9e189 100644
--- a/src/libs/engine/OSCEngineReceiver.cpp
+++ b/src/libs/engine/OSCEngineReceiver.cpp
@@ -63,7 +63,7 @@ OSCEngineReceiver::OSCEngineReceiver(Engine& engine, size_t queue_size, uint16_t
}
// For debugging, print all incoming OSC messages
- lo_server_add_method(_server, NULL, NULL, generic_cb, NULL);
+ //lo_server_add_method(_server, NULL, NULL, generic_cb, NULL);
// Set response address for this message.
// It's important this is first and returns nonzero.
@@ -98,6 +98,8 @@ OSCEngineReceiver::OSCEngineReceiver(Engine& engine, size_t queue_size, uint16_t
lo_server_add_method(_server, "/ingen/disconnect_all", "is", disconnect_all_cb, this);
lo_server_add_method(_server, "/ingen/set_port_value", NULL, set_port_value_cb, this);
lo_server_add_method(_server, "/ingen/set_port_value_immediate", NULL, set_port_value_immediate_cb, this);
+ lo_server_add_method(_server, "/ingen/enable_port_broadcasting", NULL, enable_port_broadcasting_cb, this);
+ lo_server_add_method(_server, "/ingen/disable_port_broadcasting", NULL, disable_port_broadcasting_cb, this);
lo_server_add_method(_server, "/ingen/note_on", "isii", note_on_cb, this);
lo_server_add_method(_server, "/ingen/note_off", "isi", note_off_cb, this);
lo_server_add_method(_server, "/ingen/all_notes_off", "isi", all_notes_off_cb, this);
@@ -629,13 +631,13 @@ OSCEngineReceiver::_set_port_value_immediate_cb(const char* path, const char* ty
if (argc == 3) {
if (types[2] == 'f') {
const float value = argv[2]->f;
- set_port_value_immediate(port_path, "who cares", sizeof(float), &value);
+ set_port_value_immediate(port_path, "", sizeof(float), &value);
return 0;
} else if (types[2] == 'b') {
lo_blob b = argv[2];
size_t data_size = lo_blob_datasize(b);
void* data = lo_blob_dataptr(b);
- set_port_value_immediate(port_path, "who cares", data_size, data);
+ set_port_value_immediate(port_path, "", data_size, data);
return 0;
} else {
return 1;
@@ -643,13 +645,13 @@ OSCEngineReceiver::_set_port_value_immediate_cb(const char* path, const char* ty
} else {
if (types[3] == 'f') {
const float value = argv[3]->f;
- set_port_value_immediate(port_path, "who cares", argv[2]->i, sizeof(float), &value);
+ set_port_value_immediate(port_path, "", argv[2]->i, sizeof(float), &value);
return 0;
} else if (types[3] == 'b') {
lo_blob b = argv[3];
size_t data_size = lo_blob_datasize(b);
void* data = lo_blob_dataptr(b);
- set_port_value_immediate(port_path, "who cares", argv[2]->i, data_size, data);
+ set_port_value_immediate(port_path, "", argv[2]->i, data_size, data);
return 0;
} else {
return 1;
@@ -731,6 +733,34 @@ OSCEngineReceiver::_set_port_value_cb(const char* path, const char* types, lo_ar
/** \page engine_osc_namespace
+ * <p> \b /ingen/enable_port_broadcasting - Enable broadcasting of changing port values
+ * \arg \b response-id (integer)
+ * \arg \b port-path (string) - Name of port </p> \n \n
+ */
+int
+OSCEngineReceiver::_enable_port_broadcasting_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg)
+{
+ const char* port_path = &argv[1]->s;
+ enable_port_broadcasting(port_path);
+ return 0;
+}
+
+
+/** \page engine_osc_namespace
+ * <p> \b /ingen/disable_port_broadcasting - Enable broadcasting of changing port values
+ * \arg \b response-id (integer)
+ * \arg \b port-path (string) - Name of port </p> \n \n
+ */
+int
+OSCEngineReceiver::_disable_port_broadcasting_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg)
+{
+ const char* port_path = &argv[1]->s;
+ disable_port_broadcasting(port_path);
+ return 0;
+}
+
+
+/** \page engine_osc_namespace
* <p> \b /ingen/note_on - Triggers a note-on, just as if it came from MIDI
* \arg \b response-id (integer)
* \arg \b node-path (string) - Patch of Node to trigger (must be a trigger or note node)