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:
parent
1c4b687401
commit
e75128a878
6 changed files with 25 additions and 6 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -54,3 +54,9 @@ MemoryMappedAudioFormatReader* AudioFormat::createMemoryMappedReader (const File
|
|||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
MemoryMappedAudioFormatReader* AudioFormat::createMemoryMappedReader (FileInputStream* fin)
|
||||
{
|
||||
delete fin;
|
||||
return nullptr;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue