Moved QMediaServiceProvider to private header.

It's not intended to be used by applications.

Change-Id: I2acc26180ebb5c2419438169827f39aaf4578389
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
This commit is contained in:
Dmytro Poplavskiy
2012-02-06 16:43:53 +10:00
committed by Qt by Nokia
parent 39c96db2b3
commit ee39683e27
22 changed files with 211 additions and 205 deletions

View File

@@ -47,7 +47,7 @@
#include <qmediaplayercontrol.h>
#include <qmediaservice.h>
#include <qmediaserviceprovider.h>
#include <private/qmediaserviceprovider_p.h>
#include <qmetadatareadercontrol.h>
#include "qdeclarativemediametadata_p.h"

View File

@@ -55,7 +55,7 @@
#include <QtCore/qbasictimer.h>
#include <qmediaplayer.h>
#include <qmediaserviceprovider.h>
#include <private/qmediaserviceprovider_p.h>
QT_BEGIN_HEADER

View File

@@ -41,7 +41,7 @@
#include "qvideosurfaceoutput_p.h"
#include "qmediaobject_p.h"
#include "qmediaserviceprovider.h"
#include "qmediaserviceprovider_p.h"
#include <qcamera.h>
#include <qcameracontrol.h>

View File

@@ -26,6 +26,7 @@ PRIVATE_HEADERS += \
qmediaobject_p.h \
qmediapluginloader_p.h \
qmediaservice_p.h \
qmediaserviceprovider_p.h \
PUBLIC_HEADERS += \
qmediabindableinterface.h \
@@ -33,7 +34,6 @@ PUBLIC_HEADERS += \
qmediaenumdebug.h \
qmediaobject.h \
qmediaservice.h \
qmediaserviceprovider.h \
qmediaserviceproviderplugin.h \
qmediatimerange.h \
qtmedianamespace.h \

View File

@@ -45,7 +45,7 @@
#include "qmediaobject_p.h"
#include <qmediaservice.h>
#include <qmediaplayercontrol.h>
#include <qmediaserviceprovider.h>
#include <qmediaserviceprovider_p.h>
#include <qmediaplaylist.h>
#include <qmediaplaylistcontrol.h>
#include <qmediaplaylistsourcecontrol.h>

View File

@@ -43,7 +43,7 @@
#include <QtCore/qmap.h>
#include "qmediaservice.h"
#include "qmediaserviceprovider.h"
#include "qmediaserviceprovider_p.h"
#include "qmediaserviceproviderplugin.h"
#include "qmediapluginloader_p.h"
#include "qmediaplayer.h"
@@ -90,6 +90,8 @@ public:
\ingroup multimedia_control
\ingroup multimedia_core
\internal
The QMediaServiceProvider class uses hints to select an appropriate media service.
*/
@@ -533,6 +535,8 @@ Q_GLOBAL_STATIC(QPluginServiceProvider, pluginProvider);
\ingroup multimedia_control
\ingroup multimedia_core
\internal
\brief The QMediaServiceProvider class provides an abstract allocator for media services.
*/
@@ -742,7 +746,7 @@ QMediaServiceProvider *QMediaServiceProvider::defaultServiceProvider()
Returns a set of features supported by a plug-in \a service.
*/
#include "moc_qmediaserviceprovider.cpp"
#include "moc_qmediaserviceprovider_p.cpp"
#include "moc_qmediaserviceproviderplugin.cpp"
QT_END_NAMESPACE

View File

