summaryrefslogtreecommitdiffstats
path: root/src/libs/engine/OSCEngineReceiver.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2006-10-15 20:46:26 +0000
committerDavid Robillard <d@drobilla.net>2006-10-15 20:46:26 +0000
commit4174fb8f94139e0a38da150ffb0874b636497dfe (patch)
tree7170dd4b13ee0fe42c67aeabeef3f95437f146b2 /src/libs/engine/OSCEngineReceiver.cpp
parent14542a4634cb211be5bdf590574ae3b8e1715486 (diff)
downloadingen-4174fb8f94139e0a38da150ffb0874b636497dfe.tar.gz
ingen-4174fb8f94139e0a38da150ffb0874b636497dfe.tar.bz2
ingen-4174fb8f94139e0a38da150ffb0874b636497dfe.zip
Fixed feedback problems (CPU chewing) with port controls.
git-svn-id: http://svn.drobilla.net/lad/ingen@176 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/engine/OSCEngineReceiver.cpp')
-rw-r--r--src/libs/engine/OSCEngineReceiver.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/libs/engine/OSCEngineReceiver.cpp b/src/libs/engine/OSCEngineReceiver.cpp
index 3354e648..b7e8f3a1 100644
--- a/src/libs/engine/OSCEngineReceiver.cpp
+++ b/src/libs/engine/OSCEngineReceiver.cpp
@@ -214,11 +214,11 @@ OSCEngineReceiver::set_response_address_cb(const char* path, const char* types,
const int id = argv[0]->i;
+ const lo_address addr = lo_message_get_source(msg);
+ char* const url = lo_address_get_url(addr);
+
// Need to respond
if (id != -1) {
- const lo_address addr = lo_message_get_source(msg);
- char* const url = lo_address_get_url(addr);
-
//cerr << "** need to respond\n";
// Currently have an OSC responder, check if it's still okay
@@ -246,12 +246,19 @@ OSCEngineReceiver::set_response_address_cb(const char* path, const char* types,
me->set_responder(me->_osc_responder);
//cerr << "** Setting response address to " << url << "(2)" << endl;
}
-
+
me->set_next_response_id(id);
// Don't respond
} else {
me->disable_responses();
+ SharedPtr<ClientInterface> client = me->_engine->broadcaster()->client(
+ ClientKey(ClientKey::OSC_URL, (const char*)url));
+ if (client)
+ client->disable();
+ else
+ cerr << "UNKNOWN CLIENT!\n";
+
//cerr << "** Not responding." << endl;
}