|
LMMS
|
#include <juce_MemoryMappedAudioFormatReader.h>
Public Member Functions | |
| const File & | getFile () const noexcept |
| bool | mapEntireFile () |
| virtual bool | mapSectionOfFile (Range< int64 > samplesToMap) |
| Range< int64 > | getMappedSection () const noexcept |
| void | touchSample (int64 sample) const noexcept |
| virtual void | getSample (int64 sampleIndex, float *result) const noexcept=0 |
| size_t | getNumBytesUsed () const |
| Public Member Functions inherited from juce::AudioFormatReader | |
| virtual | ~AudioFormatReader () |
| const String & | getFormatName () const noexcept |
| bool | read (float *const *destChannels, int numDestChannels, int64 startSampleInSource, int numSamplesToRead) |
| bool | read (int *const *destChannels, int numDestChannels, int64 startSampleInSource, int numSamplesToRead, bool fillLeftoverChannelsWithCopies) |
| bool | read (AudioBuffer< float > *buffer, int startSampleInDestBuffer, int numSamples, int64 readerStartSample, bool useReaderLeftChan, bool useReaderRightChan) |
| virtual void | readMaxLevels (int64 startSample, int64 numSamples, Range< float > *results, int numChannelsToRead) |
| virtual void | readMaxLevels (int64 startSample, int64 numSamples, float &lowestLeft, float &highestLeft, float &lowestRight, float &highestRight) |
| int64 | searchForLevel (int64 startSample, int64 numSamplesToSearch, double magnitudeRangeMinimum, double magnitudeRangeMaximum, int minimumConsecutiveSamples) |
| virtual AudioChannelSet | getChannelLayout () |
| virtual bool | readSamples (int **destChannels, int numDestChannels, int startOffsetInDestBuffer, int64 startSampleInFile, int numSamples)=0 |
Protected Member Functions | |
| MemoryMappedAudioFormatReader (const File &file, const AudioFormatReader &details, int64 dataChunkStart, int64 dataChunkLength, int bytesPerFrame) | |
| int64 | sampleToFilePos (int64 sample) const noexcept |
| int64 | filePosToSample (int64 filePos) const noexcept |
| const void * | sampleToPointer (int64 sample) const noexcept |
| template<typename SampleType, typename Endianness> | |
| Range< float > | scanMinAndMaxInterleaved (int channel, int64 startSampleInFile, int64 numSamples) const noexcept |
| Protected Member Functions inherited from juce::AudioFormatReader | |
| AudioFormatReader (InputStream *sourceStream, const String &formatName) | |
Protected Attributes | |
| File | file |
| Range< int64 > | mappedSection |
| std::unique_ptr< MemoryMappedFile > | map |
| int64 | dataChunkStart |
| int64 | dataLength |
| int | bytesPerFrame |
Additional Inherited Members | |
| Public Attributes inherited from juce::AudioFormatReader | |
| double | sampleRate = 0 |
| unsigned int | bitsPerSample = 0 |
| int64 | lengthInSamples = 0 |
| unsigned int | numChannels = 0 |
| bool | usesFloatingPointData = false |
| StringPairArray | metadataValues |
| InputStream * | input |
| Static Protected Member Functions inherited from juce::AudioFormatReader | |
| static void | clearSamplesBeyondAvailableLength (int **destChannels, int numDestChannels, int startOffsetInDestBuffer, int64 startSampleInFile, int &numSamples, int64 fileLengthInSamples) |
A specialised type of AudioFormatReader that uses a MemoryMappedFile to read directly from an audio file.
This allows for incredibly fast random-access to sample data in the mapped region of the file, but not all audio formats support it - see AudioFormat::createMemoryMappedReader().
Note that before reading samples from a MemoryMappedAudioFormatReader, you must first call mapEntireFile() or mapSectionOfFile() to ensure that the region you want to read has been mapped.
@tags{Audio}
|
protected |
Creates an MemoryMappedAudioFormatReader object.
Note that before attempting to read any data, you must call mapEntireFile() or mapSectionOfFile() to ensure that the region you want to read has been mapped.
|
inlineprotectednoexcept |
Converts a byte position in the file to a sample index.
Returns the file that is being mapped
Returns the sample range that's currently memory-mapped and available for reading.
|
inline |
Returns the number of bytes currently being mapped
|
pure virtualnoexcept |
Returns the samples for all channels at a given sample position. The result array must be large enough to hold a value for each channel that this reader contains.
Implemented in juce::MemoryMappedAiffReader, and juce::MemoryMappedWavReader.
| bool juce::MemoryMappedAudioFormatReader::mapEntireFile | ( | ) |
Attempts to map the entire file into memory.
Attempts to map a section of the file into memory.
|
inlineprotectednoexcept |
Converts a sample index to a byte position in the file.
|
inlineprotectednoexcept |
Converts a sample index to a pointer to the mapped file memory.
|
inlineprotectednoexcept |
Used by AudioFormatReader subclasses to scan for min/max ranges in interleaved data.
Touches the memory for the given sample, to force it to be loaded into active memory.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |