zynaddsubfx

ZynAddSubFX open source synthesizer
Log | Files | Refs | Submodules | LICENSE

commit 7581a9d40f1243d6b5fa7528bf3413933ce333a6
parent b7823300567216d65314b86f42130b1d37694fe2
Author: fundamental <mark.d.mccurry@gmail.com>
Date:   Thu, 18 Aug 2016 16:06:16 -0400

Add Alt API For Listing Bank Slots

Diffstat:
Msrc/Misc/Bank.cpp | 14++++++++++++++
Msrc/Misc/Bank.h | 1+
Msrc/Misc/MiddleWare.cpp | 13+++++++++++++
3 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/src/Misc/Bank.cpp b/src/Misc/Bank.cpp @@ -471,6 +471,20 @@ std::vector<std::string> Bank::search(std::string s) const } return out; } + +std::vector<std::string> Bank::blist(std::string s) +{ + std::vector<std::string> out; + int result = loadbank(s); + for(int i=0; i<128; ++i) { + if(ins[i].filename.empty()) + out.push_back("Empty Preset"); + else + out.push_back(ins[i].name); + out.push_back(to_s(i)); + } + return out; +} int Bank::addtobank(int pos, string filename, string name) { diff --git a/src/Misc/Bank.h b/src/Misc/Bank.h @@ -77,6 +77,7 @@ class Bank } ins[BANK_SIZE]; std::vector<std::string> search(std::string) const; + std::vector<std::string> blist(std::string); private: diff --git a/src/Misc/MiddleWare.cpp b/src/Misc/MiddleWare.cpp @@ -1075,6 +1075,19 @@ const rtosc::Ports bankPorts = { d.replyArray("/bank/search_results", res_type, res_dat); #undef MAX_SEARCH rEnd}, + {"blist:s", 0, 0, + rBegin; + auto res = impl.blist(rtosc_argument(msg, 0).s); +#define MAX_SEARCH 300 + char res_type[MAX_SEARCH+1] = {0}; + rtosc_arg_t res_dat[MAX_SEARCH] = {0}; + for(unsigned i=0; i<res.size() && i<MAX_SEARCH; ++i) { + res_type[i] = 's'; + res_dat[i].s = res[i].c_str(); + } + d.replyArray("/bank/search_results", res_type, res_dat); +#undef MAX_SEARCH + rEnd}, {"search_results:", 0, 0, rBegin; d.reply("/bank/search_results", "");