Audio: Allow to skip loaders

This commit is contained in:
Jérôme Leclercq
2021-06-20 14:08:12 +02:00
parent 8625c0a7ac
commit 40bcfb1323
4 changed files with 28 additions and 12 deletions

View File

@@ -83,8 +83,12 @@ namespace Nz
return extension == "mp3";
}
Ternary CheckMp3(Stream& stream)
Ternary CheckMp3(Stream& stream, const ResourceParameters& parameters)
{
bool skip;
if (parameters.custom.GetBooleanParameter("SkipNativeMP3Loader", &skip) && skip)
return Ternary::False;
mp3dec_io_t io;
io.read = &ReadCallback;
io.read_data = &stream;
@@ -348,7 +352,7 @@ namespace Nz
{
SoundBufferLoader::Entry loaderEntry;
loaderEntry.extensionSupport = IsSupported;
loaderEntry.streamChecker = [](Stream& stream, const SoundBufferParams&) { return CheckMp3(stream); };
loaderEntry.streamChecker = [](Stream& stream, const SoundBufferParams& parameters) { return CheckMp3(stream, parameters); };
loaderEntry.streamLoader = LoadSoundBuffer;
return loaderEntry;
@@ -358,7 +362,7 @@ namespace Nz
{
SoundStreamLoader::Entry loaderEntry;
loaderEntry.extensionSupport = IsSupported;
loaderEntry.streamChecker = [](Stream& stream, const SoundStreamParams&) { return CheckMp3(stream); };
loaderEntry.streamChecker = [](Stream& stream, const SoundStreamParams& parameters) { return CheckMp3(stream, parameters); };
loaderEntry.fileLoader = LoadSoundStreamFile;
loaderEntry.memoryLoader = LoadSoundStreamMemory;
loaderEntry.streamLoader = LoadSoundStreamStream;