diff --git a/mixer/src/Module.H b/mixer/src/Module.H index 109e558..9241887 100644 --- a/mixer/src/Module.H +++ b/mixer/src/Module.H @@ -184,7 +184,9 @@ public: void control_value_no_callback ( float f ) { - THREAD_ASSERT( UI ); + /* can also be called from the OSC thread */ + ASSERT( Thread::is( "UI" ) || Thread::is( "OSC" ), + "Function called from wrong thread! (is %s)", Thread::current()->name() ); if ( buffer() ) { diff --git a/nonlib/OSC/Endpoint.C b/nonlib/OSC/Endpoint.C index 8020502..c8e338a 100644 --- a/nonlib/OSC/Endpoint.C +++ b/nonlib/OSC/Endpoint.C @@ -522,6 +522,7 @@ namespace OSC /* reply with current value */ o = (Signal*)user_data; o->_endpoint->send( lo_message_get_source( msg ), "/reply", path, o->value() ); + return 0; } else { @@ -533,8 +534,6 @@ namespace OSC if ( ep ) p = ep->find_peer_by_address( lo_message_get_source( msg ) ); - if ( 0 == o->_incoming.size() ) - return 0; if ( !p ) { @@ -548,6 +547,9 @@ namespace OSC /* remote signal */ /* if ( t->_peer ) */ + /* if ( 0 == o->_incoming.size() ) */ + /* return 0; */ + for ( std::list::const_iterator i = o->_incoming.begin(); i != o->_incoming.end(); ++i )