From 4174fb8f94139e0a38da150ffb0874b636497dfe Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 15 Oct 2006 20:46:26 +0000 Subject: Fixed feedback problems (CPU chewing) with port controls. git-svn-id: http://svn.drobilla.net/lad/ingen@176 a436a847-0d15-0410-975c-d299462d15a1 --- src/libs/engine/OSCEngineReceiver.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'src/libs/engine/OSCEngineReceiver.cpp') 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 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; } -- cgit v1.2.1