@@ -1,183 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/
**
** This file is part of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** GNU Lesser General Public License Usage
** This file may be used under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation and
** appearing in the file LICENSE.LGPL included in the packaging of this
** file. Please review the following information to ensure the GNU Lesser
** General Public License version 2.1 requirements will be met:
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU General
** Public License version 3.0 as published by the Free Software Foundation
** and appearing in the file LICENSE.GPL included in the packaging of this
** file. Please review the following information to ensure the GNU General
** Public License version 3.0 requirements will be met:
** http://www.gnu.org/copyleft/gpl.html.
**
** Other Usage
** Alternatively, this file may be used in accordance with the terms and
** conditions contained in a signed written agreement between you and Nokia.
**
**
**
**
**
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef QMEDIASERVICEPROVIDER_H
#define QMEDIASERVICEPROVIDER_H
#include <QtCore/qobject.h>
#include <QtCore/qshareddata.h>
#include <qtmultimediadefs.h>
#include "qtmedianamespace.h"
QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
QT_MODULE(Multimedia)
class QMediaService;
class QMediaServiceProviderHintPrivate;
class Q_MULTIMEDIA_EXPORT QMediaServiceProviderHint
{
public:
enum Type { Null, ContentType, Device, SupportedFeatures };
enum Feature {
LowLatencyPlayback = 0x01,
RecordingSupport = 0x02,
StreamPlayback = 0x04,
VideoSurface = 0x08,
BackgroundPlayback = 0x10,
};
Q_DECLARE_FLAGS(Features, Feature)
QMediaServiceProviderHint();
QMediaServiceProviderHint(const QString &mimeType, const QStringList& codecs);
QMediaServiceProviderHint(const QByteArray &device);
QMediaServiceProviderHint(Features features);
QMediaServiceProviderHint(const QMediaServiceProviderHint &other);
~QMediaServiceProviderHint();
QMediaServiceProviderHint& operator=(const QMediaServiceProviderHint &other);
bool operator == (const QMediaServiceProviderHint &other) const;
bool operator != (const QMediaServiceProviderHint &other) const;
bool isNull() const;
Type type() const;
QString mimeType() const;
QStringList codecs() const;
QByteArray device() const;
Features features() const;
//to be extended, if necessary
private:
QSharedDataPointer<QMediaServiceProviderHintPrivate> d;
};
Q_DECLARE_OPERATORS_FOR_FLAGS(QMediaServiceProviderHint::Features)
class Q_MULTIMEDIA_EXPORT QMediaServiceProvider : public QObject
{
Q_OBJECT
public:
virtual QMediaService* requestService(const QByteArray &type, const QMediaServiceProviderHint &hint = QMediaServiceProviderHint()) = 0;
virtual void releaseService(QMediaService *service) = 0;
virtual QtMultimedia::SupportEstimate hasSupport(const QByteArray &serviceType,
const QString &mimeType,
const QStringList& codecs,
int flags = 0) const;
virtual QStringList supportedMimeTypes(const QByteArray &serviceType, int flags = 0) const;
virtual QList<QByteArray> devices(const QByteArray &serviceType) const;
virtual QString deviceDescription(const QByteArray &serviceType, const QByteArray &device);
static QMediaServiceProvider* defaultServiceProvider();
static void setDefaultServiceProvider(QMediaServiceProvider *provider);
};
/*!
Service with support for media playback
Required Controls: QMediaPlayerControl
Optional Controls: QMediaPlaylistControl, QAudioDeviceControl
Video Output Controls (used by QWideoWidget and QGraphicsVideoItem):
Required: QVideoOutputControl
Optional: QVideoWindowControl, QVideoRendererControl, QVideoWidgetControl
*/
#define Q_MEDIASERVICE_MEDIAPLAYER "com.nokia.qt.mediaplayer"
/*!
Service with support for background media playback
Required Controls: QMediaPlayerControl, QMediaBackgroundPlaybackControl
Optional Controls: QMediaPlaylistControl, QAudioDeviceControl
*/
#define Q_MEDIASERVICE_BACKGROUNDMEDIAPLAYER "com.nokia.qt.backgroundmediaplayer"
/*!
Service with support for recording from audio sources
Required Controls: QAudioDeviceControl
Recording Controls (QMediaRecorder):
Required: QMediaRecorderControl
Recommended: QAudioEncoderControl
Optional: QMediaContainerControl
*/
#define Q_MEDIASERVICE_AUDIOSOURCE "com.nokia.qt.audiosource"
/*!
Service with support for camera use.
Required Controls: QCameraControl
Optional Controls: QCameraExposureControl, QCameraFocusControl, QCameraImageProcessingControl
Still Capture Controls: QCameraImageCaptureControl
Video Capture Controls (QMediaRecorder):
Required: QMediaRecorderControl
Recommended: QAudioEncoderControl, QVideoEncoderControl, QMediaContainerControl
Viewfinder Video Output Controls (used by QCameraViewfinder and QGraphicsVideoItem):
Required: QVideoOutputControl
Optional: QVideoWindowControl, QVideoRendererControl, QVideoWidgetControl
*/
#define Q_MEDIASERVICE_CAMERA "com.nokia.qt.camera"
/*!
Service with support for radio tuning.
Required Controls: QRadioTunerControl
Recording Controls (Optional, used by QMediaRecorder):
Required: QMediaRecorderControl
Recommended: QAudioEncoderControl
Optional: QMediaContainerControl
*/
#define Q_MEDIASERVICE_RADIO "com.nokia.qt.radio"
QT_END_NAMESPACE
QT_END_HEADER
#endif // QMEDIASERVICEPROVIDER_H

