aboutsummaryrefslogtreecommitdiff
path: root/utils/gen_adldata/gen_adldata.cc
diff options
context:
space:
mode:
Diffstat (limited to 'utils/gen_adldata/gen_adldata.cc')
-rw-r--r--utils/gen_adldata/gen_adldata.cc58
1 files changed, 35 insertions, 23 deletions
diff --git a/utils/gen_adldata/gen_adldata.cc b/utils/gen_adldata/gen_adldata.cc
index 7cb4528..2b94ab6 100644
--- a/utils/gen_adldata/gen_adldata.cc
+++ b/utils/gen_adldata/gen_adldata.cc
@@ -15,17 +15,6 @@
#include "midi_inst_list.h"
-#include "file_formats/load_ail.h"
-#include "file_formats/load_bisqwit.h"
-#include "file_formats/load_bnk2.h"
-#include "file_formats/load_bnk.h"
-#include "file_formats/load_ibk.h"
-#include "file_formats/load_jv.h"
-#include "file_formats/load_op2.h"
-#include "file_formats/load_tmb.h"
-#include "file_formats/load_wopl.h"
-#include "file_formats/load_ea.h"
-
int main(int argc, char**argv)
{
if(argc == 1)
@@ -46,6 +35,8 @@ int main(int argc, char**argv)
return 1;
}
+ BanksDump db;
+
std::fprintf(outFile, "\
#include \"adldata.hh\"\n\
\n\
@@ -112,7 +103,7 @@ int main(int argc, char**argv)
if(format == "AIL")
{
- if(!LoadMiles(filepath.c_str(), bank, prefix.c_str()))
+ if(!BankFormats::LoadMiles(db, filepath.c_str(), bank, bank_name, prefix.c_str()))
{
std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str());
return 1;
@@ -121,7 +112,7 @@ int main(int argc, char**argv)
else
if(format == "Bisqwit")
{
- if(!LoadBisqwit(filepath.c_str(), bank, prefix.c_str()))
+ if(!BankFormats::LoadBisqwit(db, filepath.c_str(), bank, bank_name, prefix.c_str()))
{
std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str());
return 1;
@@ -130,7 +121,7 @@ int main(int argc, char**argv)
else
if(format == "WOPL")
{
- if(!LoadWopl(filepath.c_str(), bank, prefix.c_str()))
+ if(!BankFormats::LoadWopl(db, filepath.c_str(), bank, bank_name, prefix.c_str()))
{
std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str());
return 1;
@@ -139,7 +130,7 @@ int main(int argc, char**argv)
else
if(format == "OP2")
{
- if(!LoadDoom(filepath.c_str(), bank, prefix.c_str()))
+ if(!BankFormats::LoadDoom(db, filepath.c_str(), bank, bank_name, prefix.c_str()))
{
std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str());
return 1;
@@ -148,7 +139,7 @@ int main(int argc, char**argv)
else
if(format == "EA")
{
- if(!LoadEA(filepath.c_str(), bank, prefix.c_str()))
+ if(!BankFormats::LoadEA(db, filepath.c_str(), bank, bank_name, prefix.c_str()))
{
std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str());
return 1;
@@ -157,7 +148,7 @@ int main(int argc, char**argv)
else
if(format == "TMB")
{
- if(!LoadTMB(filepath.c_str(), bank, prefix.c_str()))
+ if(!BankFormats::LoadTMB(db, filepath.c_str(), bank, bank_name, prefix.c_str()))
{
std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str());
return 1;
@@ -166,7 +157,7 @@ int main(int argc, char**argv)
else
if(format == "Junglevision")
{
- if(!LoadJunglevision(filepath.c_str(), bank, prefix.c_str()))
+ if(!BankFormats::LoadJunglevision(db, filepath.c_str(), bank, bank_name, prefix.c_str()))
{
std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str());
return 1;
@@ -175,7 +166,7 @@ int main(int argc, char**argv)
else
if(format == "AdLibGold")
{
- if(!LoadBNK2(filepath.c_str(), bank, prefix.c_str(), filter_m, filter_p))
+ if(!BankFormats::LoadBNK2(db, filepath.c_str(), bank, bank_name, prefix.c_str(), filter_m, filter_p))
{
std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str());
return 1;
@@ -184,14 +175,14 @@ int main(int argc, char**argv)
else
if(format == "HMI")
{
- if(!LoadBNK(filepath.c_str(), bank, prefix.c_str(), false, false))
+ if(!BankFormats::LoadBNK(db, filepath.c_str(), bank, bank_name, prefix.c_str(), false, false))
{
std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str());
return 1;
}
if(!filepath_d.empty())
{
- if(!LoadBNK(filepath_d.c_str(),bank, prefix_d.c_str(), false, true))
+ if(!BankFormats::LoadBNK(db, filepath_d.c_str(), bank, bank_name, prefix_d.c_str(), false, true))
{
std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str());
return 1;
@@ -201,7 +192,7 @@ int main(int argc, char**argv)
else
if(format == "IBK")
{
- if(!LoadIBK(filepath.c_str(), bank, prefix.c_str(), false))
+ if(!BankFormats::LoadIBK(db, filepath.c_str(), bank, bank_name, prefix.c_str(), false))
{
std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str());
return 1;
@@ -209,7 +200,7 @@ int main(int argc, char**argv)
if(!filepath_d.empty())
{
//printf("Loading %s... \n", filepath_d.c_str());
- if(!LoadIBK(filepath_d.c_str(),bank, prefix_d.c_str(), true, noRhythmMode))
+ if(!BankFormats::LoadIBK(db, filepath_d.c_str(),bank, bank_name, prefix_d.c_str(), true, noRhythmMode))
{
std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str());
return 1;
@@ -350,6 +341,7 @@ int main(int argc, char**argv)
std::fprintf(outFile, "{\n");
MeasureThreaded measureCounter;
+#ifndef GEN_ADLDATA_DEEP_DEBUG // Skip slowest place to work with a debug
{
std::printf("Beginning to generate measures data... (hardware concurrency of %d)\n", std::thread::hardware_concurrency());
std::fflush(stdout);
@@ -367,6 +359,7 @@ int main(int argc, char**argv)
measureCounter.waitAll();
measureCounter.SaveCache("fm_banks/adldata-cache.dat");
}
+#endif
std::printf("Writing generated measure data...\n");
std::fflush(stdout);
@@ -565,6 +558,25 @@ int main(int argc, char**argv)
std::fclose(outFile);
+ {
+ measureCounter.LoadCacheX("fm_banks/adldata-cache-x.dat");
+ measureCounter.m_durationInfo.clear();
+ measureCounter.m_cache_matches = 0;
+ measureCounter.m_done = 0;
+ measureCounter.m_total = db.instruments.size();
+ std::printf("Beginning to generate measures data... (hardware concurrency of %d)\n", std::thread::hardware_concurrency());
+ std::fflush(stdout);
+ for(size_t b = 0; b < db.instruments.size(); ++b)
+ {
+ assert(db.instruments[b].instId == b);
+ measureCounter.run(db, db.instruments[b]);
+ }
+ std::fflush(stdout);
+ measureCounter.waitAll();
+ measureCounter.SaveCacheX("fm_banks/adldata-cache-x.dat");
+ }
+ db.exportBanks(std::string(outFile_s) + "x");
+
std::printf("Generation of ADLMIDI data has been completed!\n");
std::fflush(stdout);
}