KgSound

Public Types | |
enum | PlaybackType { AmbientPlayback = 1, AbsolutePlayback, RelativePlayback } |
Properties | |
KgSound::PlaybackType | playbackType |
QPointF | pos |
qreal | volume |
![]() | |
objectName | |
Signals | |
void | playbackTypeChanged (KgSound::PlaybackType type) |
void | posChanged (const QPointF &pos) |
void | volumeChanged (qreal volume) |
Public Slots | |
void | start () |
void | start (const QPointF &pos) |
void | stop () |
Public Member Functions | |
KgSound (const QString &file, QObject *parent=nullptr) | |
~KgSound () override | |
bool | hasError () const |
bool | isValid () const |
KgSound::PlaybackType | playbackType () const |
QPointF | pos () const |
void | setPlaybackType (KgSound::PlaybackType type) |
void | setPos (const QPointF &pos) |
void | setVolume (qreal volume) |
qreal | volume () const |
![]() | |
QObject (QObject *parent) | |
bool | blockSignals (bool block) |
const QObjectList & | children () const const |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const |
void | deleteLater () |
void | destroyed (QObject *obj) |
bool | disconnect (const char *signal, const QObject *receiver, const char *method) const const |
bool | disconnect (const QObject *receiver, const char *method) const const |
void | dumpObjectInfo () |
void | dumpObjectInfo () const const |
void | dumpObjectTree () |
void | dumpObjectTree () const const |
QList< QByteArray > | dynamicPropertyNames () const const |
virtual bool | event (QEvent *e) |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
T | findChild (const QString &name, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QRegExp ®Exp, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QString &name, Qt::FindChildOptions options) const const |
bool | inherits (const char *className) const const |
void | installEventFilter (QObject *filterObj) |
bool | isWidgetType () const const |
bool | isWindowType () const const |
void | killTimer (int id) |
virtual const QMetaObject * | metaObject () const const |
void | moveToThread (QThread *targetThread) |
QString | objectName () const const |
void | objectNameChanged (const QString &objectName) |
QObject * | parent () const const |
QVariant | property (const char *name) const const |
Q_CLASSINFO (Name, Value) | |
Q_DISABLE_COPY (Class) | |
Q_DISABLE_COPY_MOVE (Class) | |
Q_DISABLE_MOVE (Class) | |
Q_EMIT Q_EMIT | |
Q_ENUM (...) | |
Q_ENUM_NS (...) | |
Q_ENUMS (...) | |
Q_FLAG (...) | |
Q_FLAG_NS (...) | |
Q_FLAGS (...) | |
Q_GADGET Q_GADGET | |
Q_INTERFACES (...) | |
Q_INVOKABLE Q_INVOKABLE | |
Q_NAMESPACE Q_NAMESPACE | |
Q_NAMESPACE_EXPORT (EXPORT_MACRO) | |
Q_OBJECT Q_OBJECT | |
Q_PROPERTY (...) | |
Q_REVISION Q_REVISION | |
Q_SET_OBJECT_NAME (Object) | |
Q_SIGNAL Q_SIGNAL | |
Q_SIGNALS Q_SIGNALS | |
Q_SLOT Q_SLOT | |
Q_SLOTS Q_SLOTS | |
T | qFindChild (const QObject *obj, const QString &name) |
QList< T > | qFindChildren (const QObject *obj, const QRegExp ®Exp) |
QList< T > | qFindChildren (const QObject *obj, const QString &name) |
T | qobject_cast (const QObject *object) |
T | qobject_cast (QObject *object) |
QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT | |
void | removeEventFilter (QObject *obj) |
void | setObjectName (const QString &name) |
void | setParent (QObject *parent) |
bool | setProperty (const char *name, const QVariant &value) |
bool | signalsBlocked () const const |
int | startTimer (int interval, Qt::TimerType timerType) |
int | startTimer (std::chrono::milliseconds time, Qt::TimerType timerType) |
QThread * | thread () const const |
Additional Inherited Members | |
![]() | |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, Functor functor) |
bool | disconnect (const QMetaObject::Connection &connection) |
bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method) |
bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method) |
bool | disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method) |
QString | tr (const char *sourceText, const char *disambiguation, int n) |
QString | trUtf8 (const char *sourceText, const char *disambiguation, int n) |
![]() | |
typedef | QObjectList |
![]() | |
virtual void | childEvent (QChildEvent *event) |
virtual void | connectNotify (const QMetaMethod &signal) |
virtual void | customEvent (QEvent *event) |
virtual void | disconnectNotify (const QMetaMethod &signal) |
bool | isSignalConnected (const QMetaMethod &signal) const const |
int | receivers (const char *signal) const const |
QObject * | sender () const const |
int | senderSignalIndex () const const |
virtual void | timerEvent (QTimerEvent *event) |
Detailed Description
This class models a sound file. Because it is implicitly added to this application's KgAudioScene, it can be played at different positions (if positional playback is supported, see KgAudioScene::capabilities()).
Compared to many other media playback classes, the notable difference of KgSound is that one sound instance can be played multiple times at the same point in time, by calling start() multiple times (possibly with different playback positions). This behavior can be suppressed by calling stop() before start().
- Note
- WAV files and Ogg/Vorbis files are guaranteed to work. Other audio files may also work, depending on the KgAudio backend and its configuration.
Definition at line 37 of file audio/kgsound.h.
Member Enumeration Documentation
◆ PlaybackType
This enumeration describes how a sound can be played back.
Definition at line 47 of file audio/kgsound.h.
Constructor & Destructor Documentation
◆ KgSound()
Loads a new sound from the given file.
Note that this is an expensive operation which you might want to do during application startup. However, you can reuse the same Sound instance for multiple playback events.
Since version 7.2.0 this constructor supports reading files from Qt Resource System, file can be for example ":/sound.ogg".
Definition at line 38 of file kgsound-openal.cpp.
◆ ~KgSound()
|
override |
Destroys this KgSound instance.
Definition at line 99 of file kgsound-openal.cpp.
Member Function Documentation
◆ hasError()
bool KgSound::hasError | ( | ) | const |
- Returns
- whether loading or playing this sound failed
See KgAudioScene::hasError() for why you typically do not need to use this method.
Definition at line 152 of file kgsound-openal.cpp.
◆ isValid()
bool KgSound::isValid | ( | ) | const |
- Returns
- whether the sound file could be loaded successfully
Definition at line 108 of file kgsound-openal.cpp.
◆ playbackType()
KgSound::PlaybackType KgSound::playbackType | ( | ) | const |
- Returns
- the playback type for this sound
◆ pos()
QPointF KgSound::pos | ( | ) | const |
- Returns
- the position of this sound
◆ setPlaybackType()
void KgSound::setPlaybackType | ( | KgSound::PlaybackType | type | ) |
Sets the playback type for this sound.
This affects how the sound will be perceived by the listener. The default is AmbientPlayback.
- Note
- Changes to this property will not be propagated to running playbacks of this sound.
- Effective only if positional playback is supported.
Definition at line 118 of file kgsound-openal.cpp.
◆ setPos()
void KgSound::setPos | ( | const QPointF & | pos | ) |
Sets the position of this sound.
It depends on the playbackType() how this is position interpreted. See the KgSound::PlaybackType enumeration documentation for details.
- Note
- Changes to this property will not be propagated to running playbacks of this sound.
- Effective only if positional playback is supported.
Definition at line 131 of file kgsound-openal.cpp.
◆ setVolume()
void KgSound::setVolume | ( | qreal | volume | ) |
Sets the volume of this sound.
The default is 1.0, which means no volume change, compared to the original sound file. 0.0 means that the sound is inaudible.
If you think of the KgSound as a loudspeaker, the volume which is controlled by this method is what you regulate at its volume control. If positional playback is enabled (see playbackType()), this will not be the actual volume which the listener will perceive, because the playback volume decreases with increasing playback-listener distances.
- Note
- Changes to this property will not be propagated to running playbacks of this sound.
Definition at line 144 of file kgsound-openal.cpp.
◆ start [1/2]
|
slot |
Starts a new playback instance of this sound.
This will not interrupt running playbacks of the same sound or any other sounds.
Definition at line 157 of file kgsound-openal.cpp.
◆ start [2/2]
|
slot |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. This overload takes an additional position argument which overrides the sound's pos() property.
- Note
- pos is respected only if positional playback is supported.
Definition at line 162 of file kgsound-openal.cpp.
◆ stop
|
slot |
Stops any playbacks of this sounds.
Definition at line 176 of file kgsound-openal.cpp.
◆ volume()
qreal KgSound::volume | ( | ) | const |
- Returns
- the volume of this sound
The documentation for this class was generated from the following files:
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Sep 25 2023 03:46:47 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.