diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2018-01-08 14:52:19 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-08 14:52:19 +0100 |
commit | 0edca99361b82ab60d10be260439b9789362cdda (patch) | |
tree | 6029ccdce41e12dbb5ea524fd03f0fa1d7cb3240 | |
parent | 35d600460019e86b98826ff0fe584475a42dccd4 (diff) | |
parent | 864b064def6dedb535767e3137c32083d580e588 (diff) |
Merge pull request #15377 from mrcdk/wav_correct_loop
Fixed loop mode values when importing a wav file.
-rw-r--r-- | editor/import/resource_importer_wav.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/editor/import/resource_importer_wav.cpp b/editor/import/resource_importer_wav.cpp index 12aa0bb33c..03155b3a48 100644 --- a/editor/import/resource_importer_wav.cpp +++ b/editor/import/resource_importer_wav.cpp @@ -268,9 +268,15 @@ Error ResourceImporterWAV::import(const String &p_source_file, const String &p_s for (int i = 0; i < 10; i++) file->get_32(); // i wish to know why should i do this... no doc! - loop = file->get_32() ? AudioStreamSample::LOOP_PING_PONG : AudioStreamSample::LOOP_FORWARD; - loop_begin = file->get_32(); - loop_end = file->get_32(); + // only read 0x00 (loop forward) and 0x01 (loop ping-pong) and skip anything else because + // it's not supported (loop backward), reserved for future uses or sampler specific + // from https://sites.google.com/site/musicgapi/technical-documents/wav-file-format#smpl (loop type values table) + int loop_type = file->get_32(); + if (loop_type == 0x00 || loop_type == 0x01) { + loop = loop_type ? AudioStreamSample::LOOP_PING_PONG : AudioStreamSample::LOOP_FORWARD; + loop_begin = file->get_32(); + loop_end = file->get_32(); + } } file->seek(file_pos + chunksize); } |