StereoFrame Class

(QAudioBuffer::StereoFrame)

The StereoFrame class provides a simple wrapper for a stereo audio frame. More...

Header: #include <StereoFrame>
qmake: QT += multimedia

Public Functions

StereoFrame()
StereoFrame(T leftSample, T rightSample)
T average() const
void clear()
StereoFrame<T> &operator=(const StereoFrame<T> &other)

Public Variables

T left
T right
typedef S16S
typedef S16U
typedef S32F
typedef S8S
typedef S8U

Detailed Description

The StereoFrame class provides a simple wrapper for a stereo audio frame.

This templatized structure lets you treat a block of individual samples as an interleaved stereo stream frame. This is most useful when used with the templatized data() functions of QAudioBuffer. Generally the data is accessed as a pointer, so no copying should occur.

There are some predefined instantiations of this template for working with common stereo sample depths in a convenient way.

This frame structure has left and right members for accessing individual channel data.

For example:


  // Assuming 'buffer' is an unsigned 16 bit stereo buffer..
  QAudioBuffer::S16U *frames = buffer->data<QAudioBuffer::S16U>();
  for (int i=0; i < buffer->frameCount(); i++) {
      qSwap(frames[i].left, frames[i].right);
  }

See also QAudioBuffer::S8U, QAudioBuffer::S8S, QAudioBuffer::S16S, QAudioBuffer::S16U, and QAudioBuffer::S32F.

Member Function Documentation

StereoFrame::StereoFrame()

Constructs a new frame with the "silent" value for this sample format (0 for signed formats and floats, 0x8* for unsigned formats).

StereoFrame::StereoFrame(T leftSample, T rightSample)

Constructs a new frame with the supplied leftSample and rightSample values.

T StereoFrame::average() const

Returns the arithmetic average of the left and right samples.

void StereoFrame::clear()

Sets the values of this frame to the "silent" value.

StereoFrame<T> &StereoFrame::operator=(const StereoFrame<T> &other)

Assigns other to this frame.

Member Variable Documentation

T StereoFrame::left

This variable holds the left sample

T StereoFrame::right

This variable holds the right sample

Related Non-Members

typedef QAudioBuffer::S16S

This is a predefined specialization for a signed stereo 16 bit sample. Each channel is a signed short.

typedef QAudioBuffer::S16U

This is a predefined specialization for an unsigned stereo 16 bit sample. Each channel is an unsigned short.

typedef QAudioBuffer::S32F

This is a predefined specialization for an 32 bit float sample. Each channel is a float.

typedef QAudioBuffer::S8S

This is a predefined specialization for a signed stereo 8 bit sample. Each channel is a signed char.

typedef QAudioBuffer::S8U

This is a predefined specialization for an unsigned stereo 8 bit sample. Each channel is an unsigned char.