1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Added a second createMemoryMappedReader method to AudioFormat and its derived classes that creates a MemoryMappedAudioFormatReader from a FileInputStream

This commit is contained in:
ed 2016-12-09 11:49:57 +00:00
parent 1c4b687401
commit e75128a878
6 changed files with 25 additions and 6 deletions

View file

@ -983,12 +983,17 @@ AudioFormatReader* AiffAudioFormat::createReaderFor (InputStream* sourceStream,
MemoryMappedAudioFormatReader* AiffAudioFormat::createMemoryMappedReader (const File& file)
{
if (FileInputStream* fin = file.createInputStream())
return createMemoryMappedReader (file.createInputStream());
}
MemoryMappedAudioFormatReader* AiffAudioFormat::createMemoryMappedReader (FileInputStream* fin)
{
if (fin != nullptr)
{
AiffAudioFormatReader reader (fin);
if (reader.lengthInSamples > 0)
return new MemoryMappedAiffReader (file, reader);
return new MemoryMappedAiffReader (fin->getFile(), reader);
}
return nullptr;

View file

@ -70,7 +70,8 @@ public:
AudioFormatReader* createReaderFor (InputStream* sourceStream,
bool deleteStreamIfOpeningFails) override;
MemoryMappedAudioFormatReader* createMemoryMappedReader (const File&) override;
MemoryMappedAudioFormatReader* createMemoryMappedReader (const File&) override;
MemoryMappedAudioFormatReader* createMemoryMappedReader (FileInputStream*) override;
AudioFormatWriter* createWriterFor (OutputStream* streamToWriteTo,
double sampleRateToUse,

View file

@ -1595,12 +1595,17 @@ AudioFormatReader* WavAudioFormat::createReaderFor (InputStream* sourceStream,
MemoryMappedAudioFormatReader* WavAudioFormat::createMemoryMappedReader (const File& file)
{
if (FileInputStream* fin = file.createInputStream())
return createMemoryMappedReader (file.createInputStream());
}
MemoryMappedAudioFormatReader* WavAudioFormat::createMemoryMappedReader (FileInputStream* fin)
{
if (fin != nullptr)
{
WavAudioFormatReader reader (fin);
if (reader.lengthInSamples > 0)
return new MemoryMappedWavReader (file, reader);
return new MemoryMappedWavReader (fin->getFile(), reader);
}
return nullptr;

View file

@ -183,7 +183,8 @@ public:
AudioFormatReader* createReaderFor (InputStream* sourceStream,
bool deleteStreamIfOpeningFails) override;
MemoryMappedAudioFormatReader* createMemoryMappedReader (const File&) override;
MemoryMappedAudioFormatReader* createMemoryMappedReader (const File&) override;
MemoryMappedAudioFormatReader* createMemoryMappedReader (FileInputStream*) override;
AudioFormatWriter* createWriterFor (OutputStream* streamToWriteTo,
double sampleRateToUse,

View file

@ -54,3 +54,9 @@ MemoryMappedAudioFormatReader* AudioFormat::createMemoryMappedReader (const File
{
return nullptr;
}
MemoryMappedAudioFormatReader* AudioFormat::createMemoryMappedReader (FileInputStream* fin)
{
delete fin;
return nullptr;
}

View file

@ -112,6 +112,7 @@ public:
If the format does not support this, the method will return nullptr;
*/
virtual MemoryMappedAudioFormatReader* createMemoryMappedReader (const File& file);
virtual MemoryMappedAudioFormatReader* createMemoryMappedReader (FileInputStream* fin);
/** Tries to create an object that can write to a stream with this audio format.