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:
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", "");