diff options
author | Bent Bisballe Nyeng <deva@aasimon.org> | 2018-06-20 19:21:48 +0200 |
---|---|---|
committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2018-08-12 11:11:45 +0200 |
commit | 6adb14a7027c8d54827093c83fc80694d71fb6a7 (patch) | |
tree | cc02ac1bdb548b0b317999d727a12fa5a9973594 /test | |
parent | 1560674582102cd83197dccc79cb029fc843a48e (diff) |
Fix missing finalization of instruments on load. Fix relative instrument filenames according to the drumkit file. Make drumkit creator create version 2.0 drumkits. Reduce missing refs file to a warning.
Diffstat (limited to 'test')
-rw-r--r-- | test/domloadertest.cc | 10 | ||||
-rw-r--r-- | test/drumkit_creator.cc | 15 |
2 files changed, 13 insertions, 12 deletions
diff --git a/test/domloadertest.cc b/test/domloadertest.cc index 69b9821..55d49a7 100644 --- a/test/domloadertest.cc +++ b/test/domloadertest.cc @@ -34,6 +34,7 @@ #include <random.h> #include "scopedfile.h" +#include "path.h" class DOMLoaderTest : public DGUnit @@ -99,13 +100,13 @@ public: " <channel name=\"SnareBottom\"/>\n" \ " </channels>\n" \ " <instruments>\n" \ - " <instrument name=\"Snare1\" file=\"") + scoped_instrument_file1.filename() + std::string("\">\n" \ + " <instrument name=\"Snare1\" file=\"") + getFile(scoped_instrument_file1.filename()) + std::string("\">\n" \ " <channelmap in=\"AmbLeft\" out=\"AmbLeft\" main=\"true\"/>\n" \ " <channelmap in=\"AmbRight\" out=\"AmbRight\" main=\"true\"/>\n" \ " <channelmap in=\"SnareTop\" out=\"SnareTop\"/>\n" \ " <channelmap in=\"SnareBottom\" out=\"SnareBottom\"/>\n" \ " </instrument>\n" \ - " <instrument name=\"Snare2\" file=\"") + scoped_instrument_file2.filename() + std::string("\">\n" \ + " <instrument name=\"Snare2\" file=\"") + getFile(scoped_instrument_file2.filename()) + std::string("\">\n" \ " <channelmap in=\"AmbLeft2\" out=\"AmbLeft\" main=\"true\"/>\n" \ " <channelmap in=\"AmbRight2\" out=\"AmbRight\" main=\"true\"/>\n" \ " <channelmap in=\"SnareTop2\" out=\"SnareTop\"/>\n" \ @@ -119,14 +120,15 @@ public: DrumkitDOM drumkitdom; std::vector<InstrumentDOM> instrumentdoms; DGUNIT_ASSERT(parseDrumkitFile(scoped_file.filename(), drumkitdom)); + auto basepath = getPath(scoped_file.filename()); for(const auto& ref: drumkitdom.instruments) { instrumentdoms.emplace_back(); - DGUNIT_ASSERT(parseInstrumentFile(ref.file, instrumentdoms.back())); + DGUNIT_ASSERT(parseInstrumentFile(basepath + "/" + ref.file, instrumentdoms.back())); } DOMLoader domloader(settings, random); - DGUNIT_ASSERT(domloader.loadDom(drumkitdom, instrumentdoms, drumkit)); + DGUNIT_ASSERT(domloader.loadDom(basepath, drumkitdom, instrumentdoms, drumkit)); // // Drumkit: diff --git a/test/drumkit_creator.cc b/test/drumkit_creator.cc index 7a0291c..d92f876 100644 --- a/test/drumkit_creator.cc +++ b/test/drumkit_creator.cc @@ -44,6 +44,7 @@ DrumkitCreator::~DrumkitCreator() { + return; for (const auto& file: created_files) { auto error = unlink(file.c_str()); @@ -304,18 +305,16 @@ void DrumkitCreator::createInstrument(const InstrumentData& data, std::size_t nu const std::string& dir) { std::string prefix = "<?xml version='1.0' encoding='UTF-8'?>\n" - "<instrument name=\"" + data.name + "\" version=\"2.0\">\n"; + "<instrument name=\"" + data.name + "\" version=\"2.0\">\n" + " <samples>\n"; // FIXME sampleref - std::string postfix = "<velocities>\n" - "<velocity lower=\"0\" upper=\"1\">\n" - "<sampleref probability=\"1\" name=\"stroke1\"/>\n" - "</velocity>\n" - "</velocities>\n" - "</instrument>\n"; + std::string postfix = " </samples>\n</instrument>\n"; std::string samples; + float power = 1.0f; for (const auto& sample: data.sample_data) { - samples += "<sample name=\"" + sample.name + "\">\n"; + samples += "<sample name=\"" + sample.name + "\" power=\"" + std::to_string(power) + "\">\n"; + power += 0.1f; for (std::size_t i = 0; i < sample.audiofiles.size(); ++i) { |