View File

@@ -0,0 +1,86 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/
**
** This file is part of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** GNU Lesser General Public License Usage
** This file may be used under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation and
** appearing in the file LICENSE.LGPL included in the packaging of this
** file. Please review the following information to ensure the GNU Lesser
** General Public License version 2.1 requirements will be met:
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU General
** Public License version 3.0 as published by the Free Software Foundation
** and appearing in the file LICENSE.GPL included in the packaging of this
** file. Please review the following information to ensure the GNU General
** Public License version 3.0 requirements will be met:
** http://www.gnu.org/copyleft/gpl.html.
**
** Other Usage
** Alternatively, this file may be used in accordance with the terms and
** conditions contained in a signed written agreement between you and Nokia.
**
**
**
**
**
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef QMEDIASERVICEPROVIDER_H
#define QMEDIASERVICEPROVIDER_H
#include <QtCore/qobject.h>
#include <QtCore/qshareddata.h>
#include <qtmultimediadefs.h>
#include "qtmedianamespace.h"
#include "qmediaserviceproviderplugin.h"
QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
QT_MODULE(Multimedia)
class QMediaService;
class Q_MULTIMEDIA_EXPORT QMediaServiceProvider : public QObject
{
Q_OBJECT
public:
virtual QMediaService* requestService(const QByteArray &type, const QMediaServiceProviderHint &hint = QMediaServiceProviderHint()) = 0;
virtual void releaseService(QMediaService *service) = 0;
virtual QtMultimedia::SupportEstimate hasSupport(const QByteArray &serviceType,
const QString &mimeType,
const QStringList& codecs,
int flags = 0) const;
virtual QStringList supportedMimeTypes(const QByteArray &serviceType, int flags = 0) const;
virtual QList<QByteArray> devices(const QByteArray &serviceType) const;
virtual QString deviceDescription(const QByteArray &serviceType, const QByteArray &device);
static QMediaServiceProvider* defaultServiceProvider();
static void setDefaultServiceProvider(QMediaServiceProvider *provider);
};
QT_END_NAMESPACE
QT_END_HEADER
#endif // QMEDIASERVICEPROVIDER_H

View File

