diff options
author | Len Ovens <len@ovenwerks.net> | 2017-03-29 16:07:21 -0700 |
---|---|---|
committer | Len Ovens <len@ovenwerks.net> | 2017-03-29 16:07:21 -0700 |
commit | 8de580c12393a79a9137b8c8191b0a951003514b (patch) | |
tree | c0ffb02edfe114185ffec931313aaf0894f2e1ad /libs/surfaces/osc/osc.cc | |
parent | 05231949e648f7e0a9cf6c3a3884b0226e3ab2b7 (diff) |
OSC: Clear devices should clear cue observers as well.
Diffstat (limited to 'libs/surfaces/osc/osc.cc')
-rw-r--r-- | libs/surfaces/osc/osc.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc index 26477f3cba..571dc65903 100644 --- a/libs/surfaces/osc/osc.cc +++ b/libs/surfaces/osc/osc.cc @@ -1282,6 +1282,7 @@ OSC::refresh_surface (lo_message msg) { if (address_only) { // get rid of all surfaces and observers. + // needs change to only clear those for this address on all ports clear_devices(); } OSCSurface *s = get_surface(get_address (msg)); @@ -1326,6 +1327,14 @@ OSC::clear_devices () delete so; } } + // delete cue observers + for (CueObservers::iterator x = cue_observers.begin(); x != cue_observers.end(); x++) { + OSCCueObserver* co; + if ((co = dynamic_cast<OSCCueObserver*>(*x)) != 0) { + delete co; + } + } + // clear out surfaces _surface.clear(); } |