Used as a template parameter for AudioData::Pointer. More...
#include <juce_AudioDataConverters.h>
Public Member Functions | |
Pointer (const Pointer &other) noexcept | |
Creates a copy of another pointer. More... | |
Pointer (typename Constness::VoidType *sourceData) noexcept | |
Creates a non-interleaved pointer from some raw data in the appropriate format. More... | |
Pointer (typename Constness::VoidType *sourceData, int numInterleaved) noexcept | |
Creates a pointer from some raw data in the appropriate format with the specified number of interleaved channels. More... | |
void | clearSamples (int numSamples) const noexcept |
Sets a number of samples to zero. More... | |
template<class OtherPointerType > | |
void | convertSamples (OtherPointerType source, int numSamples) const noexcept |
Writes a stream of samples into this pointer from another pointer. More... | |
void | convertSamples (Pointer source, int numSamples) const noexcept |
Writes a stream of samples into this pointer from another pointer. More... | |
Range< float > | findMinAndMax (size_t numSamples) const noexcept |
Scans a block of data, returning the lowest and highest levels as floats. More... | |
void | findMinAndMax (size_t numSamples, float &minValue, float &maxValue) const noexcept |
Scans a block of data, returning the lowest and highest levels as floats. More... | |
float | getAsFloat () const noexcept |
Returns the value of the first sample as a floating point value. More... | |
int32 | getAsInt32 () const noexcept |
Returns the value of the first sample as a 32-bit integer. More... | |
int | getNumBytesBetweenSamples () const noexcept |
Returns the number of bytes between the start address of each sample. More... | |
int | getNumInterleavedChannels () const noexcept |
Returns the number of interleaved channels in the format. More... | |
const void * | getRawData () const noexcept |
Returns a pointer to the underlying data. More... | |
Pointer & | operator++ () noexcept |
Moves the pointer along to the next sample. More... | |
Pointer & | operator+= (int samplesToJump) noexcept |
Adds a number of samples to the pointer's position. More... | |
Pointer & | operator-- () noexcept |
Moves the pointer back to the previous sample. More... | |
Pointer & | operator= (const Pointer &other) noexcept |
void | setAsFloat (float newValue) noexcept |
Sets the value of the first sample as a floating point value. More... | |
void | setAsInt32 (int32 newValue) noexcept |
Sets the value of the first sample as a 32-bit integer. More... | |
Static Public Member Functions | |
static int | get32BitResolution () noexcept |
Returns the accuracy of this format when represented as a 32-bit integer. More... | |
static int | getBytesPerSample () noexcept |
Returns the number of bytes in each sample (ignoring the number of interleaved channels). More... | |
static bool | isBigEndian () noexcept |
Returns true if the format is big-endian. More... | |
static bool | isFloatingPoint () noexcept |
Returns true if the pointer is using a floating-point format. More... | |
Private Member Functions | |
void | advance () noexcept |
Pointer | operator++ (int) |
Pointer | operator-- (int) |
Private Attributes | |
SampleFormat | data |
Used as a template parameter for AudioData::Pointer.
Indicates that the samples can only be used for const data.. A pointer to a block of audio data with a particular encoding.
This object can be used to read and write from blocks of encoded audio samples. To create one, you specify the audio format as a series of template parameters, e.g.
The convertSamples() method lets you copy a range of samples from one format to another, automatically converting its format.
|
inlinenoexcept |
Creates a non-interleaved pointer from some raw data in the appropriate format.
This constructor is only used if you've specified the AudioData::NonInterleaved option - for interleaved formats, use the constructor that also takes a number of channels.
|
inlinenoexcept |
Creates a pointer from some raw data in the appropriate format with the specified number of interleaved channels.
For non-interleaved data, use the other constructor.
|
inlinenoexcept |
Creates a copy of another pointer.
|
inlineprivatenoexcept |
|
inlinenoexcept |
Sets a number of samples to zero.
References juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::data.
Referenced by juce::AudioFormatReader::ReadHelper< DestSampleType, SourceSampleType, SourceEndianness >::read(), and juce::AudioFormatWriter::WriteHelper< DestSampleType, SourceSampleType, DestEndianness >::write().
|
inlinenoexcept |
Writes a stream of samples into this pointer from another pointer.
This will copy the specified number of samples, converting between formats appropriately.
References juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::advance(), juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::data, juce::gl::data, and juce::gl::source.
|
inlinenoexcept |
Writes a stream of samples into this pointer from another pointer.
This will copy the specified number of samples, converting between formats appropriately.
References juce::gl::source.
Referenced by juce::AudioFormatReader::ReadHelper< DestSampleType, SourceSampleType, SourceEndianness >::read(), and juce::AudioFormatWriter::WriteHelper< DestSampleType, SourceSampleType, DestEndianness >::write().
|
inlinenoexcept |
Scans a block of data, returning the lowest and highest levels as floats.
References juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::advance(), juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::getAsFloat(), juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::getAsInt32(), and juce::gl::v.
Referenced by juce::MemoryMappedAudioFormatReader::scanMinAndMaxInterleaved().
|
inlinenoexcept |
Scans a block of data, returning the lowest and highest levels as floats.
References juce::findMinAndMax(), and juce::gl::r.
|
inlinestaticnoexcept |
Returns the accuracy of this format when represented as a 32-bit integer.
This is the smallest number above 0 that can be represented in the sample format, converted to a 32-bit range. E,g. if the format is 8-bit, its resolution is 0x01000000; if the format is 24-bit, its resolution is 0x100.
|
inlinenoexcept |
Returns the value of the first sample as a floating point value.
The value will be in the range -1.0 to 1.0 for integer formats. For floating point formats, the value could be outside that range, although -1 to 1 is the standard range.
References juce::gl::data.
Referenced by juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::findMinAndMax().
|
inlinenoexcept |
Returns the value of the first sample as a 32-bit integer.
The value returned will be in the range 0x80000000 to 0x7fffffff, and shorter values will be shifted to fill this range (e.g. if you're reading from 24-bit data, the values will be shifted up by 8 bits when returned here). If the source data is floating point, values beyond -1.0 to 1.0 will be clipped so that -1.0 maps onto -0x7fffffff and 1.0 maps to 0x7fffffff.
References juce::gl::data.
Referenced by juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::findMinAndMax().
|
inlinestaticnoexcept |
Returns the number of bytes in each sample (ignoring the number of interleaved channels).
|
inlinenoexcept |
Returns the number of bytes between the start address of each sample.
References juce::gl::data.
|
inlinenoexcept |
Returns the number of interleaved channels in the format.
|
inlinenoexcept |
Returns a pointer to the underlying data.
References juce::gl::data.
|
inlinestaticnoexcept |
Returns true if the format is big-endian.
|
inlinestaticnoexcept |
Returns true if the pointer is using a floating-point format.
|
inlinenoexcept |
Moves the pointer along to the next sample.
|
private |
|
inlinenoexcept |
Adds a number of samples to the pointer's position.
References juce::gl::data.
|
inlinenoexcept |
Moves the pointer back to the previous sample.
References juce::gl::data.
|
private |
|
inlinenoexcept |
References juce::gl::data.
|
inlinenoexcept |
Sets the value of the first sample as a floating point value.
(This method can only be used if the AudioData::NonConst option was used). The value should be in the range -1.0 to 1.0 - for integer formats, values outside that range will be clipped. For floating point formats, any value passed in here will be written directly, although -1 to 1 is the standard range.
References juce::gl::data.
|
inlinenoexcept |
Sets the value of the first sample as a 32-bit integer.
This will be mapped to the range of the format that is being written - see getAsInt32().
References juce::gl::data.
|
private |