commit d131a39e27e2f623e42b068250ebc86d7e90e6e7
parent 4961a4500bfe7800c8f37814a84a496edf4c18ba
Author: fundamental <mark.d.mccurry@gmail.com>
Date: Mon, 16 Nov 2015 22:39:01 -0500
Fix Bank Load
Diffstat:
2 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/src/Nio/InMgr.cpp b/src/Nio/InMgr.cpp
@@ -88,11 +88,15 @@ void InMgr::flush(unsigned frameStart, unsigned frameStop)
break;
case M_CONTROLLER:
- if(ev.num == C_bankselectmsb) // Change current bank
+ if(ev.num == C_bankselectmsb) { // Change current bank
+ middleware->spawnMaster()->bToU->write("/forward", "");
middleware->spawnMaster()->bToU->write("/bank/msb", "i", ev.value);
- else if(ev.num == C_bankselectlsb) // Change current bank (LSB)
+ middleware->spawnMaster()->bToU->write("/bank/bank_select", "i", ev.value);
+
+ } else if(ev.num == C_bankselectlsb) {// Change current bank (LSB)
+ middleware->spawnMaster()->bToU->write("/forward", "");
middleware->spawnMaster()->bToU->write("/bank/lsb", "i", ev.value);
- else
+ } else
master->setController(ev.channel, ev.num, ev.value);
break;
diff --git a/src/UI/BankView.cpp b/src/UI/BankView.cpp
@@ -34,7 +34,12 @@ void BankList::OSC_raw(const char *msg)
this->add(path);
}
if(!strcmp(msg, "/bank/bank_select")&& !strcmp(rtosc_argument_string(msg),"i")) {
- value(rtosc_argument(msg, 0).i);
+ int val = rtosc_argument(msg, 0).i;
+ if(value() != val) {
+ value(val);
+ for(int i=0; i<160; ++i)
+ osc->write("/bank/slot"+to_s(i), "");
+ }
}
}