summaryrefslogtreecommitdiffstats
path: root/src/multimedia/audio/qaudiooutput.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/audio/qaudiooutput.cpp')
-rw-r--r--src/multimedia/audio/qaudiooutput.cpp42
1 files changed, 41 insertions, 1 deletions
diff --git a/src/multimedia/audio/qaudiooutput.cpp b/src/multimedia/audio/qaudiooutput.cpp
index c2590533b..c29251533 100644
--- a/src/multimedia/audio/qaudiooutput.cpp
+++ b/src/multimedia/audio/qaudiooutput.cpp
@@ -49,6 +49,7 @@
\inmodule QtMultimedia
\ingroup multimedia
\ingroup multimedia_audio
+ \since 6.0
QAudioOutput represents an output channel that can be used together with QMediaPlayer or
QMediaCaptureSession. It allows selecting the physical output device to be used, muting the channel
@@ -86,6 +87,16 @@
This property can be used to select any other output device listed by QMediaDevices::audioOutputs().
*/
+/*!
+ \property QAudioOutput::audioRole
+ \brief the role of the audio played by this output.
+
+ It can be set to specify the type of audio being played, allowing the system to make
+ appropriate decisions when it comes to volume, routing or post-processing.
+
+ \sa supportedAudioRoles()
+*/
+
QAudioOutput::QAudioOutput(QObject *parent)
: QAudioOutput(QMediaDevices::defaultAudioOutput(), parent)
{}
@@ -112,7 +123,7 @@ QAudioDevice QAudioOutput::device() const
void QAudioOutput::setDevice(const QAudioDevice &device)
{
- if (device.mode() != QAudio::AudioOutput)
+ if (!device.isNull() && device.mode() != QAudio::AudioOutput)
return;
if (d->device == device)
return;
@@ -128,6 +139,7 @@ float QAudioOutput::volume() const
void QAudioOutput::setVolume(float volume)
{
+ volume = qBound(0., volume, 1.);
if (d->volume == volume)
return;
d->volume = volume;
@@ -140,6 +152,23 @@ bool QAudioOutput::isMuted() const
return d->muted;
}
+QAudio::Role QAudioOutput::audioRole() const
+{
+ return d->role;
+}
+
+/*!
+ Returns a list of supported audio roles.
+
+ If setting the audio role is not supported, an empty list is returned.
+
+ \sa audioRole
+*/
+QList<QAudio::Role> QAudioOutput::supportedAudioRoles() const
+{
+ return d->supportedAudioRoles();
+}
+
void QAudioOutput::setMuted(bool muted)
{
if (d->muted == muted)
@@ -149,4 +178,15 @@ void QAudioOutput::setMuted(bool muted)
emit mutedChanged(muted);
}
+void QAudioOutput::setAudioRole(QAudio::Role audioRole)
+{
+ if (d->role == audioRole)
+ return;
+ if (!d->supportedAudioRoles().contains(audioRole))
+ return;
+ d->role = audioRole;
+ d->setAudioRole(d->role);
+ emit audioRoleChanged(d->role);
+}
+
#include "moc_qaudiooutput.cpp"