diff options
author | Len Ovens <len@ovenwerks.net> | 2017-07-23 20:07:01 -0700 |
---|---|---|
committer | Len Ovens <len@ovenwerks.net> | 2017-07-23 20:08:02 -0700 |
commit | f1632fcfd2eeed678da330f77bdabfc766ade826 (patch) | |
tree | 3b0092a50fec756384d474df4b303f8330635cb2 /libs/surfaces/osc/osc_global_observer.cc | |
parent | 07e869fda8d92fed1a375f85f54f13a75c7d5493 (diff) |
OSC: make sure initialization is complete before we allow periodic to run
Diffstat (limited to 'libs/surfaces/osc/osc_global_observer.cc')
-rw-r--r-- | libs/surfaces/osc/osc_global_observer.cc | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/libs/surfaces/osc/osc_global_observer.cc b/libs/surfaces/osc/osc_global_observer.cc index aa890e987f..a76463d467 100644 --- a/libs/surfaces/osc/osc_global_observer.cc +++ b/libs/surfaces/osc/osc_global_observer.cc @@ -36,12 +36,15 @@ using namespace PBD; using namespace ARDOUR; using namespace ArdourSurface; -OSCGlobalObserver::OSCGlobalObserver (Session& s, lo_address a, uint32_t gm, std::bitset<32> fb) - : gainmode (gm) - ,feedback (fb) +OSCGlobalObserver::OSCGlobalObserver (Session& s, ArdourSurface::OSC::OSCSurface* su) + : sur (su) + ,_init (true) { - addr = lo_address_new (lo_address_get_hostname(a) , lo_address_get_port(a)); + addr = lo_address_new_from_url (sur->remote_url.c_str()); + //addr = lo_address_new (lo_address_get_hostname(a) , lo_address_get_port(a)); session = &s; + gainmode = sur->gainmode; + feedback = sur->feedback; _last_frame = -1; if (feedback[4]) { @@ -117,10 +120,12 @@ OSCGlobalObserver::OSCGlobalObserver (Session& s, lo_address a, uint32_t gm, std * Maybe (many) more */ } + _init = false; } OSCGlobalObserver::~OSCGlobalObserver () { + _init = true; // need to add general zero everything messages strip_connections.drop_connections (); @@ -132,6 +137,9 @@ OSCGlobalObserver::~OSCGlobalObserver () void OSCGlobalObserver::tick () { + if (_init) { + return; + } framepos_t now_frame = session->transport_frame(); if (now_frame != _last_frame) { if (feedback[6]) { // timecode enabled |