diff options
author | Jim Hodapp <jim.hodapp@canonical.com> | 2015-08-03 14:27:16 +0200 |
---|---|---|
committer | Yoann Lopes <yoann.lopes@theqtcompany.com> | 2015-08-10 15:12:22 +0000 |
commit | 23acd9f01d5dcca84025eb95de266e7e6b6cb386 (patch) | |
tree | bffd596d62312ed8be20075edb02b35ceec95cb0 /src/multimedia/controls | |
parent | 129b06ba77e451c08778badcd54cbaf193d195bc (diff) |
Add audio role API to QMediaPlayer.
Change-Id: Ia5e3e2fe714f10b6aad62f0a4801c607905c7e0d
Task-number: QTBUG-41054
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Diffstat (limited to 'src/multimedia/controls')
-rw-r--r-- | src/multimedia/controls/controls.pri | 6 | ||||
-rw-r--r-- | src/multimedia/controls/qaudiorolecontrol.cpp | 111 | ||||
-rw-r--r-- | src/multimedia/controls/qaudiorolecontrol.h | 69 | ||||
-rw-r--r-- | src/multimedia/controls/qmediaplayercontrol.cpp | 1 |
4 files changed, 185 insertions, 2 deletions
diff --git a/src/multimedia/controls/controls.pri b/src/multimedia/controls/controls.pri index b19532fdc..7ab2e51c4 100644 --- a/src/multimedia/controls/controls.pri +++ b/src/multimedia/controls/controls.pri @@ -36,7 +36,8 @@ PUBLIC_HEADERS += \ controls/qvideowindowcontrol.h \ controls/qmediaaudioprobecontrol.h \ controls/qmediavideoprobecontrol.h \ - controls/qmediaavailabilitycontrol.h + controls/qmediaavailabilitycontrol.h \ + controls/qaudiorolecontrol.h PRIVATE_HEADERS += \ controls/qmediaplaylistcontrol_p.h \ @@ -79,5 +80,6 @@ SOURCES += \ controls/qaudioencodersettingscontrol.cpp \ controls/qaudioinputselectorcontrol.cpp \ controls/qaudiooutputselectorcontrol.cpp \ - controls/qvideodeviceselectorcontrol.cpp + controls/qvideodeviceselectorcontrol.cpp \ + controls/qaudiorolecontrol.cpp diff --git a/src/multimedia/controls/qaudiorolecontrol.cpp b/src/multimedia/controls/qaudiorolecontrol.cpp new file mode 100644 index 000000000..62696f013 --- /dev/null +++ b/src/multimedia/controls/qaudiorolecontrol.cpp @@ -0,0 +1,111 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part 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$ +** +****************************************************************************/ + +#include "qmediacontrol_p.h" +#include "qaudiorolecontrol.h" + +QT_BEGIN_NAMESPACE + +/*! + \class QAudioRoleControl + \inmodule QtMultimedia + \ingroup multimedia_control + \since 5.6 + + \brief The QAudioRoleControl class provides control over the audio role of a media object. + + If a QMediaService supports audio roles it will implement QAudioRoleControl. + + The functionality provided by this control is exposed to application code through the + QMediaPlayer class. + + The interface name of QAudioRoleControl is \c org.qt-project.qt.audiorolecontrol/5.6 as + defined in QAudioRoleControl_iid. + + \sa QMediaService::requestControl(), QMediaPlayer +*/ + +/*! + \macro QAudioRoleControl_iid + + \c org.qt-project.qt.audiorolecontrol/5.6 + + Defines the interface name of the QAudioRoleControl class. + + \relates QAudioRoleControl +*/ + +/*! + Construct a QAudioRoleControl with the given \a parent. +*/ +QAudioRoleControl::QAudioRoleControl(QObject *parent) + : QMediaControl(*new QMediaControlPrivate, parent) +{ + +} + +/*! + Destroys the audio role control. +*/ +QAudioRoleControl::~QAudioRoleControl() +{ + +} + +/*! + \fn QAudio::Role QAudioRoleControl::audioRole() const + + Returns the audio role of the media played by the media service. +*/ + +/*! + \fn void QAudioRoleControl::setAudioRole(QAudio::Role role) + + Sets the audio \a role of the media played by the media service. +*/ + +/*! + \fn QList<QAudio::Role> QAudioRoleControl::supportedAudioRoles() const + + Returns a list of audio roles that the media service supports. +*/ + +/*! + \fn void QAudioRoleControl::audioRoleChanged(QAudio::Role role) + + Signal emitted when the audio \a role has changed. + */ + + +#include "moc_qaudiorolecontrol.cpp" +QT_END_NAMESPACE diff --git a/src/multimedia/controls/qaudiorolecontrol.h b/src/multimedia/controls/qaudiorolecontrol.h new file mode 100644 index 000000000..983b2aed0 --- /dev/null +++ b/src/multimedia/controls/qaudiorolecontrol.h @@ -0,0 +1,69 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part 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 QAUDIOROLECONTROL_H +#define QAUDIOROLECONTROL_H + +#include <QtMultimedia/qmediacontrol.h> +#include <QtMultimedia/qaudio.h> + +QT_BEGIN_NAMESPACE + +// Class forward declaration required for QDoc bug +class QString; + +class Q_MULTIMEDIA_EXPORT QAudioRoleControl : public QMediaControl +{ + Q_OBJECT + +public: + virtual ~QAudioRoleControl(); + + virtual QAudio::Role audioRole() const = 0; + virtual void setAudioRole(QAudio::Role role) = 0; + + virtual QList<QAudio::Role> supportedAudioRoles() const = 0; + +Q_SIGNALS: + void audioRoleChanged(QAudio::Role role); + +protected: + explicit QAudioRoleControl(QObject *parent = 0); +}; + +#define QAudioRoleControl_iid "org.qt-project.qt.audiorolecontrol/5.6" +Q_MEDIA_DECLARE_CONTROL(QAudioRoleControl, QAudioRoleControl_iid) + +QT_END_NAMESPACE + +#endif // QAUDIOROLECONTROL_H diff --git a/src/multimedia/controls/qmediaplayercontrol.cpp b/src/multimedia/controls/qmediaplayercontrol.cpp index 9ea6fde82..0c891a1d4 100644 --- a/src/multimedia/controls/qmediaplayercontrol.cpp +++ b/src/multimedia/controls/qmediaplayercontrol.cpp @@ -111,6 +111,7 @@ QMediaPlayerControl::QMediaPlayerControl(QObject *parent): Returns the status of the current media. */ + /*! \fn QMediaPlayerControl::mediaStatusChanged(QMediaPlayer::MediaStatus status) |