@@ -45,8 +45,8 @@
#include <QtCore/qstringlist.h>
#include <QtCore/qplugin.h>
#include <QtCore/qfactoryinterface.h>
#include <qtmedianamespace.h>
#include <qtmultimediadefs.h>
#include "qmediaserviceprovider.h"
#ifdef Q_MOC_RUN
# pragma Q_MOC_EXPAND_MACROS
@@ -58,9 +58,55 @@ QT_BEGIN_NAMESPACE
QT_MODULE(Multimedia)
class QMediaService;
class QMediaServiceProviderHintPrivate;
class Q_MULTIMEDIA_EXPORT QMediaServiceProviderHint
{
public:
enum Type { Null, ContentType, Device, SupportedFeatures };
enum Feature {
LowLatencyPlayback = 0x01,
RecordingSupport = 0x02,
StreamPlayback = 0x04,
VideoSurface = 0x08,
BackgroundPlayback = 0x10,
};
Q_DECLARE_FLAGS(Features, Feature)
QMediaServiceProviderHint();
QMediaServiceProviderHint(const QString &mimeType, const QStringList& codecs);
QMediaServiceProviderHint(const QByteArray &device);
QMediaServiceProviderHint(Features features);
QMediaServiceProviderHint(const QMediaServiceProviderHint &other);
~QMediaServiceProviderHint();
QMediaServiceProviderHint& operator=(const QMediaServiceProviderHint &other);
bool operator == (const QMediaServiceProviderHint &other) const;
bool operator != (const QMediaServiceProviderHint &other) const;
bool isNull() const;
Type type() const;
QString mimeType() const;
QStringList codecs() const;
QByteArray device() const;
Features features() const;
//to be extended, if necessary
private:
QSharedDataPointer<QMediaServiceProviderHintPrivate> d;
};
Q_DECLARE_OPERATORS_FOR_FLAGS(QMediaServiceProviderHint::Features)
struct Q_MULTIMEDIA_EXPORT QMediaServiceProviderFactoryInterface : public QFactoryInterface
{
virtual QStringList keys() const = 0;
@@ -104,6 +150,7 @@ struct Q_MULTIMEDIA_EXPORT QMediaServiceFeaturesInterface
virtual QMediaServiceProviderHint::Features supportedFeatures(const QByteArray &service) const = 0;
};
#define QMediaServiceFeaturesInterface_iid \
"com.nokia.Qt.QMediaServiceFeaturesInterface/1.0"
Q_DECLARE_INTERFACE(QMediaServiceFeaturesInterface, QMediaServiceFeaturesInterface_iid)
@@ -120,6 +167,58 @@ public:
virtual void release(QMediaService *service) = 0;
};
/*!
Service with support for media playback
Required Controls: QMediaPlayerControl
Optional Controls: QMediaPlaylistControl, QAudioDeviceControl
Video Output Controls (used by QWideoWidget and QGraphicsVideoItem):
Required: QVideoOutputControl
Optional: QVideoWindowControl, QVideoRendererControl, QVideoWidgetControl
*/
#define Q_MEDIASERVICE_MEDIAPLAYER "com.nokia.qt.mediaplayer"
/*!
Service with support for background media playback
Required Controls: QMediaPlayerControl, QMediaBackgroundPlaybackControl
Optional Controls: QMediaPlaylistControl, QAudioDeviceControl
*/
#define Q_MEDIASERVICE_BACKGROUNDMEDIAPLAYER "com.nokia.qt.backgroundmediaplayer"
/*!
Service with support for recording from audio sources
Required Controls: QAudioDeviceControl
Recording Controls (QMediaRecorder):
Required: QMediaRecorderControl
Recommended: QAudioEncoderControl
Optional: QMediaContainerControl
*/
#define Q_MEDIASERVICE_AUDIOSOURCE "com.nokia.qt.audiosource"
/*!
Service with support for camera use.
Required Controls: QCameraControl
Optional Controls: QCameraExposureControl, QCameraFocusControl, QCameraImageProcessingControl
Still Capture Controls: QCameraImageCaptureControl
Video Capture Controls (QMediaRecorder):
Required: QMediaRecorderControl
Recommended: QAudioEncoderControl, QVideoEncoderControl, QMediaContainerControl
Viewfinder Video Output Controls (used by QCameraViewfinder and QGraphicsVideoItem):
Required: QVideoOutputControl
Optional: QVideoWindowControl, QVideoRendererControl, QVideoWidgetControl
*/
#define Q_MEDIASERVICE_CAMERA "com.nokia.qt.camera"
/*!
Service with support for radio tuning.
Required Controls: QRadioTunerControl
Recording Controls (Optional, used by QMediaRecorder):
Required: QMediaRecorderControl
Recommended: QAudioEncoderControl
Optional: QMediaContainerControl
*/
#define Q_MEDIASERVICE_RADIO "com.nokia.qt.radio"
QT_END_NAMESPACE
QT_END_HEADER

