OSC: fix add and remove tracks to update without bank change.

This commit is contained in:
Len Ovens
2017-10-24 12:44:09 -07:00
parent d6a3db1ac7
commit 7aacd5d71a
2 changed files with 9 additions and 7 deletions

View File

@@ -119,7 +119,6 @@ OSC::~OSC()
tick = false;
stop ();
tear_down_gui ();
std::cout << "OSC stopped.\n";
_instance = 0;
}
@@ -1695,6 +1694,8 @@ OSC::global_feedback (OSCSurface* sur)
void
OSC::strip_feedback (OSCSurface* sur, bool new_bank_size)
{
sur->strips = get_sorted_stripables(sur->strip_types, sur->cue);
sur->nstrips = sur->strips.size();
if (new_bank_size || (!sur->feedback[0] && !sur->feedback[1])) {
// delete old observers
for (uint32_t i = 0; i < sur->observers.size(); i++) {
@@ -1706,8 +1707,6 @@ OSC::strip_feedback (OSCSurface* sur, bool new_bank_size)
sur->observers.clear();
// get freash striplist - just in case
sur->strips = get_sorted_stripables(sur->strip_types, sur->cue);
sur->nstrips = sur->strips.size();
uint32_t bank_size = sur->bank_size;
if (!bank_size) {
bank_size = sur->nstrips;
@@ -1788,9 +1787,7 @@ OSC::_recalcbanks ()
lo_send_message (addr, "/strip/list", reply);
lo_message_free (reply);
} else {
for (uint32_t i = 0; i < sur->observers.size(); i++) {
sur->observers[i]->refresh_strip (false);
}
strip_feedback (sur, false);
}
}
}

View File

@@ -81,10 +81,15 @@ OSCRouteObserver::refresh_strip (bool force)
gainmode = sur->gainmode;
feedback = sur->feedback;
in_line = feedback[2];
_last_gain =-1.0;
_last_trim =-1.0;
uint32_t sid = sur->bank + ssid - 2;
if (sid >= sur->strips.size ()) {
// this _should_ only occure if the number of strips is less than banksize
clear_strip ();
if (_strip) {
_strip = 0;
clear_strip ();
}
return;
}
// future