7#include <QtCore/qshareddata.h>
9#include <QtMultimedia/qtmultimediaglobal.h>
11#include <QtMultimedia/qtaudio.h>
12#include <QtMultimedia/qaudioformat.h>
47template <QAudioFormat::ChannelConfig config, QAudioFormat::SampleFormat format>
53 static constexpr int constexprPopcount(
quint32 i)
55 i =
i - ((
i >> 1) & 0x55555555);
56 i = (
i & 0x33333333) + ((
i >> 2) & 0x33333333);
57 i = (
i + (
i >> 4)) & 0x0F0F0F0F;
58 return (
i * 0x01010101) >> 24;
60 static constexpr int nChannels = constexprPopcount(
config);
90 for (
int i = 0;
i < nChannels; ++
i)
95template <QAudioFormat::SampleFormat Format>
98template <QAudioFormat::SampleFormat Format>
101template <QAudioFormat::SampleFormat Format>
104template <QAudioFormat::SampleFormat Format>
107template <QAudioFormat::SampleFormat Format>
126 QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_PURE_SWAP(
QAudioBuffer)
130 bool isValid() const noexcept {
return d !=
nullptr; };
140 qint64 duration() const noexcept;
154 template <typename T> const T* constData()
const {
155 return static_cast<const T*
>(constData());
157 template <
typename T>
const T*
data()
const {
158 return static_cast<const T*
>(
data());
160 template <
typename T> T*
data() {
161 return static_cast<T*
>(
data());
164 const void* constData() const noexcept;
165 const
void*
data() const noexcept;
QAudioBuffer() noexcept
Create a new, empty, invalid buffer.
bool isValid() const noexcept
Returns true if this is a valid buffer.
QAudioFrameMono< QAudioFormat::Float > F32M
This is a predefined specialization for a 32 bit float mono sample.
QAudioFrameMono< QAudioFormat::Int32 > S32M
This is a predefined specialization for a signed 32 bit mono sample.
QAudioFrameStereo< QAudioFormat::Int32 > S32S
This is a predifined specialization for a siged 32 bit stereo sample.
void swap(QAudioBuffer &other) noexcept
Swaps the audio buffer with other.
QAudioFrameMono< QAudioFormat::UInt8 > U8M
This is a predefined specialization for an unsigned 8 bit mono sample.
T * data()
Returns a pointer to this buffer's data.
QAudioFrameStereo< QAudioFormat::Int16 > S16S
This is a predefined specialization for a signed stereo 16 bit sample.
const T * data() const
Returns a pointer to this buffer's data.
QAudioFrameMono< QAudioFormat::Int16 > S16M
QAudioFrameStereo< QAudioFormat::UInt8 > U8S
This is a predifined specialization for an unsiged 8 bit stereo sample.
QAudioFrameStereo< QAudioFormat::Float > F32S
This is a predifined specialization for a 32 bit float stereo sample.
Combined button and popup list for selecting options.
Q_DECL_CONST_FUNCTION QT_POPCOUNT_CONSTEXPR uint qPopulationCount(quint32 v) noexcept
QAudioFrame< QAudioFormat::ChannelConfig2Dot1, Format > QAudioFrame2Dot1
QAudioFrame< QAudioFormat::ChannelConfigSurround7Dot1, Format > QAudioFrameSurround7Dot1
QAudioFrame< QAudioFormat::ChannelConfigMono, Format > QAudioFrameMono
QAudioFrame< QAudioFormat::ChannelConfigStereo, Format > QAudioFrameStereo
QAudioFrame< QAudioFormat::ChannelConfigSurround5Dot1, Format > QAudioFrameSurround5Dot1
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLint GLsizei GLsizei GLenum format
#define QT_DECLARE_QESDP_SPECIALIZATION_DTOR_WITH_EXPORT(Class, ExportMacro)
static QT_BEGIN_NAMESPACE const uint Default
static constexpr int positionToIndex(QAudioFormat::AudioChannelPosition pos)
void setValue(QAudioFormat::AudioChannelPosition pos, value_type val)
value_type channels[nChannels]
value_type value(QAudioFormat::AudioChannelPosition pos) const
value_type operator[](QAudioFormat::AudioChannelPosition pos) const
typename QtPrivate::AudioSampleFormatHelper< format >::value_type value_type