summaryrefslogtreecommitdiff
path: root/libs/surfaces/osc/osc_global_observer.cc
diff options
context:
space:
mode:
authorLen Ovens <len@ovenwerks.net>2017-07-23 20:07:01 -0700
committerLen Ovens <len@ovenwerks.net>2017-07-23 20:08:02 -0700
commitf1632fcfd2eeed678da330f77bdabfc766ade826 (patch)
tree3b0092a50fec756384d474df4b303f8330635cb2 /libs/surfaces/osc/osc_global_observer.cc
parent07e869fda8d92fed1a375f85f54f13a75c7d5493 (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.cc16
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