This also removes sigc++ as a dependency for mixer and timeline.tags/non-daw-v1.2.0
@@ -21,7 +21,6 @@ require_command FLUID lib/fltk/fluid/fluid | |||||
require_package JACK 0.103.0 jack | require_package JACK 0.103.0 jack | ||||
require_package lrdf 0.4.0 lrdf | require_package lrdf 0.4.0 lrdf | ||||
require_package liblo 0.23 liblo | require_package liblo 0.23 liblo | ||||
require_package sigcpp 2.0.0 sigc++-2.0 | |||||
suggest_package XPM 2.0.0 xpm | suggest_package XPM 2.0.0 xpm | ||||
test_version `version_of liblo` 0.26 || warn "Version $(version_of liblo) of liblo is slow to create servers. Consider upgrading to 0.26 or later" | test_version `version_of liblo` 0.26 || warn "Version $(version_of liblo) of liblo is slow to create servers. Consider upgrading to 0.26 or later" | ||||
@@ -254,9 +254,9 @@ Module::Port::generate_osc_path () | |||||
} | } | ||||
void | void | ||||
Module::Port::handle_signal_connection_state_changed ( OSC::Signal * ) | |||||
Module::Port::handle_signal_connection_state_changed ( OSC::Signal *, void *o ) | |||||
{ | { | ||||
module()->redraw(); | |||||
((Module::Port*)o)->module()->redraw(); | |||||
} | } | ||||
void | void | ||||
@@ -286,8 +286,8 @@ Module::Port::change_osc_path ( char *path ) | |||||
0.0, 1.0, scaled_default, | 0.0, 1.0, scaled_default, | ||||
&Module::Port::osc_control_change_cv, this ); | &Module::Port::osc_control_change_cv, this ); | ||||
_scaled_signal->signal_connection_state_changed.connect( | |||||
sigc::mem_fun( this, &Module::Port::handle_signal_connection_state_changed ) ); | |||||
_scaled_signal->connection_state_callback( handle_signal_connection_state_changed, this ); | |||||
_unscaled_signal = mixer->osc_endpoint->add_signal( unscaled_path, | _unscaled_signal = mixer->osc_endpoint->add_signal( unscaled_path, | ||||
OSC::Signal::Input, | OSC::Signal::Input, | ||||
@@ -259,7 +259,7 @@ public: | |||||
OSC::Signal *_scaled_signal; | OSC::Signal *_scaled_signal; | ||||
OSC::Signal *_unscaled_signal; | OSC::Signal *_unscaled_signal; | ||||
void handle_signal_connection_state_changed ( OSC::Signal *s ); | |||||
static void handle_signal_connection_state_changed ( OSC::Signal *, void *o ); | |||||
}; | }; | ||||
void bbox ( int &X, int &Y, int &W, int &H ) | void bbox ( int &X, int &Y, int &W, int &H ) | ||||
@@ -306,7 +306,7 @@ namespace OSC | |||||
DMESSAGE( "Peer %s has disconnected from signal %s", p->name, ps->path() ); | DMESSAGE( "Peer %s has disconnected from signal %s", p->name, ps->path() ); | ||||
s->signal_connection_state_changed( s ); | |||||
s->_connection_state_callback( s, s->_connection_state_userdata ); | |||||
return 0; | return 0; | ||||
} | } | ||||
@@ -358,7 +358,7 @@ namespace OSC | |||||
/* make a record of it ourselves */ | /* make a record of it ourselves */ | ||||
ps->_outgoing.push_back( s ); | ps->_outgoing.push_back( s ); | ||||
s->signal_connection_state_changed( s ); | |||||
s->_connection_state_callback( s, s->_connection_state_userdata ); | |||||
/* return 0; */ | /* return 0; */ | ||||
/* } */ | /* } */ | ||||
@@ -872,7 +872,7 @@ namespace OSC | |||||
p->_scanning = false; | p->_scanning = false; | ||||
DMESSAGE( "Done scanning %s", p->name ); | DMESSAGE( "Done scanning %s", p->name ); | ||||
ep->signal_peer_scan_complete(); | |||||
ep->_peer_scan_complete_callback(ep->_peer_scan_complete_userdata); | |||||
} | } | ||||
else if ( argc == 7 && p->_scanning ) | else if ( argc == 7 && p->_scanning ) | ||||
{ | { | ||||
@@ -25,8 +25,6 @@ | |||||
#include <stdlib.h> | #include <stdlib.h> | ||||
#include <string.h> | #include <string.h> | ||||
#include <sigc++/sigc++.h> | |||||
namespace OSC | namespace OSC | ||||
{ | { | ||||
class OSC_Value | class OSC_Value | ||||
@@ -163,6 +161,9 @@ namespace OSC | |||||
void *_user_data; | void *_user_data; | ||||
Parameter_Limits _parameter_limits; | Parameter_Limits _parameter_limits; | ||||
void (*_connection_state_callback)(OSC::Signal *, void*); | |||||
void *_connection_state_userdata; | |||||
public: | public: | ||||
Signal ( const char *path, Direction dir ) | Signal ( const char *path, Direction dir ) | ||||
@@ -175,7 +176,11 @@ namespace OSC | |||||
_peer = NULL; | _peer = NULL; | ||||
} | } | ||||
sigc::signal <void,Signal*> signal_connection_state_changed; | |||||
void connection_state_callback ( void(*_cb)(OSC::Signal *, void*), void *userdata) | |||||
{ | |||||
_connection_state_callback = _cb; | |||||
_connection_state_userdata = userdata; | |||||
} | |||||
~Signal ( ); | ~Signal ( ); | ||||
@@ -278,6 +283,9 @@ namespace OSC | |||||
void del_signal ( Signal *signal ); | void del_signal ( Signal *signal ); | ||||
void send_signal_rename_notifications( Signal *s ); | void send_signal_rename_notifications( Signal *s ); | ||||
void (*_peer_scan_complete_callback)(void*); | |||||
void *_peer_scan_complete_userdata; | |||||
public: | public: | ||||
void list_peer_signals ( void (*callback) (const char *, const OSC::Signal *, void * ), void *v ); | void list_peer_signals ( void (*callback) (const char *, const OSC::Signal *, void * ), void *v ); | ||||
@@ -355,7 +363,12 @@ namespace OSC | |||||
// can be used to point back to owning object. | // can be used to point back to owning object. | ||||
void *owner; | void *owner; | ||||
sigc::signal <void> signal_peer_scan_complete; | |||||
void peer_scan_complete_callback ( void(*_cb)(void*), void *userdata) | |||||
{ | |||||
_peer_scan_complete_callback = _cb; | |||||
_peer_scan_complete_userdata = userdata; | |||||
} | |||||
friend Signal::~Signal(); | friend Signal::~Signal(); | ||||
friend void Signal::rename ( const char *name ); | friend void Signal::rename ( const char *name ); | ||||
@@ -17,7 +17,6 @@ require_command ar ar | |||||
require_command makedepend makedepend | require_command makedepend makedepend | ||||
require_package JACK 0.103.0 jack | require_package JACK 0.103.0 jack | ||||
require_package liblo 0.23 liblo | require_package liblo 0.23 liblo | ||||
require_package sigcpp 2.0.0 sigc++-2.0 | |||||
test_version `version_of liblo` 0.26 || warn "Version $(version_of liblo) of liblo is slow to create servers. Consider upgrading to 0.26 or later" | test_version `version_of liblo` 0.26 || warn "Version $(version_of liblo) of liblo is slow to create servers. Consider upgrading to 0.26 or later" | ||||
@@ -28,7 +28,6 @@ require_command FLUID lib/fltk/fluid/fluid | |||||
require_package JACK 0.103.0 jack | require_package JACK 0.103.0 jack | ||||
require_package sndfile 1.0.17 sndfile | require_package sndfile 1.0.17 sndfile | ||||
require_package liblo 0.23 liblo | require_package liblo 0.23 liblo | ||||
require_package sigcpp 2.0.0 sigc++-2.0 | |||||
suggest_package XPM 2.0.0 xpm | suggest_package XPM 2.0.0 xpm | ||||
if ! hostname_resolvable | if ! hostname_resolvable | ||||
@@ -1620,7 +1620,7 @@ Timeline::init_osc ( const char *osc_port ) | |||||
/* poll so we can keep OSC handlers running in the GUI thread and avoid extra sync */ | /* poll so we can keep OSC handlers running in the GUI thread and avoid extra sync */ | ||||
Fl::add_timeout( OSC_INTERVAL, &Timeline::check_osc, this ); | Fl::add_timeout( OSC_INTERVAL, &Timeline::check_osc, this ); | ||||
osc->signal_peer_scan_complete.connect( sigc::mem_fun( this, &Timeline::connect_osc ) ); | |||||
osc->peer_scan_complete_callback( &Timeline::handle_peer_scan_complete, this ); | |||||
if ( ! osc_thread ) | if ( ! osc_thread ) | ||||
{ | { | ||||
@@ -1676,6 +1676,12 @@ Timeline::reply_to_finger ( lo_message msg ) | |||||
lo_address_free( reply ); | lo_address_free( reply ); | ||||
} | } | ||||
void | |||||
Timeline::handle_peer_scan_complete ( void *o ) | |||||
{ | |||||
((Timeline*)o)->connect_osc(); | |||||
} | |||||
void | void | ||||
Timeline::connect_osc ( void ) | Timeline::connect_osc ( void ) | ||||
{ | { | ||||
@@ -122,6 +122,8 @@ class Timeline : public Fl_Single_Window, public RWLock | |||||
std::list <const Sequence_Widget*> _tempomap; | std::list <const Sequence_Widget*> _tempomap; | ||||
static void handle_peer_scan_complete ( void * v ); | |||||
public: | public: | ||||
OSC::Endpoint *osc; | OSC::Endpoint *osc; | ||||