6#include <QtSpatialAudio/qtspatialaudioglobal.h>
7#include <QtCore/QObject>
8#include <QtGui/qvector3d.h>
9#include <QtGui/qquaternion.h>
20 Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged)
21 Q_PROPERTY(QVector3D position READ position WRITE setPosition NOTIFY positionChanged)
22 Q_PROPERTY(QQuaternion rotation READ rotation WRITE setRotation NOTIFY rotationChanged)
23 Q_PROPERTY(
float volume READ volume WRITE setVolume NOTIFY volumeChanged)
24 Q_PROPERTY(DistanceModel distanceModel READ distanceModel WRITE setDistanceModel NOTIFY distanceModelChanged)
25 Q_PROPERTY(
float size READ size WRITE setSize NOTIFY sizeChanged)
26 Q_PROPERTY(
float distanceCutoff READ distanceCutoff WRITE setDistanceCutoff NOTIFY distanceCutoffChanged)
27 Q_PROPERTY(
float manualAttenuation READ manualAttenuation WRITE setManualAttenuation NOTIFY manualAttenuationChanged)
28 Q_PROPERTY(
float occlusionIntensity READ occlusionIntensity WRITE setOcclusionIntensity NOTIFY occlusionIntensityChanged)
29 Q_PROPERTY(
float directivity READ directivity WRITE setDirectivity NOTIFY directivityChanged)
30 Q_PROPERTY(
float directivityOrder READ directivityOrder WRITE setDirectivityOrder NOTIFY directivityOrderChanged)
31 Q_PROPERTY(
float nearFieldGain READ nearFieldGain WRITE setNearFieldGain NOTIFY nearFieldGainChanged)
32 Q_PROPERTY(
int loops READ loops WRITE setLoops NOTIFY loopsChanged)
33 Q_PROPERTY(
bool autoPlay READ autoPlay WRITE setAutoPlay NOTIFY autoPlayChanged)
36 explicit QSpatialSound(QAudioEngine *engine);
37 ~QSpatialSound() override;
39 void setSource(
const QUrl &url);
50 void setLoops(
int loops);
52 bool autoPlay()
const;
53 void setAutoPlay(
bool autoPlay);
55 void setPosition(QVector3D pos);
56 QVector3D position()
const;
58 void setRotation(
const QQuaternion &q);
59 QQuaternion rotation()
const;
61 void setVolume(
float volume);
64 enum class DistanceModel {
69 Q_ENUM(DistanceModel);
71 void setDistanceModel(DistanceModel model);
72 DistanceModel distanceModel()
const;
74 void setSize(
float size);
77 void setDistanceCutoff(
float cutoff);
78 float distanceCutoff()
const;
80 void setManualAttenuation(
float attenuation);
81 float manualAttenuation()
const;
83 void setOcclusionIntensity(
float occlusion);
84 float occlusionIntensity()
const;
86 void setDirectivity(
float alpha);
87 float directivity()
const;
89 void setDirectivityOrder(
float alpha);
90 float directivityOrder()
const;
92 void setNearFieldGain(
float gain);
93 float nearFieldGain()
const;
95 QAudioEngine *engine()
const;
100 void autoPlayChanged();
101 void positionChanged();
102 void rotationChanged();
103 void volumeChanged();
104 void distanceModelChanged();
106 void distanceCutoffChanged();
107 void manualAttenuationChanged();
108 void occlusionIntensityChanged();
109 void directivityChanged();
110 void directivityOrderChanged();
111 void nearFieldGainChanged();
119 void setEngine(QAudioEngine *engine);
120 Q_DECLARE_PRIVATE(QSpatialSound)
121 friend class QAmbientSoundPrivate;
124 QT6_ONLY(
void *unused =
nullptr;)
QAudioListener * listener()
~QQuick3DAudioListener() override
QSSGRenderGraphObject * updateSpatialNode(QSSGRenderGraphObject *) override
void setDirectivity(float alpha)
\qmlproperty real SpatialSound::directivity
float directivity() const
void setAutoPlay(bool autoPlay)
float occlusionIntensity() const
void manualAttenuationChanged()
void distanceCutoffChanged()
void directivityChanged()
void setManualAttenuation(float attenuation)
\qmlproperty real SpatialSound::manualAttenuation
QUrl source() const
\qmlproperty url SpatialSound::source
bool autoPlay() const
\qmlproperty bool SpatialSound::autoPlay
void pause()
\qmlmethod SpatialSound::pause()
float distanceCutoff() const
void setSource(QUrl source)
~QQuick3DSpatialSound() override
float nearFieldGain() const
void occlusionIntensityChanged()
void setDistanceCutoff(float max)
\qmlproperty real SpatialSound::distanceCutoff
void setDirectivityOrder(float alpha)
\qmlproperty real SpatialSound::directivityOrder
void setSize(float min)
\qmlproperty real SpatialSound::size
void nearFieldGainChanged()
float directivityOrder() const
float manualAttenuation() const
void stop()
\qmlmethod SpatialSound::stop()
void setDistanceModel(DistanceModel model)
\qmlproperty enumeration SpatialSound::distanceModel
QSSGRenderGraphObject * updateSpatialNode(QSSGRenderGraphObject *) override
void setVolume(float volume)
\qmlproperty real SpatialSound::volume
void directivityOrderChanged()
void setOcclusionIntensity(float occlusion)
\qmlproperty real SpatialSound::occlusionIntensity
DistanceModel distanceModel() const
void distanceModelChanged()
void setNearFieldGain(float gain)
\qmlproperty real SpatialSound::nearFieldGain