Inherits InterleavingType.
|
| 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...
|
|
| Pointer (const Pointer &other) noexcept |
| Creates a copy of another pointer. More...
|
|
Pointer & | operator= (const Pointer &other) noexcept |
|
float | getAsFloat () const noexcept |
| Returns the value of the first sample as a floating point value. More...
|
|
void | setAsFloat (float newValue) noexcept |
| Sets 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...
|
|
void | setAsInt32 (int32 newValue) noexcept |
| Sets the value of the first sample as a 32-bit integer. More...
|
|
Pointer & | operator++ () noexcept |
| Moves the pointer along to the next sample. More...
|
|
Pointer & | operator-- () noexcept |
| Moves the pointer back to the previous sample. More...
|
|
Pointer & | operator+= (int samplesToJump) noexcept |
| Adds a number of samples to the pointer's position. More...
|
|
void | convertSamples (Pointer source, int numSamples) const noexcept |
| Writes a stream of samples into this pointer from another pointer. 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 | clearSamples (int numSamples) const noexcept |
| Sets a number of samples to zero. 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...
|
|
int | getNumInterleavedChannels () const noexcept |
| Returns the number of interleaved channels in the format. More...
|
|
int | getNumBytesBetweenSamples () const noexcept |
| Returns the number of bytes between the start address of each sample. More...
|
|
const void * | getRawData () const noexcept |
| Returns a pointer to the underlying data. More...
|
|
template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>
class AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >
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.
AudioData::LittleEndian,
AudioData::NonInterleaved,
AudioData::Const> pointer (someRawAudioData);
float firstSampleAsFloat = pointer.getAsFloat();
int32 firstSampleAsInt = pointer.getAsInt32();
++pointer;
pointer += 3;
The convertSamples() method lets you copy a range of samples from one format to another, automatically converting its format.
- See also
- AudioData::Converter
template<typename SampleFormat , typename Endianness , typename InterleavingType , typename Constness >
AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::Pointer |
( |
typename Constness::VoidType * |
sourceData | ) |
|
|
noexcept |
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.
template<typename SampleFormat , typename Endianness , typename InterleavingType , typename Constness >
AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::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.
For non-interleaved data, use the other constructor.
template<typename SampleFormat , typename Endianness , typename InterleavingType , typename Constness >
float AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::getAsFloat |
( |
| ) |
const |
|
noexcept |
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.
template<typename SampleFormat , typename Endianness , typename InterleavingType , typename Constness >
void AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::setAsFloat |
( |
float |
newValue | ) |
|
|
noexcept |
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.
template<typename SampleFormat , typename Endianness , typename InterleavingType , typename Constness >
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.
template<typename SampleFormat , typename Endianness , typename InterleavingType , typename Constness >
void AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::convertSamples |
( |
Pointer< SampleFormat, Endianness, InterleavingType, Constness > |
source, |
|
|
int |
numSamples |
|
) |
| const |
|
noexcept |
template<typename SampleFormat , typename Endianness , typename InterleavingType , typename Constness >
template<class OtherPointerType >
void AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::convertSamples |
( |
OtherPointerType |
source, |
|
|
int |
numSamples |
|
) |
| const |
|
noexcept |
Writes a stream of samples into this pointer from another pointer.
This will copy the specified number of samples, converting between formats appropriately.
template<typename SampleFormat , typename Endianness , typename InterleavingType , typename Constness >
static int AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::get32BitResolution |
( |
| ) |
|
|
staticnoexcept |
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.