summaryrefslogtreecommitdiff
path: root/libs/surfaces/osc/osc.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/surfaces/osc/osc.cc')
-rw-r--r--libs/surfaces/osc/osc.cc78
1 files changed, 41 insertions, 37 deletions
diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc
index 7e2b7e69a7..729dc186e0 100644
--- a/libs/surfaces/osc/osc.cc
+++ b/libs/surfaces/osc/osc.cc
@@ -1219,48 +1219,52 @@ OSC::refresh_surface (lo_message msg)
{
if (address_only) {
// get rid of all surfaces and observers.
- for (RouteObservers::iterator x = route_observers.begin(); x != route_observers.end();) {
+ clear_devices();
+ }
+ OSCSurface *s = get_surface(get_address (msg));
+ // restart all observers
+ set_surface (s->bank_size, (uint32_t) s->strip_types.to_ulong(), (uint32_t) s->feedback.to_ulong(), (uint32_t) s->gainmode, msg);
+ return 0;
+}
- OSCRouteObserver* rc;
+void
+OSC::clear_devices ()
+{
+ for (RouteObservers::iterator x = route_observers.begin(); x != route_observers.end();) {
- if ((rc = dynamic_cast<OSCRouteObserver*>(*x)) != 0) {
- delete *x;
- x = route_observers.erase (x);
- } else {
- ++x;
- }
+ OSCRouteObserver* rc;
+
+ if ((rc = dynamic_cast<OSCRouteObserver*>(*x)) != 0) {
+ delete *x;
+ x = route_observers.erase (x);
+ } else {
+ ++x;
}
- // Should maybe do global_observers too
- for (GlobalObservers::iterator x = global_observers.begin(); x != global_observers.end();) {
+ }
+ // Should maybe do global_observers too
+ for (GlobalObservers::iterator x = global_observers.begin(); x != global_observers.end();) {
- OSCGlobalObserver* gc;
+ OSCGlobalObserver* gc;
- if ((gc = dynamic_cast<OSCGlobalObserver*>(*x)) != 0) {
- delete *x;
- x = global_observers.erase (x);
- } else {
- ++x;
- }
+ if ((gc = dynamic_cast<OSCGlobalObserver*>(*x)) != 0) {
+ delete *x;
+ x = global_observers.erase (x);
+ } else {
+ ++x;
}
- // delete select observers
- for (uint32_t it = 0; it < _surface.size(); ++it) {
- OSCSurface* sur = &_surface[it];
- OSCSelectObserver* so;
- if ((so = dynamic_cast<OSCSelectObserver*>(sur->sel_obs)) != 0) {
- delete so;
- }
+ }
+ // delete select observers
+ for (uint32_t it = 0; it < _surface.size(); ++it) {
+ OSCSurface* sur = &_surface[it];
+ OSCSelectObserver* so;
+ if ((so = dynamic_cast<OSCSelectObserver*>(sur->sel_obs)) != 0) {
+ delete so;
}
- // add one from msg + port - Nope get_surface will do that for us
- // but we do want to clear out surfaces
- _surface.clear();
}
- OSCSurface *s = get_surface(get_address (msg));
- // restart all observers
- set_surface (s->bank_size, (uint32_t) s->strip_types.to_ulong(), (uint32_t) s->feedback.to_ulong(), (uint32_t) s->gainmode, msg);
- return 0;
+ // clear out surfaces
+ _surface.clear();
}
-
int
OSC::set_surface (uint32_t b_size, uint32_t strips, uint32_t fb, uint32_t gm, lo_message msg)
{
@@ -3143,8 +3147,8 @@ OSC::get_state ()
{
XMLNode& node (ControlProtocol::get_state());
node.add_property("debugmode", (int) _debugmode); // TODO: enum2str
- node.add_property ("address_only", address_only);
- node.add_property ("remote_port", remote_port);
+ node.add_property ("address-only", address_only);
+ node.add_property ("remote-port", remote_port);
node.add_property ("banksize", default_banksize);
node.add_property ("striptypes", default_strip);
node.add_property ("feedback", default_feedback);
@@ -3176,13 +3180,13 @@ OSC::set_state (const XMLNode& node, int version)
if (p) {
_debugmode = OSCDebugMode (PBD::atoi(p->value ()));
}
- p = node.property (X_("address_only"));
+ p = node.property (X_("address-only"));
if (p) {
address_only = OSCDebugMode (PBD::atoi(p->value ()));
}
- p = node.property (X_("remote_port"));
+ p = node.property (X_("remote-port"));
if (p) {
- remote_port = OSCDebugMode (PBD::atoi(p->value ()));
+ remote_port = p->value ();
}
p = node.property (X_("banksize"));
if (p) {