Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QSpatialSound Class Reference

\inmodule QtSpatialAudio More...

#include <qspatialsound.h>

+ Inheritance diagram for QSpatialSound:
+ Collaboration diagram for QSpatialSound:

Public Types

enum  Loops { Infinite = -1 , Once = 1 }
 Lets you control the sound playback loop using the following values: More...
 
enum class  DistanceModel { Logarithmic , Linear , ManualAttenuation }
 Defines how the volume of the sound scales with distance to the listener. More...
 

Public Slots

void play ()
 Starts playing back the sound.
 
void pause ()
 Pauses sound playback.
 
void stop ()
 Stops sound playback and resets the current position and current loop count to 0.
 
- Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
 

Signals

void sourceChanged ()
 
void loopsChanged ()
 
void autoPlayChanged ()
 
void positionChanged ()
 
void rotationChanged ()
 
void volumeChanged ()
 
void distanceModelChanged ()
 
void sizeChanged ()
 
void distanceCutoffChanged ()
 
void manualAttenuationChanged ()
 
void occlusionIntensityChanged ()
 
void directivityChanged ()
 
void directivityOrderChanged ()
 
void nearFieldGainChanged ()
 
- Signals inherited from QObject
void destroyed (QObject *=nullptr)
 This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked.
 
void objectNameChanged (const QString &objectName, QPrivateSignal)
 This signal is emitted after the object's name has been changed.
 

Public Member Functions

 QSpatialSound (QAudioEngine *engine)
 Creates a spatial sound source for engine.
 
 ~QSpatialSound ()
 Destroys the sound source.
 
void setSource (const QUrl &url)
 
QUrl source () const
 
int loops () const
 
void setLoops (int loops)
 
bool autoPlay () const
 
void setAutoPlay (bool autoPlay)
 
void setPosition (QVector3D pos)
 
QVector3D position () const
 
void setRotation (const QQuaternion &q)
 
QQuaternion rotation () const
 
void setVolume (float volume)
 
float volume () const
 
 Q_ENUM (DistanceModel)
 
void setDistanceModel (DistanceModel model)
 
DistanceModel distanceModel () const
 
void setSize (float size)
 
float size () const
 
void setDistanceCutoff (float cutoff)
 
float distanceCutoff () const
 
void setManualAttenuation (float attenuation)
 
float manualAttenuation () const
 
void setOcclusionIntensity (float occlusion)
 
float occlusionIntensity () const
 
void setDirectivity (float alpha)
 
float directivity () const
 
void setDirectivityOrder (float alpha)
 
float directivityOrder () const
 
void setNearFieldGain (float gain)
 
float nearFieldGain () const
 
QAudioEngineengine () const
 Returns the engine associated with this listener.
 
- Public Member Functions inherited from QObject
Q_INVOKABLE QObject (QObject *parent=nullptr)
 Constructs an object with parent object parent.
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects.
 
virtual bool event (QEvent *event)
 This virtual function receives events to an object and should return true if the event e was recognized and processed.
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 Filters events if this object has been installed as an event filter for the watched object.
 
QString objectName () const
 
Q_WEAK_OVERLOAD void setObjectName (const QString &name)
 Sets the object's name to name.
 
void setObjectName (QAnyStringView name)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QBindable< QStringbindableObjectName ()
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false.
 
bool isWindowType () const
 Returns true if the object is a window; otherwise returns false.
 
bool isQuickItemType () const
 Returns true if the object is a QQuickItem; otherwise returns false.
 
bool signalsBlocked () const noexcept
 Returns true if signals are blocked; otherwise returns false.
 
bool blockSignals (bool b) noexcept
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it).
 
QThreadthread () const
 Returns the thread in which the object lives.
 
bool moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL)
 Changes the thread affinity for this object and its children and returns true on success.
 
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds.
 
int startTimer (std::chrono::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer)
 
void killTimer (int id)
 Kills the timer with timer identifier, id.
 
void killTimer (Qt::TimerId id)
 
