Used as a template parameter for AudioData::Pointer. More...
Public Member Functions | |
| Pointer (typename Constness::VoidType *sourceData) noexcept | |
| Creates a non-interleaved pointer from some raw data in the appropriate format. | |
| Pointer (typename Constness::VoidType *sourceData, int numInterleavedChannels) noexcept | |
| Creates a pointer from some raw data in the appropriate format with the specified number of interleaved channels. | |
| Pointer (const Pointer &other) noexcept | |
| Creates a copy of another pointer. | |
| Pointer & | operator= (const Pointer &other) noexcept |
| float | getAsFloat () const noexcept |
| Returns the value of the first sample as a floating point value. | |
| void | setAsFloat (float newValue) noexcept |
| Sets the value of the first sample as a floating point value. | |
| int32 | getAsInt32 () const noexcept |
| Returns the value of the first sample as a 32-bit integer. | |
| void | setAsInt32 (int32 newValue) noexcept |
| Sets the value of the first sample as a 32-bit integer. | |
| Pointer & | operator++ () noexcept |
| Moves the pointer along to the next sample. | |
| Pointer & | operator-- () noexcept |
| Moves the pointer back to the previous sample. | |
| Pointer & | operator+= (int samplesToJump) noexcept |
| Adds a number of samples to the pointer's position. | |
| void | convertSamples (Pointer source, int numSamples) const noexcept |
| Writes a stream of samples into this pointer from another pointer. | |
| template<class OtherPointerType > | |
| void | convertSamples (OtherPointerType source, int numSamples) const noexcept |
| Writes a stream of samples into this pointer from another pointer. | |
| void | clearSamples (int numSamples) const noexcept |
| Sets a number of samples to zero. | |
| int | getNumInterleavedChannels () const noexcept |
| Returns the number of interleaved channels in the format. | |
| int | getNumBytesBetweenSamples () const noexcept |
| Returns the number of bytes between the start address of each sample. | |
| const void * | getRawData () const noexcept |
| Returns a pointer to the underlying data. | |
Static Public Member Functions | |
| static bool | isFloatingPoint () noexcept |
| Returns true if the pointer is using a floating-point format. | |
| static bool | isBigEndian () noexcept |
| Returns true if the format is big-endian. | |
| static int | getBytesPerSample () noexcept |
| Returns the number of bytes in each sample (ignoring the number of interleaved channels). | |
| static int | get32BitResolution () noexcept |
| Returns the accuracy of this format when represented as a 32-bit integer. | |
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.
// this creates a pointer for reading from a const array of 16-bit little-endian packed samples. AudioData::Pointer <AudioData::Int16, AudioData::LittleEndian, AudioData::NonInterleaved, AudioData::Const> pointer (someRawAudioData); // These methods read the sample that is being pointed to float firstSampleAsFloat = pointer.getAsFloat(); int32 firstSampleAsInt = pointer.getAsInt32(); ++pointer; // moves the pointer to the next sample. pointer += 3; // skips the next 3 samples.
The convertSamples() method lets you copy a range of samples from one format to another, automatically converting its format.
| AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::Pointer | ( | typename Constness::VoidType * | sourceData | ) |
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.
References static_jassert.
| AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::Pointer | ( | typename Constness::VoidType * | sourceData, |
| int | numInterleavedChannels | ||
| ) |
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.
| AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::Pointer | ( | const Pointer< SampleFormat, Endianness, InterleavingType, Constness > & | other | ) |
Creates a copy of another pointer.
| Pointer& AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::operator= | ( | const Pointer< SampleFormat, Endianness, InterleavingType, Constness > & | other | ) |
| float AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::getAsFloat | ( | ) | const |
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.
| void AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::setAsFloat | ( | float | newValue | ) |
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 static_jassert.
| int32 AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::getAsInt32 | ( | ) | const |
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.
| void AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::setAsInt32 | ( | int32 | newValue | ) |
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 static_jassert.
| Pointer& AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::operator++ | ( | ) |
Moves the pointer along to the next sample.
| Pointer& AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::operator-- | ( | ) |
Moves the pointer back to the previous sample.
| Pointer& AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::operator+= | ( | int | samplesToJump | ) |
Adds a number of samples to the pointer's position.
| void AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::convertSamples | ( | Pointer< SampleFormat, Endianness, InterleavingType, Constness > | source, |
| int | numSamples | ||
| ) | const |
Writes a stream of samples into this pointer from another pointer.
This will copy the specified number of samples, converting between formats appropriately.
References static_jassert.
Referenced by AudioFormatReader::ReadHelper< DestSampleType, SourceSampleType, SourceEndianness >::read(), and AudioFormatWriter::WriteHelper< DestSampleType, SourceSampleType, DestEndianness >::write().
| void AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::convertSamples | ( | OtherPointerType | source, |
| int | numSamples | ||
| ) | const |
Writes a stream of samples into this pointer from another pointer.
This will copy the specified number of samples, converting between formats appropriately.
References static_jassert.
| void AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::clearSamples | ( | int | numSamples | ) | const |
Sets a number of samples to zero.
Referenced by AudioFormatReader::ReadHelper< DestSampleType, SourceSampleType, SourceEndianness >::read(), and AudioFormatWriter::WriteHelper< DestSampleType, SourceSampleType, DestEndianness >::write().
| static bool AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::isFloatingPoint | ( | ) | [static] |
Returns true if the pointer is using a floating-point format.
| static bool AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::isBigEndian | ( | ) | [static] |
Returns true if the format is big-endian.
| static int AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::getBytesPerSample | ( | ) | [static] |
Returns the number of bytes in each sample (ignoring the number of interleaved channels).
| int AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::getNumInterleavedChannels | ( | ) | const |
Returns the number of interleaved channels in the format.
| int AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::getNumBytesBetweenSamples | ( | ) | const |
Returns the number of bytes between the start address of each sample.
| static int AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::get32BitResolution | ( | ) | [static] |
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.
| const void* AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::getRawData | ( | ) | const |
Returns a pointer to the underlying data.