Loading...
Searching...
No Matches
juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness > Class Template Reference

## Detailed Description

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>
class juce::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.

// 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
juce::AudioData::Pointer
Used as a template parameter for AudioData::Pointer.
Definition juce_AudioDataConverters.h:368
juce::int32
signed int int32
A platform-independent 32-bit signed integer type.
Definition juce_MathsFunctions.h:55

The convertSamples() method lets you copy a range of samples from one format to another, automatically converting its format.

See also
  AudioData::Converter

The documentation for this class was generated from the following file:

- juce_audio_basics/buffers/juce_AudioDataConverters.h

Inherits InterleavingType.

## 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 numInterleaved) 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.
Pointer | operator+ (int samplesToJump) const
| Returns a new pointer with the specified offset from this 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.
Range< float > | findMinAndMax (size_t numSamples) const noexcept
| Scans a block of data, returning the lowest and highest levels as floats.
void | findMinAndMax (size_t numSamples, float &minValue, float &maxValue) const noexcept
| Scans a block of data, returning the lowest and highest levels as floats.
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.

## Constructors and Destructors

## Pointer() [1/3]

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>

juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::Pointer | ( | typename Constness::VoidType * | sourceData | ) |

inline 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.

## Pointer() [2/3]

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>

juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::Pointer | ( | typename Constness::VoidType * | sourceData,
|  | int | numInterleaved )

inline 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.

## Pointer() [3/3]

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>

juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::Pointer | ( | const Pointer< SampleFormat, Endianness, InterleavingType, Constness > & | other | ) |

inline noexcept

Creates a copy of another pointer.

## Member Functions

## operator=()

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>

Pointer & juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::operator= | ( | const Pointer< SampleFormat, Endianness, InterleavingType, Constness > & | other | ) |

inline noexcept

## getAsFloat()

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>

float juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::getAsFloat | ( |  | ) | const

inline 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.

Referenced by juce::AudioData::Pointer< DataFormat, Endianness, std::conditional_t< IsInterleaved, Interleaved, NonInterleaved >, std::conditional_t< IsConst, Const, NonConst > >::findMinAndMax().

## setAsFloat()

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>

void juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::setAsFloat | ( | float | newValue | ) |

inline 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.

## getAsInt32()

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>

int32 juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::getAsInt32 | ( |  | ) | const

inline noexcept

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.

Referenced by juce::AudioData::Pointer< DataFormat, Endianness, std::conditional_t< IsInterleaved, Interleaved, NonInterleaved >, std::conditional_t< IsConst, Const, NonConst > >::findMinAndMax().

## setAsInt32()

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>

void juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::setAsInt32 | ( | int32 | newValue | ) |

inline noexcept

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().

## operator++()

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>

Pointer & juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::operator++ | ( |  | ) |

inline noexcept

Moves the pointer along to the next sample.

## operator--()

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>

Pointer & juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::operator-- | ( |  | ) |

inline noexcept

Moves the pointer back to the previous sample.

## operator+=()

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>

Pointer & juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::operator+= | ( | int | samplesToJump | ) |

inline noexcept

Adds a number of samples to the pointer's position.

## operator+()

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>

Pointer juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::operator+ | ( | int | samplesToJump | ) | const

inline

Returns a new pointer with the specified offset from this pointer's position.

## convertSamples() [1/2]

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>

void juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::convertSamples | ( | Pointer< SampleFormat, Endianness, InterleavingType, Constness > | source,
|  | int | numSamples ) const

inline noexcept

Writes a stream of samples into this pointer from another pointer.

This will copy the specified number of samples, converting between formats appropriately.

Referenced by juce::AudioFormatReader::ReadHelper< DestSampleType, SourceSampleType, SourceEndianness >::read(), and juce::AudioFormatWriter::WriteHelper< DestSampleType, SourceSampleType, DestEndianness >::write().

## convertSamples() [2/2]

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>
template<class OtherPointerType>

void juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::convertSamples | ( | OtherPointerType | source,
|  | int | numSamples ) const

inline noexcept

Writes a stream of samples into this pointer from another pointer.

This will copy the specified number of samples, converting between formats appropriately.

## clearSamples()

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>

void juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::clearSamples | ( | int | numSamples | ) | const

inline noexcept

Sets a number of samples to zero.

Referenced by juce::AudioFormatReader::ReadHelper< DestSampleType, SourceSampleType, SourceEndianness >::read(), and juce::AudioFormatWriter::WriteHelper< DestSampleType, SourceSampleType, DestEndianness >::write().

## findMinAndMax() [1/2]

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>

Range< float > juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::findMinAndMax | ( | size_t | numSamples | ) | const

inline noexcept

Scans a block of data, returning the lowest and highest levels as floats.

## findMinAndMax() [2/2]

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>

void juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::findMinAndMax | ( | size_t | numSamples,
|  | float & | minValue,
|  | float & | maxValue ) const

inline noexcept

Scans a block of data, returning the lowest and highest levels as floats.

## isFloatingPoint()

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>

bool juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::isFloatingPoint | ( |  | ) |

inline static noexcept

Returns true if the pointer is using a floating-point format.

## isBigEndian()

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>

bool juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::isBigEndian | ( |  | ) |

inline static noexcept

Returns true if the format is big-endian.

## getBytesPerSample()

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>

int juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::getBytesPerSample | ( |  | ) |

inline static noexcept

Returns the number of bytes in each sample (ignoring the number of interleaved channels).

## getNumInterleavedChannels()

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>

int juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::getNumInterleavedChannels | ( |  | ) | const

inline noexcept

Returns the number of interleaved channels in the format.

## getNumBytesBetweenSamples()

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>

int juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::getNumBytesBetweenSamples | ( |  | ) | const

inline noexcept

Returns the number of bytes between the start address of each sample.

## get32BitResolution()

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>

int juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::get32BitResolution | ( |  | ) |

inline static noexcept

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.

## getRawData()

template<typename SampleFormat, typename Endianness, typename InterleavingType, typename Constness>

const void * juce::AudioData::Pointer< SampleFormat, Endianness, InterleavingType, Constness >::getRawData | ( |  | ) | const

inline noexcept

Returns a pointer to the underlying data.

### Purchase

Get JUCE

### Discover

What's New in JUCE Features

### Learn

Documentaion Tutorials Made with JUCE Resources

### Support

JUCE Forum Newsletter Archive

### About

Contact Us JUCE Legal JUCE Licensing FAQ

### Events

Audio Developer Conference
© Raw Material Software Limited