template<typename T >
findChild (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object.
 
template<typename T >
QList< T > findChildren (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects.
 
template<typename T >
findChild (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename T >
QList< T > findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
const QObjectListchildren () const
 Returns a list of child objects.
 
void setParent (QObject *parent)
 Makes the object a child of parent.
 
void installEventFilter (QObject *filterObj)
 Installs an event filter filterObj on this object.
 
void removeEventFilter (QObject *obj)
 Removes an event filter object obj from this object.
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const
 
bool disconnect (const QObject *receiver, const char *member=nullptr) const
 
void dumpObjectTree () const
 Dumps a tree of children to the debug output.
 
void dumpObjectInfo () const
 Dumps information about signal connections, etc.
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value.
 
bool setProperty (const char *name, QVariant &&value)
 
QVariant property (const char *name) const
 Returns the value of the object's name property.
 
QList< QByteArraydynamicPropertyNames () const
 
QBindingStoragebindingStorage ()
 
const QBindingStoragebindingStorage () const
 
QObjectparent () const
 Returns a pointer to the parent object.
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false.
 

Properties

QUrl source
 The source file for the sound to be played.
 
QVector3D position
 Defines the position of the sound source in 3D space.
 
QQuaternion rotation
 Defines the orientation of the sound source in 3D space.
 
float volume
 Defines the volume of the sound.
 
DistanceModel distanceModel
 Defines distance model for this sound source.
 
float size
 Defines the size of the sound source.
 
float distanceCutoff
 Defines a distance beyond which sound coming from the source will cutoff.
 
float manualAttenuation
 Defines a manual attenuation factor if \l distanceModel is set to QSpatialSound::DistanceModel::ManualAttenuation.
 
float occlusionIntensity
 Defines how much the object is occluded.
 
float directivity
 Defines the directivity of the sound source.
 
float directivityOrder
 Defines the order of the directivity of the sound source.
 
float nearFieldGain
 Defines the near field gain for the sound source.
 
int loops
 Determines how many times the sound is played before the player stops.
 
bool autoPlay
 Determines whether the sound should automatically start playing when a source gets specified.
 
- Properties inherited from QObject
QString objectName
 the name of this object
 

Friends

class QAmbientSoundPrivate
 
class QSpatialSoundPrivate
 

Additional Inherited Members

- Static Public Member Functions inherited from QObject
static QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 \threadsafe
 
static QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 \threadsafe
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static bool disconnect (const QMetaObject::Connection &)
 Disconnect a connection.
 
template<typename Func1 , typename Func2 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot)
 
template<typename Func1 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero)
 
- Protected Member Functions inherited from QObject
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr.
 
int senderSignalIndex () const
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal.
 
bool isSignalConnected (const QMetaMethod &signal) const
 
virtual void timerEvent (QTimerEvent *event)
 This event handler can be reimplemented in a subclass to receive timer events for the object.
 
virtual void childEvent (QChildEvent *event)
 This event handler can be reimplemented in a subclass to receive child events.
 
virtual void customEvent (QEvent *event)
 This event handler can be reimplemented in a subclass to receive custom events.
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
 QObject (QObjectPrivate &dd, QObject *parent=nullptr)
 
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 

Detailed Description

\inmodule QtSpatialAudio

A sound object in 3D space.

QSpatialSound represents an audible object in 3D space. You can define its position and orientation in space, set the sound it is playing and define a volume for the object.

The object can have different attenuation behavior, emit sound mainly in one direction or spherically, and behave as if occluded by some other object.

Definition at line 17 of file qspatialsound.h.

Member Enumeration Documentation

◆ DistanceModel

enum class QSpatialSound::DistanceModel
strong

Defines how the volume of the sound scales with distance to the listener.

\value Logarithmic Volume decreases logarithmically with distance. \value Linear Volume decreases linearly with distance. \value ManualAttenuation Attenuation is defined manually using the \l manualAttenuation property.

Enumerator
Logarithmic 
Linear 
ManualAttenuation 

Definition at line 64 of file qspatialsound.h.

◆ Loops

Lets you control the sound playback loop using the following values:

\value Infinite Playback infinitely \value Once Playback once

Enumerator
Infinite 
Once 

Definition at line 42 of file qspatialsound.h.

Constructor & Destructor Documentation

◆ QSpatialSound()

QSpatialSound::QSpatialSound ( QAudioEngine * engine)
explicit

Creates a spatial sound source for engine.

The object can be placed in 3D space and will be louder the closer to the listener it is.

Definition at line 35 of file qspatialsound.cpp.

◆ ~QSpatialSound()

QSpatialSound::~QSpatialSound ( )

Destroys the sound source.

Definition at line 44 of file qspatialsound.cpp.

Member Function Documentation

◆ autoPlay()

bool QSpatialSound::autoPlay ( ) const

Definition at line 522 of file qspatialsound.cpp.

◆ autoPlayChanged

void QSpatialSound::autoPlayChanged ( )
signal

◆ directivity()

float QSpatialSound::directivity ( ) const

Definition at line 407 of file qspatialsound.cpp.

◆ directivityChanged

void QSpatialSound::directivityChanged ( )
signal

◆ directivityOrder()

float QSpatialSound::directivityOrder ( ) const

Definition at line 434 of file qspatialsound.cpp.

◆ directivityOrderChanged

void QSpatialSound::directivityOrderChanged ( )
signal

◆ distanceCutoff()

float QSpatialSound::distanceCutoff ( ) const

Definition at line 324 of file qspatialsound.cpp.

◆ distanceCutoffChanged

void QSpatialSound::distanceCutoffChanged ( )
signal

◆ distanceModel()

QSpatialSound::DistanceModel QSpatialSound::distanceModel ( ) const

Definition at line 275 of file qspatialsound.cpp.

◆ distanceModelChanged

void QSpatialSound::distanceModelChanged ( )
signal

◆ engine()

QAudioEngine * QSpatialSound::engine ( ) const

Returns the engine associated with this listener.

Definition at line 590 of file qspatialsound.cpp.

◆ loops()

int QSpatialSound::loops ( ) const

Definition at line 502 of file qspatialsound.cpp.

◆ loopsChanged

void QSpatialSound::loopsChanged ( )
signal

◆ manualAttenuation()

float QSpatialSound::manualAttenuation ( ) const

Definition at line 347 of file qspatialsound.cpp.

◆ manualAttenuationChanged

void QSpatialSound::manualAttenuationChanged ( )
signal

◆ nearFieldGain()

float QSpatialSound::nearFieldGain ( ) const

Definition at line 461 of file qspatialsound.cpp.

◆ nearFieldGainChanged

void QSpatialSound::nearFieldGainChanged ( )
signal

◆ occlusionIntensity()

float QSpatialSound::occlusionIntensity ( ) const

Definition at line 379 of file qspatialsound.cpp.

◆ occlusionIntensityChanged

void QSpatialSound::occlusionIntensityChanged ( )
signal

◆ pause

void QSpatialSound::pause ( )
slot

Pauses sound playback.

Calling play() will continue playback.

Definition at line 545 of file qspatialsound.cpp.

◆ play

void QSpatialSound::play ( )
slot

Starts playing back the sound.

Does nothing if the sound is already playing.

Definition at line 537 of file qspatialsound.cpp.

◆ position()

QVector3D QSpatialSound::position ( ) const

Definition at line 69 of file qspatialsound.cpp.

◆ positionChanged

void QSpatialSound::positionChanged ( )
signal

◆ Q_ENUM()

QSpatialSound::Q_ENUM ( DistanceModel )

◆ rotation()

QQuaternion QSpatialSound::rotation ( ) const

Definition at line 89 of file qspatialsound.cpp.

◆ rotationChanged

void QSpatialSound::rotationChanged ( )
signal

◆ setAutoPlay()

void QSpatialSound::setAutoPlay ( bool autoPlay)

Definition at line 527 of file qspatialsound.cpp.

◆ setDirectivity()

void QSpatialSound::setDirectivity ( float alpha)

Definition at line 393 of file qspatialsound.cpp.

◆ setDirectivityOrder()

void QSpatialSound::setDirectivityOrder ( float alpha)

Definition at line 420 of file qspatialsound.cpp.

◆ setDistanceCutoff()

void QSpatialSound::setDistanceCutoff ( float cutoff)

Definition at line 312 of file qspatialsound.cpp.

◆ setDistanceModel()

void QSpatialSound::setDistanceModel ( DistanceModel model)

Definition at line 138 of file qspatialsound.cpp.

◆ setLoops()

void QSpatialSound::setLoops ( int loops)

Definition at line 507 of file qspatialsound.cpp.

◆ setManualAttenuation()

void QSpatialSound::setManualAttenuation ( float attenuation)

Definition at line 336 of file qspatialsound.cpp.

◆ setNearFieldGain()

void QSpatialSound::setNearFieldGain ( float gain)

Definition at line 446 of file qspatialsound.cpp.

◆ setOcclusionIntensity()

void QSpatialSound::setOcclusionIntensity ( float occlusion)

Definition at line 368 of file qspatialsound.cpp.

◆ setPosition()

void QSpatialSound::setPosition ( QVector3D pos)

Definition at line 57 of file qspatialsound.cpp.

◆ setRotation()

void QSpatialSound::setRotation ( const QQuaternion & q)

Definition at line 80 of file qspatialsound.cpp.

◆ setSize()

void QSpatialSound::setSize ( float size)

Definition at line 287 of file qspatialsound.cpp.

◆ setSource()

void QSpatialSound::setSource ( const QUrl & url)

Definition at line 471 of file qspatialsound.cpp.

◆ setVolume()

void QSpatialSound::setVolume ( float volume)

Definition at line 102 of file qspatialsound.cpp.

◆ size()

float QSpatialSound::size ( ) const

Definition at line 299 of file qspatialsound.cpp.

◆ sizeChanged

void QSpatialSound::sizeChanged ( )
signal

◆ source()

QUrl QSpatialSound::source ( ) const

Definition at line 481 of file qspatialsound.cpp.

◆ sourceChanged

void QSpatialSound::sourceChanged ( )
signal

◆ stop

void QSpatialSound::stop ( )
slot

Stops sound playback and resets the current position and current loop count to 0.

Calling play() will start playback at the beginning of the sound file.

Definition at line 554 of file qspatialsound.cpp.

◆ volume()

float QSpatialSound::volume ( ) const

Definition at line 113 of file qspatialsound.cpp.

◆ volumeChanged

void QSpatialSound::volumeChanged ( )
signal

Friends And Related Symbol Documentation

◆ QAmbientSoundPrivate

friend class QAmbientSoundPrivate
friend

Definition at line 120 of file qspatialsound.h.

◆ QSpatialSoundPrivate

friend class QSpatialSoundPrivate
friend

Definition at line 121 of file qspatialsound.h.

Property Documentation

◆ autoPlay

bool QSpatialSound::autoPlay
readwrite

Determines whether the sound should automatically start playing when a source gets specified.

The default value is true.

Definition at line 33 of file qspatialsound.h.

◆ directivity

float QSpatialSound::directivity
readwrite

Defines the directivity of the sound source.

A value of 0 implies that the sound is emitted equally in all directions, while a value of 1 implies that the source mainly emits sound in the forward direction.

Valid values are between 0 and 1, the default is 0.

Definition at line 29 of file qspatialsound.h.

◆ directivityOrder

float QSpatialSound::directivityOrder
readwrite

Defines the order of the directivity of the sound source.

A higher order implies a sharper localization of the sound cone.

The minimum value and default for this property is 1.

Definition at line 30 of file qspatialsound.h.

◆ distanceCutoff

float QSpatialSound::distanceCutoff
readwrite

Defines a distance beyond which sound coming from the source will cutoff.

If the listener is further away from the sound object than the cutoff distance it won't be audible anymore.

Definition at line 26 of file qspatialsound.h.

◆ distanceModel

DistanceModel QSpatialSound::distanceModel
readwrite

Defines distance model for this sound source.

The volume starts scaling down from \l size to \l distanceCutoff. The volume is constant for distances smaller than size and zero for distances larger than the cutoff distance.

See also
QSpatialSound::DistanceModel

Definition at line 24 of file qspatialsound.h.

◆ loops

int QSpatialSound::loops
readwrite

Determines how many times the sound is played before the player stops.

Set to QSpatialSound::Infinite to play the current sound in a loop forever.

The default value is 1.

Definition at line 32 of file qspatialsound.h.

◆ manualAttenuation

float QSpatialSound::manualAttenuation
readwrite

Defines a manual attenuation factor if \l distanceModel is set to QSpatialSound::DistanceModel::ManualAttenuation.

Definition at line 27 of file qspatialsound.h.

◆ nearFieldGain

float QSpatialSound::nearFieldGain
readwrite

Defines the near field gain for the sound source.

Valid values are between 0 and 1. A near field gain of 1 will raise the volume of the sound signal by approx 20 dB for distances very close to the listener.

Definition at line 31 of file qspatialsound.h.

◆ occlusionIntensity

float QSpatialSound::occlusionIntensity
readwrite

Defines how much the object is occluded.

0 implies the object is not occluded at all, 1 implies the sound source is fully occluded by another object.

A fully occluded object will still be audible, but especially higher frequencies will be dampened. In addition, the object will still participate in generating reverb and reflections in the room.

Values larger than 1 are possible to further dampen the direct sound coming from the source.

The default is 0.

Definition at line 28 of file qspatialsound.h.

◆ position

QVector3D QSpatialSound::position
readwrite

Defines the position of the sound source in 3D space.

Units are in centimeters by default.

See also
QAudioEngine::distanceScale

Definition at line 21 of file qspatialsound.h.

◆ rotation

QQuaternion QSpatialSound::rotation
readwrite

Defines the orientation of the sound source in 3D space.

Definition at line 22 of file qspatialsound.h.

◆ size

float QSpatialSound::size
readwrite

Defines the size of the sound source.

If the listener is closer to the sound object than the size, volume will stay constant. The size is also used to for occlusion calculations, where large sources can be partially occluded by a wall.

Definition at line 25 of file qspatialsound.h.

◆ source

QUrl QSpatialSound::source
readwrite

The source file for the sound to be played.

Definition at line 20 of file qspatialsound.h.

◆ volume

float QSpatialSound::volume
readwrite

Defines the volume of the sound.

Values between 0 and 1 will attenuate the sound, while values above 1 provide an additional gain boost.

Definition at line 23 of file qspatialsound.h.


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