Add audio role API to QMediaPlayer.
Change-Id: Ia5e3e2fe714f10b6aad62f0a4801c607905c7e0d Task-number: QTBUG-41054 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
This commit is contained in:
72
tests/auto/unit/qmultimedia_common/mockaudiorolecontrol.h
Normal file
72
tests/auto/unit/qmultimedia_common/mockaudiorolecontrol.h
Normal file
@@ -0,0 +1,72 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the test suite of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL21$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 or version 3 as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
|
||||
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
|
||||
** following information to ensure the GNU Lesser General Public License
|
||||
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** As a special exception, The Qt Company gives you certain additional
|
||||
** rights. These rights are described in The Qt Company LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef MOCKAUDIOROLECONTROL_H
|
||||
#define MOCKAUDIOROLECONTROL_H
|
||||
|
||||
#include <qaudiorolecontrol.h>
|
||||
|
||||
class MockAudioRoleControl : public QAudioRoleControl
|
||||
{
|
||||
friend class MockMediaPlayerService;
|
||||
|
||||
public:
|
||||
MockAudioRoleControl()
|
||||
: QAudioRoleControl()
|
||||
, m_audioRole(QAudio::UnknownRole)
|
||||
{
|
||||
}
|
||||
|
||||
QAudio::Role audioRole() const
|
||||
{
|
||||
return m_audioRole;
|
||||
}
|
||||
|
||||
void setAudioRole(QAudio::Role role)
|
||||
{
|
||||
if (role != m_audioRole)
|
||||
emit audioRoleChanged(m_audioRole = role);
|
||||
}
|
||||
|
||||
QList<QAudio::Role> supportedAudioRoles() const
|
||||
{
|
||||
return QList<QAudio::Role>() << QAudio::MusicRole
|
||||
<< QAudio::AlarmRole
|
||||
<< QAudio::NotificationRole;
|
||||
}
|
||||
|
||||
QAudio::Role m_audioRole;
|
||||
};
|
||||
|
||||
#endif // MOCKAUDIOROLECONTROL_H
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
#include "mockvideorenderercontrol.h"
|
||||
#include "mockvideoprobecontrol.h"
|
||||
#include "mockvideowindowcontrol.h"
|
||||
#include "mockaudiorolecontrol.h"
|
||||
|
||||
class MockMediaPlayerService : public QMediaService
|
||||
{
|
||||
@@ -51,6 +52,7 @@ public:
|
||||
MockMediaPlayerService():QMediaService(0)
|
||||
{
|
||||
mockControl = new MockMediaPlayerControl;
|
||||
mockAudioRoleControl = new MockAudioRoleControl;
|
||||
mockStreamsControl = new MockStreamsControl;
|
||||
mockNetworkControl = new MockNetworkAccessControl;
|
||||
rendererControl = new MockVideoRendererControl;
|
||||
@@ -58,11 +60,13 @@ public:
|
||||
mockVideoProbeControl = new MockVideoProbeControl;
|
||||
windowControl = new MockVideoWindowControl;
|
||||
windowRef = 0;
|
||||
enableAudioRole = true;
|
||||
}
|
||||
|
||||
~MockMediaPlayerService()
|
||||
{
|
||||
delete mockControl;
|
||||
delete mockAudioRoleControl;
|
||||
delete mockStreamsControl;
|
||||
delete mockNetworkControl;
|
||||
delete rendererControl;
|
||||
@@ -87,6 +91,8 @@ public:
|
||||
windowRef += 1;
|
||||
return windowControl;
|
||||
}
|
||||
} else if (enableAudioRole && qstrcmp(iid, QAudioRoleControl_iid) == 0) {
|
||||
return mockAudioRoleControl;
|
||||
}
|
||||
|
||||
if (qstrcmp(iid, QMediaNetworkAccessControl_iid) == 0)
|
||||
@@ -125,6 +131,8 @@ public:
|
||||
|
||||
void selectCurrentConfiguration(QNetworkConfiguration config) { mockNetworkControl->setCurrentConfiguration(config); }
|
||||
|
||||
void setHasAudioRole(bool enable) { enableAudioRole = enable; }
|
||||
|
||||
void reset()
|
||||
{
|
||||
mockControl->_state = QMediaPlayer::StoppedState;
|
||||
@@ -143,11 +151,15 @@ public:
|
||||
mockControl->_isValid = false;
|
||||
mockControl->_errorString = QString();
|
||||
|
||||
enableAudioRole = true;
|
||||
mockAudioRoleControl->m_audioRole = QAudio::UnknownRole;
|
||||
|
||||
mockNetworkControl->_current = QNetworkConfiguration();
|
||||
mockNetworkControl->_configurations = QList<QNetworkConfiguration>();
|
||||
}
|
||||
|
||||
MockMediaPlayerControl *mockControl;
|
||||
MockAudioRoleControl *mockAudioRoleControl;
|
||||
MockStreamsControl *mockStreamsControl;
|
||||
MockNetworkAccessControl *mockNetworkControl;
|
||||
MockVideoRendererControl *rendererControl;
|
||||
@@ -155,6 +167,7 @@ public:
|
||||
MockVideoWindowControl *windowControl;
|
||||
int windowRef;
|
||||
int rendererRef;
|
||||
bool enableAudioRole;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ HEADERS *= \
|
||||
../qmultimedia_common/mockmediaplayercontrol.h \
|
||||
../qmultimedia_common/mockmediastreamscontrol.h \
|
||||
../qmultimedia_common/mockmedianetworkaccesscontrol.h \
|
||||
../qmultimedia_common/mockvideoprobecontrol.h
|
||||
../qmultimedia_common/mockvideoprobecontrol.h \
|
||||
../qmultimedia_common/mockaudiorolecontrol.h
|
||||
|
||||
include(mockvideo.pri)
|
||||
|
||||
Reference in New Issue
Block a user