tracktion-engine 3.0-10-g034fdde4aa5
Tracktion Engine — High level data model for audio applications

« « « Anklang Documentation
Loading...
Searching...
No Matches
tracktion_MemoryMappedFileReader.h
Go to the documentation of this file.
1 /*
2 ,--. ,--. ,--. ,--.
3 ,-' '-.,--.--.,--,--.,---.| |,-.,-' '-.`--' ,---. ,--,--, Copyright 2024
4 '-. .-'| .--' ,-. | .--'| /'-. .-',--.| .-. || \ Tracktion Software
5 | | | | \ '-' \ `--.| \ \ | | | |' '-' '| || | Corporation
6 `---' `--' `--`--'`---'`--'`--' `---' `--' `---' `--''--' www.tracktion.com
7
8 Tracktion Engine uses a GPL/commercial licence - see LICENCE.md for details.
9*/
10
11namespace tracktion { inline namespace engine
12{
13
14//==============================================================================
18//==============================================================================
20{
23 : source (std::move (mappedFileAndReader))
24 {
25 sampleRate = source->reader->sampleRate;
26 bitsPerSample = source->reader->bitsPerSample;
27 lengthInSamples = source->reader->lengthInSamples;
28 numChannels = source->reader->numChannels;
29 usesFloatingPointData = source->reader->usesFloatingPointData;
30 metadataValues = source->reader->metadataValues;
31 }
32
34 void setReadTimeout (int) override
35 {
36 }
37
39 bool readSamples (int* const* destSamples, int numDestChannels, int startOffsetInDestBuffer,
40 juce::int64 startSampleInFile, int numSamples) override
41 {
42 return source->reader->readSamples (destSamples, numDestChannels, startOffsetInDestBuffer,
43 startSampleInFile, numSamples);
44 }
45
46private:
48};
49
50
51//==============================================================================
52//==============================================================================
57{
58public:
60 : source (std::move (sourceReader))
61 {
62 sampleRate = source->sampleRate;
63 bitsPerSample = source->bitsPerSample;
64 lengthInSamples = source->lengthInSamples;
65 numChannels = source->numChannels;
66 usesFloatingPointData = source->usesFloatingPointData;
67 metadataValues = source->metadataValues;
68 }
69
71 void setReadTimeout (int timeoutMilliseconds) override
72 {
73 source->setReadTimeout (timeoutMilliseconds);
74 }
75
77 bool readSamples (int* const* destSamples, int numDestChannels, int startOffsetInDestBuffer,
78 juce::int64 startSampleInFile, int numSamples) override
79 {
80 return source->readSamples (destSamples, numDestChannels, startOffsetInDestBuffer,
81 startSampleInFile, numSamples);
82 }
83
84private:
86};
87
88
89}} // namespace tracktion { inline namespace engine
StringPairArray metadataValues
unsigned int bitsPerSample
unsigned int numChannels
FallbackReader that wraps a BufferingAudioReader to avoid reading on the audio thread.
void setReadTimeout(int timeoutMilliseconds) override
Subclassed must override this to set the timeout.
long long int64
FallbackReader that wraps a MemoryMappedFile which usually improves read speeds.
MemoryMappedFileReader(std::unique_ptr< AudioFileUtils::MappedFileAndReader > mappedFileAndReader)
Creates a MemoryMappedFileReader for a MappedFileAndReader.
void setReadTimeout(int) override
Subclassed must override this to set the timeout.