View File

@@ -43,7 +43,7 @@
#include "qmediaservice.h"
#include "qmediaobject_p.h"
#include "qradiodatacontrol.h"
#include "qmediaserviceprovider.h"
#include "qmediaserviceprovider_p.h"
#include <QPair>

View File

@@ -43,7 +43,7 @@
#include "qmediaservice.h"
#include "qmediaobject_p.h"
#include "qradiotunercontrol.h"
#include "qmediaserviceprovider.h"
#include "qmediaserviceprovider_p.h"
#include <QPair>

View File

@@ -44,7 +44,7 @@
#include "qmediaobject_p.h"
#include "qmediarecorder_p.h"
#include <qmediaservice.h>
#include <qmediaserviceprovider.h>
#include <qmediaserviceprovider_p.h>
#include <QtCore/qdebug.h>
#include <QtCore/qurl.h>

View File

@@ -45,7 +45,7 @@
#include <qmediarecordercontrol.h>
#include "qmediaobject_p.h"
#include <qmediaservice.h>
#include <qmediaserviceprovider.h>
#include <qmediaserviceprovider_p.h>
#include <qmetadatawritercontrol.h>
#include <qaudioencodercontrol.h>
#include <qvideoencodercontrol.h>

View File

@@ -44,7 +44,7 @@
#include "audiocaptureserviceplugin.h"
#include "audiocaptureservice.h"
#include "qmediaserviceprovider.h"
#include "qmediaserviceproviderplugin.h"
QStringList AudioCaptureServicePlugin::keys() const

View File

@@ -55,7 +55,7 @@
#include "directshowplayerservice.h"
#endif
#include <qmediaserviceprovider.h>
#include <qmediaserviceproviderplugin.h>
#ifdef QMEDIA_DIRECTSHOW_CAMERA

View File

@@ -62,7 +62,7 @@
#include "qgstreamervideowidget.h"
#endif
#include <qmediaserviceprovider.h>
#include <qmediaserviceproviderplugin.h>
QT_BEGIN_NAMESPACE

View File

@@ -60,7 +60,7 @@
#include "camerabinservice.h"
#endif
#include <qmediaserviceprovider.h>
#include <qmediaserviceproviderplugin.h>
#include <linux/types.h>
#include <sys/time.h>

View File

@@ -49,7 +49,7 @@
#include "qt7serviceplugin.h"
#include "qt7playerservice.h"
#include <qmediaserviceprovider.h>
#include <qmediaserviceproviderplugin.h>
QT_BEGIN_NAMESPACE

View File

@@ -60,7 +60,7 @@
#include <qcamera.h>
#include <qcameraimagecapture.h>
#include <qvideorenderercontrol.h>
#include <qmediaserviceprovider.h>
#include <private/qmediaserviceprovider_p.h>
QT_USE_NAMESPACE

View File

@@ -48,7 +48,7 @@
#include <qmediaplayercontrol.h>
#include <qmediaservice.h>
#include <qmediaserviceprovider.h>
#include <private/qmediaserviceprovider_p.h>
#include <qmetadatareadercontrol.h>
#include <QtWidgets/qapplication.h>

View File

@@ -45,7 +45,7 @@
#include <QDebug>
#include <QStringList>
#include <qmediaserviceprovider.h>
#include <private/qmediaserviceprovider_p.h>
#include <qmediaserviceproviderplugin.h>
#include <private/qmediapluginloader_p.h>
#include <qmediaobject.h>

View File

@@ -42,7 +42,7 @@
#ifndef MOCKMEDIASERVICEPROVIDER_H
#define MOCKMEDIASERVICEPROVIDER_H
#include "qmediaserviceprovider.h"
#include "private/qmediaserviceprovider_p.h"
#include "qmediaservice.h"
// Simple provider that lets you set the service