summaryrefslogtreecommitdiffstats
path: root/src/plugins/android/src/mediaplayer/qandroidmediaservice.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/android/src/mediaplayer/qandroidmediaservice.cpp')
-rw-r--r--src/plugins/android/src/mediaplayer/qandroidmediaservice.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/plugins/android/src/mediaplayer/qandroidmediaservice.cpp b/src/plugins/android/src/mediaplayer/qandroidmediaservice.cpp
index 2688f3550..c057f530a 100644
--- a/src/plugins/android/src/mediaplayer/qandroidmediaservice.cpp
+++ b/src/plugins/android/src/mediaplayer/qandroidmediaservice.cpp
@@ -41,16 +41,26 @@
#include "qandroidmediaplayercontrol.h"
#include "qandroidmetadatareadercontrol.h"
+#include "qandroidaudiorolecontrol.h"
+#include "qandroidcustomaudiorolecontrol.h"
#include "qandroidmediaplayervideorenderercontrol.h"
QT_BEGIN_NAMESPACE
QAndroidMediaService::QAndroidMediaService(QObject *parent)
: QMediaService(parent)
+ , mAudioRoleControl(nullptr)
+ , mCustomAudioRoleControl(nullptr)
, mVideoRendererControl(0)
{
mMediaControl = new QAndroidMediaPlayerControl;
mMetadataControl = new QAndroidMetaDataReaderControl;
+ mAudioRoleControl = new QAndroidAudioRoleControl;
+ mCustomAudioRoleControl = new QAndroidCustomAudioRoleControl;
+ connect(mAudioRoleControl, &QAndroidAudioRoleControl::audioRoleChanged,
+ mMediaControl, &QAndroidMediaPlayerControl::setAudioRole);
+ connect(mCustomAudioRoleControl, &QAndroidCustomAudioRoleControl::customAudioRoleChanged,
+ mMediaControl, &QAndroidMediaPlayerControl::setCustomAudioRole);
connect(mMediaControl, SIGNAL(mediaChanged(QMediaContent)),
mMetadataControl, SLOT(onMediaChanged(QMediaContent)));
connect(mMediaControl, SIGNAL(metaDataUpdated()),
@@ -60,6 +70,8 @@ QAndroidMediaService::QAndroidMediaService(QObject *parent)
QAndroidMediaService::~QAndroidMediaService()
{
delete mVideoRendererControl;
+ delete mCustomAudioRoleControl;
+ delete mAudioRoleControl;
delete mMetadataControl;
delete mMediaControl;
}
@@ -72,6 +84,12 @@ QMediaControl *QAndroidMediaService::requestControl(const char *name)
if (qstrcmp(name, QMetaDataReaderControl_iid) == 0)
return mMetadataControl;
+ if (qstrcmp(name, QAudioRoleControl_iid) == 0)
+ return mAudioRoleControl;
+
+ if (qstrcmp(name, QCustomAudioRoleControl_iid) == 0)
+ return mCustomAudioRoleControl;
+
if (qstrcmp(name, QVideoRendererControl_iid) == 0) {
if (!mVideoRendererControl) {
mVideoRendererControl = new QAndroidMediaPlayerVideoRendererControl(mMediaControl);