aboutsummaryrefslogtreecommitdiff
path: root/utils/gen_adldata/progs_cache.cpp
diff options
context:
space:
mode:
authorVitaly Novichkov <admin@wohlnet.ru>2019-06-02 02:54:00 +0300
committerVitaly Novichkov <admin@wohlnet.ru>2019-06-02 02:54:00 +0300
commit14303359fde2d8cf76a129296cf1f30fdcb57520 (patch)
tree549ace36cde2f58df0291c3e3a0956db3c507b82 /utils/gen_adldata/progs_cache.cpp
parent99cc4bfafcce3390bdd5d78ef8e55222d6507877 (diff)
downloadlibADLMIDI-14303359fde2d8cf76a129296cf1f30fdcb57520.tar.gz
libADLMIDI-14303359fde2d8cf76a129296cf1f30fdcb57520.tar.bz2
libADLMIDI-14303359fde2d8cf76a129296cf1f30fdcb57520.zip
Junglevision format is also supported by new DB
Diffstat (limited to 'utils/gen_adldata/progs_cache.cpp')
-rw-r--r--utils/gen_adldata/progs_cache.cpp23
1 files changed, 14 insertions, 9 deletions
diff --git a/utils/gen_adldata/progs_cache.cpp b/utils/gen_adldata/progs_cache.cpp
index e720384..9200f0f 100644
--- a/utils/gen_adldata/progs_cache.cpp
+++ b/utils/gen_adldata/progs_cache.cpp
@@ -151,20 +151,25 @@ void BanksDump::toOps(const insdata &inData, BanksDump::Operator *outData, size_
size_t BanksDump::initBank(size_t bankId, const std::string &title, uint_fast16_t bankSetup)
{
-#if 0
- assert(bankId <= banks.size());
- if(bankId >= banks.size())
- banks.emplace_back();
- BankEntry &b = banks[bankId];
-#else
- bankId = banks.size();
+ for(size_t bID = 0; bID < banks.size(); bID++)
+ {
+ BankEntry &be = banks[bID];
+ if(bankId == be.bankId)
+ {
+ be.bankTitle = title;
+ be.bankSetup = bankSetup;
+ return bID;
+ }
+ }
+
+ size_t bankIndex = banks.size();
banks.emplace_back();
BankEntry &b = banks.back();
-#endif
+
b.bankId = bankId;
b.bankTitle = title;
b.bankSetup = bankSetup;
- return b.bankId;
+ return bankIndex;
}
void BanksDump::addMidiBank(size_t bankId, bool percussion, BanksDump::MidiBank b)