6#include <QtSpatialAudio/private/qaudioengine_p.h>
7#include <QtMultimedia/qaudiosink.h>
8#include <QtCore/private/qobject_p.h>
22
23
24
25
26
27
28
29
30
31
32
35
36
37QAudioListener::QAudioListener(QAudioEngine *engine) : QObject(*
new QAudioListenerPrivate)
43
44
45QAudioListener::~QAudioListener()
52
53
54
55
56
57void QAudioListener::setPosition(QVector3D pos)
62 auto *ep = QAudioEnginePrivate::get(d->engine);
65 ep->setListenerPosition(pos);
69
70
71QVector3D QAudioListener::position()
const
73 Q_D(
const QAudioListener);
78
79
80void QAudioListener::setRotation(
const QQuaternion &q)
84 auto *ep = QAudioEnginePrivate::get(d->engine);
86 ep->setListenerRotation(q);
90
91
92QQuaternion QAudioListener::rotation()
const
94 Q_D(
const QAudioListener);
99
100
101void QAudioListener::setEngine(QAudioEngine *engine)
105 auto *ed = QAudioEnginePrivate::get(d->engine);
106 ed->setListenerPosition(std::nullopt);
110 auto *ed = QAudioEnginePrivate::get(d->engine);
111 bool hasListener = ed->listenerPosition().has_value();
113 qWarning() <<
"Ignoring attempt to add a second listener to the spatial audio engine.";
117 ed->setListenerPosition(d->pos);
122
123
124QAudioEngine *QAudioListener::engine()
const
126 Q_D(
const QAudioListener);
Combined button and popup list for selecting options.