summaryrefslogtreecommitdiffstats
path: root/src/multimedia/qmediaserviceprovider.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/qmediaserviceprovider.cpp')
-rw-r--r--src/multimedia/qmediaserviceprovider.cpp1004
1 files changed, 0 insertions, 1004 deletions
diff --git a/src/multimedia/qmediaserviceprovider.cpp b/src/multimedia/qmediaserviceprovider.cpp
deleted file mode 100644
index 93b560d8c..000000000
--- a/src/multimedia/qmediaserviceprovider.cpp
+++ /dev/null
@@ -1,1004 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** 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 https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://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 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtCore/qdebug.h>
-#include <QtCore/qmap.h>
-
-#include "qmediaservice.h"
-#include "qmediaserviceprovider_p.h"
-#include "qmediaserviceproviderplugin.h"
-#include "qmediapluginloader_p.h"
-#include "qmediaplayer.h"
-
-QT_BEGIN_NAMESPACE
-
-QMediaServiceProviderFactoryInterface::~QMediaServiceProviderFactoryInterface()
-{
-}
-
-class QMediaServiceProviderHintPrivate : public QSharedData
-{
-public:
- QMediaServiceProviderHintPrivate(QMediaServiceProviderHint::Type type)
- : type(type)
- {
- }
-
- QMediaServiceProviderHintPrivate(const QMediaServiceProviderHintPrivate &other)
- :QSharedData(other),
- type(other.type),
- device(other.device),
- cameraPosition(other.cameraPosition),
- mimeType(other.mimeType),
- codecs(other.codecs),
- features(other.features)
- {
- }
-
- ~QMediaServiceProviderHintPrivate()
- {
- }
-
- QMediaServiceProviderHint::Type type;
- QByteArray device;
- QCamera::Position cameraPosition = QCamera::UnspecifiedPosition;
- QString mimeType;
- QStringList codecs;
- QMediaServiceProviderHint::Features features;
-};
-
-/*!
- \class QMediaServiceProviderHint
- \obsolete
-
- \brief The QMediaServiceProviderHint class describes what is required of a QMediaService.
-
- \inmodule QtMultimedia
-
- \ingroup multimedia
- \ingroup multimedia_control
- \ingroup multimedia_core
-
- \internal
-
- The QMediaServiceProvider class uses hints to select an appropriate media service.
-*/
-
-/*!
- \enum QMediaServiceProviderHint::Feature
-
- Enumerates features a media service may provide.
-
- \value LowLatencyPlayback
- The service is expected to play simple audio formats,
- but playback should start without significant delay.
- Such playback service can be used for beeps, ringtones, etc.
-
- \value RecordingSupport
- The service provides audio or video recording functions.
-
- \value StreamPlayback
- The service is capable of playing QIODevice based streams.
-
- \value VideoSurface
- The service is capable of renderering to a QAbstractVideoSurface
- output.
-*/
-
-/*!
- \enum QMediaServiceProviderHint::Type
-
- Enumerates the possible types of media service provider hint.
-
- \value Null En empty hint, use the default service.
- \value ContentType Select media service most suitable for certain content type.
- \value Device Select media service which supports certain device.
- \value SupportedFeatures Select media service supporting the set of optional features.
- \value CameraPosition Select media service having a camera at a specified position.
-*/
-
-
-/*!
- Constructs an empty media service provider hint.
-*/
-QMediaServiceProviderHint::QMediaServiceProviderHint()
- :d(new QMediaServiceProviderHintPrivate(Null))
-{
-}
-
-/*!
- Constructs a ContentType media service provider hint.
-
- This type of hint describes a service that is able to play content of a specific MIME \a type
- encoded with one or more of the listed \a codecs.
-*/
-QMediaServiceProviderHint::QMediaServiceProviderHint(const QString &type, const QStringList& codecs)
- :d(new QMediaServiceProviderHintPrivate(ContentType))
-{
- d->mimeType = type;
- d->codecs = codecs;
-}
-
-/*!
- Constructs a Device media service provider hint.
-
- This type of hint describes a media service that utilizes a specific \a device.
-*/
-QMediaServiceProviderHint::QMediaServiceProviderHint(const QByteArray &device)
- :d(new QMediaServiceProviderHintPrivate(Device))
-{
- d->device = device;
-}
-
-/*!
- \since 5.3
-
- Constructs a CameraPosition media service provider hint.
-
- This type of hint describes a media service that has a camera in the specific \a position.
-*/
-QMediaServiceProviderHint::QMediaServiceProviderHint(QCamera::Position position)
- :d(new QMediaServiceProviderHintPrivate(CameraPosition))
-{
- d->cameraPosition = position;
-}
-
-/*!
- Constructs a SupportedFeatures media service provider hint.
-
- This type of hint describes a service which supports a specific set of \a features.
-*/
-QMediaServiceProviderHint::QMediaServiceProviderHint(QMediaServiceProviderHint::Features features)
- :d(new QMediaServiceProviderHintPrivate(SupportedFeatures))
-{
- d->features = features;
-}
-
-/*!
- Constructs a copy of the media service provider hint \a other.
-*/
-QMediaServiceProviderHint::QMediaServiceProviderHint(const QMediaServiceProviderHint &other)
- :d(other.d)
-{
-}
-
-/*!
- Destroys a media service provider hint.
-*/
-QMediaServiceProviderHint::~QMediaServiceProviderHint()
-{
-}
-
-/*!
- Assigns the value \a other to a media service provider hint.
-*/
-QMediaServiceProviderHint& QMediaServiceProviderHint::operator=(const QMediaServiceProviderHint &other)
-{
- d = other.d;
- return *this;
-}
-
-/*!
- Identifies if \a other is of equal value to a media service provider hint.
-
- Returns true if the hints are equal, and false if they are not.
-*/
-bool QMediaServiceProviderHint::operator == (const QMediaServiceProviderHint &other) const
-{
- return (d == other.d) ||
- (d->type == other.d->type &&
- d->device == other.d->device &&
- d->cameraPosition == other.d->cameraPosition &&
- d->mimeType == other.d->mimeType &&
- d->codecs == other.d->codecs &&
- d->features == other.d->features);
-}
-
-/*!
- Identifies if \a other is not of equal value to a media service provider hint.
-
- Returns true if the hints are not equal, and false if they are.
-*/
-bool QMediaServiceProviderHint::operator != (const QMediaServiceProviderHint &other) const
-{
- return !(*this == other);
-}
-
-/*!
- Returns true if a media service provider is null.
-*/
-bool QMediaServiceProviderHint::isNull() const
-{
- return d->type == Null;
-}
-
-/*!
- Returns the type of a media service provider hint.
-*/
-QMediaServiceProviderHint::Type QMediaServiceProviderHint::type() const
-{
- return d->type;
-}
-
-/*!
- Returns the mime type of the media a service is expected to be able play.
-*/
-QString QMediaServiceProviderHint::mimeType() const
-{
- return d->mimeType;
-}
-
-/*!
- Returns a list of codes a media service is expected to be able to decode.
-*/
-QStringList QMediaServiceProviderHint::codecs() const
-{
- return d->codecs;
-}
-
-/*!
- Returns the name of a device a media service is expected to utilize.
-*/
-QByteArray QMediaServiceProviderHint::device() const
-{
- return d->device;
-}
-
-/*!
- \since 5.3
-
- Returns the camera's position a media service is expected to utilize.
-*/
-QCamera::Position QMediaServiceProviderHint::cameraPosition() const
-{
- return d->cameraPosition;
-}
-
-
-/*!
- Returns a set of features a media service is expected to provide.
-*/
-QMediaServiceProviderHint::Features QMediaServiceProviderHint::features() const
-{
- return d->features;
-}
-
-
-Q_GLOBAL_STATIC_WITH_ARGS(QMediaPluginLoader, loader,
- (QMediaServiceProviderFactoryInterface_iid, QLatin1String("mediaservice"), Qt::CaseInsensitive))
-
-
-class QPluginServiceProvider : public QMediaServiceProvider
-{
- struct MediaServiceData {
- QByteArray type;
- QMediaServiceProviderPlugin *plugin;
-
- MediaServiceData() : plugin(nullptr) { }
- };
-
- QMap<const QMediaService*, MediaServiceData> mediaServiceData;
-
-public:
- QMediaService* requestService(const QByteArray &type, const QMediaServiceProviderHint &hint) override
- {
- QString key(QLatin1String(type.constData()));
-
- QList<QMediaServiceProviderPlugin *>plugins;
- const auto instances = loader()->instances(key);
- for (QObject *obj : instances) {
- QMediaServiceProviderPlugin *plugin =
- qobject_cast<QMediaServiceProviderPlugin*>(obj);
- if (plugin)
- plugins << plugin;
- }
-
- if (!plugins.isEmpty()) {
- QMediaServiceProviderPlugin *plugin = nullptr;
-
- switch (hint.type()) {
- case QMediaServiceProviderHint::Null:
- plugin = plugins[0];
- //special case for media player, if low latency was not asked,
- //prefer services not offering it, since they are likely to support
- //more formats
- if (type == QByteArray(Q_MEDIASERVICE_MEDIAPLAYER)) {
- for (QMediaServiceProviderPlugin *currentPlugin : qAsConst(plugins)) {
- QMediaServiceFeaturesInterface *iface =
- qobject_cast<QMediaServiceFeaturesInterface*>(currentPlugin);
-
- if (!iface || !(iface->supportedFeatures(type) &
- QMediaServiceProviderHint::LowLatencyPlayback)) {
- plugin = currentPlugin;
- break;
- }
-
- }
- }
- break;
- case QMediaServiceProviderHint::SupportedFeatures:
- plugin = plugins[0];
- for (QMediaServiceProviderPlugin *currentPlugin : qAsConst(plugins)) {
- QMediaServiceFeaturesInterface *iface =
- qobject_cast<QMediaServiceFeaturesInterface*>(currentPlugin);
-
- if (iface) {
- if ((iface->supportedFeatures(type) & hint.features()) == hint.features()) {
- plugin = currentPlugin;
- break;
- }
- }
- }
- break;
- case QMediaServiceProviderHint::Device: {
- plugin = plugins[0];
- for (QMediaServiceProviderPlugin *currentPlugin : qAsConst(plugins)) {
- QMediaServiceSupportedDevicesInterface *iface =
- qobject_cast<QMediaServiceSupportedDevicesInterface*>(currentPlugin);
-
- if (iface && iface->devices(type).contains(hint.device())) {
- plugin = currentPlugin;
- break;
- }
- }
- }
- break;
- case QMediaServiceProviderHint::CameraPosition: {
- plugin = plugins[0];
- if (type == QByteArray(Q_MEDIASERVICE_CAMERA)
- && hint.cameraPosition() != QCamera::UnspecifiedPosition) {
- for (QMediaServiceProviderPlugin *currentPlugin : qAsConst(plugins)) {
- const QMediaServiceSupportedDevicesInterface *deviceIface =
- qobject_cast<QMediaServiceSupportedDevicesInterface*>(currentPlugin);
- const QMediaServiceCameraInfoInterface *cameraIface =
- qobject_cast<QMediaServiceCameraInfoInterface*>(currentPlugin);
-
- if (deviceIface && cameraIface) {
- const QList<QByteArray> cameras = deviceIface->devices(type);
- for (const QByteArray &camera : cameras) {
- if (cameraIface->cameraPosition(camera) == hint.cameraPosition()) {
- plugin = currentPlugin;
- break;
- }
- }
- }
- }
- }
- }
- break;
- case QMediaServiceProviderHint::ContentType: {
- QMultimedia::SupportEstimate estimate = QMultimedia::NotSupported;
- for (QMediaServiceProviderPlugin *currentPlugin : qAsConst(plugins)) {
- QMultimedia::SupportEstimate currentEstimate = QMultimedia::MaybeSupported;
- QMediaServiceSupportedFormatsInterface *iface =
- qobject_cast<QMediaServiceSupportedFormatsInterface*>(currentPlugin);
-
- if (iface)
- currentEstimate = iface->hasSupport(hint.mimeType(), hint.codecs());
-
- if (currentEstimate > estimate) {
- estimate = currentEstimate;
- plugin = currentPlugin;
-
- if (currentEstimate == QMultimedia::PreferredService)
- break;
- }
- }
- }
- break;
- }
-
- if (plugin != nullptr) {
- QMediaService *service = plugin->create(key);
- if (service != nullptr) {
- MediaServiceData d;
- d.type = type;
- d.plugin = plugin;
- mediaServiceData.insert(service, d);
- }
-
- return service;
- }
- }
-
- qWarning() << "defaultServiceProvider::requestService(): no service found for -" << key;
- return nullptr;
- }
-
- void releaseService(QMediaService *service) override
- {
- if (service != nullptr) {
- MediaServiceData d = mediaServiceData.take(service);
-
- if (d.plugin != nullptr)
- d.plugin->release(service);
- }
- }
-
- QMediaServiceProviderHint::Features supportedFeatures(const QMediaService *service) const override
- {
- if (service) {
- MediaServiceData d = mediaServiceData.value(service);
-
- if (d.plugin) {
- QMediaServiceFeaturesInterface *iface =
- qobject_cast<QMediaServiceFeaturesInterface*>(d.plugin);
-
- if (iface)
- return iface->supportedFeatures(d.type);
- }
- }
-
- return QMediaServiceProviderHint::Features();
- }
-
- QMultimedia::SupportEstimate hasSupport(const QByteArray &serviceType,
- const QString &mimeType,
- const QStringList& codecs,
- int flags) const override
- {
- const QList<QObject*> instances = loader()->instances(QLatin1String(serviceType));
-
- if (instances.isEmpty())
- return QMultimedia::NotSupported;
-
- bool allServicesProvideInterface = true;
- QMultimedia::SupportEstimate supportEstimate = QMultimedia::NotSupported;
-
- for (QObject *obj : instances) {
- QMediaServiceSupportedFormatsInterface *iface =
- qobject_cast<QMediaServiceSupportedFormatsInterface*>(obj);
-
-
- if (flags) {
- QMediaServiceFeaturesInterface *iface =
- qobject_cast<QMediaServiceFeaturesInterface*>(obj);
-
- if (iface) {
- QMediaServiceProviderHint::Features features = iface->supportedFeatures(serviceType);
-
- //if low latency playback was asked, skip services known
- //not to provide low latency playback
- if ((flags & QMediaPlayer::LowLatency) &&
- !(features & QMediaServiceProviderHint::LowLatencyPlayback))
- continue;
-
- //the same for QIODevice based streams support
- if ((flags & QMediaPlayer::StreamPlayback) &&
- !(features & QMediaServiceProviderHint::StreamPlayback))
- continue;
- }
- }
-
- if (iface)
- supportEstimate = qMax(supportEstimate, iface->hasSupport(mimeType, codecs));
- else
- allServicesProvideInterface = false;
- }
-
- //don't return PreferredService
- supportEstimate = qMin(supportEstimate, QMultimedia::ProbablySupported);
-
- //Return NotSupported only if no services are available of serviceType
- //or all the services returned NotSupported, otherwise return at least MaybeSupported
- if (!allServicesProvideInterface)
- supportEstimate = qMax(QMultimedia::MaybeSupported, supportEstimate);
-
- return supportEstimate;
- }
-
- QStringList supportedMimeTypes(const QByteArray &serviceType, int flags) const override
- {
- const QList<QObject*> instances = loader()->instances(QLatin1String(serviceType));
-
- QStringList supportedTypes;
-
- for (QObject *obj : instances) {
- QMediaServiceSupportedFormatsInterface *iface =
- qobject_cast<QMediaServiceSupportedFormatsInterface*>(obj);
-
-
- if (flags) {
- QMediaServiceFeaturesInterface *iface =
- qobject_cast<QMediaServiceFeaturesInterface*>(obj);
-
- if (iface) {
- QMediaServiceProviderHint::Features features = iface->supportedFeatures(serviceType);
-
- // If low latency playback was asked for, skip MIME types from services known
- // not to provide low latency playback
- if ((flags & QMediaPlayer::LowLatency) &&
- !(features & QMediaServiceProviderHint::LowLatencyPlayback))
- continue;
-
- //the same for QIODevice based streams support
- if ((flags & QMediaPlayer::StreamPlayback) &&
- !(features & QMediaServiceProviderHint::StreamPlayback))
- continue;
-
- //the same for QAbstractVideoSurface support
- if ((flags & QMediaPlayer::VideoSurface) &&
- !(features & QMediaServiceProviderHint::VideoSurface))
- continue;
- }
- }
-
- if (iface) {
- supportedTypes << iface->supportedMimeTypes();
- }
- }
-
- // Multiple services may support the same MIME type
- supportedTypes.removeDuplicates();
-
- return supportedTypes;
- }
-
- QByteArray defaultDevice(const QByteArray &serviceType) const override
- {
- const auto instances = loader()->instances(QLatin1String(serviceType));
- for (QObject *obj : instances) {
- const QMediaServiceDefaultDeviceInterface *iface =
- qobject_cast<QMediaServiceDefaultDeviceInterface*>(obj);
-
- if (iface) {
- QByteArray name = iface->defaultDevice(serviceType);
- if (!name.isEmpty())
- return name;
- }
- }
-
- // if QMediaServiceDefaultDeviceInterface is not implemented, return the
- // first available device.
- QList<QByteArray> devs = devices(serviceType);
- if (!devs.isEmpty())
- return devs.first();
-
- return QByteArray();
- }
-
- QList<QByteArray> devices(const QByteArray &serviceType) const override
- {
- QList<QByteArray> res;
-
- const auto instances = loader()->instances(QLatin1String(serviceType));
- for (QObject *obj : instances) {
- QMediaServiceSupportedDevicesInterface *iface =
- qobject_cast<QMediaServiceSupportedDevicesInterface*>(obj);
-
- if (iface) {
- res.append(iface->devices(serviceType));
- }
- }
-
- return res;
- }
-
- QString deviceDescription(const QByteArray &serviceType, const QByteArray &device) override
- {
- const auto instances = loader()->instances(QLatin1String(serviceType));
- for (QObject *obj : instances) {
- QMediaServiceSupportedDevicesInterface *iface =
- qobject_cast<QMediaServiceSupportedDevicesInterface*>(obj);
-
- if (iface) {
- if (iface->devices(serviceType).contains(device))
- return iface->deviceDescription(serviceType, device);
- }
- }
-
- return QString();
- }
-
- QCamera::Position cameraPosition(const QByteArray &device) const override
- {
- const QByteArray serviceType(Q_MEDIASERVICE_CAMERA);
- const auto instances = loader()->instances(QString::fromLatin1(serviceType));
- for (QObject *obj : instances) {
- const QMediaServiceSupportedDevicesInterface *deviceIface =
- qobject_cast<QMediaServiceSupportedDevicesInterface*>(obj);
- const QMediaServiceCameraInfoInterface *cameraIface =
- qobject_cast<QMediaServiceCameraInfoInterface*>(obj);
-
- if (cameraIface) {
- if (deviceIface && !deviceIface->devices(serviceType).contains(device))
- continue;
- return cameraIface->cameraPosition(device);
- }
- }
-
- return QCamera::UnspecifiedPosition;
- }
-
- int cameraOrientation(const QByteArray &device) const override
- {
- const QByteArray serviceType(Q_MEDIASERVICE_CAMERA);
- const auto instances = loader()->instances(QString::fromLatin1(serviceType));
- for (QObject *obj : instances) {
- const QMediaServiceSupportedDevicesInterface *deviceIface =
- qobject_cast<QMediaServiceSupportedDevicesInterface*>(obj);
- const QMediaServiceCameraInfoInterface *cameraIface =
- qobject_cast<QMediaServiceCameraInfoInterface*>(obj);
-
- if (cameraIface) {
- if (deviceIface && !deviceIface->devices(serviceType).contains(device))
- continue;
- return cameraIface->cameraOrientation(device);
- }
- }
-
- return 0;
- }
-};
-
-Q_GLOBAL_STATIC(QPluginServiceProvider, pluginProvider);
-
-/*!
- \class QMediaServiceProvider
- \obsolete
- \ingroup multimedia
- \ingroup multimedia_control
- \ingroup multimedia_core
-
- \internal
-
- \brief The QMediaServiceProvider class provides an abstract allocator for media services.
-*/
-
-/*!
- \internal
- \fn QMediaServiceProvider::requestService(const QByteArray &type, const QMediaServiceProviderHint &hint)
-
- Requests an instance of a \a type service which best matches the given \a
- hint.
-
- Returns a pointer to the requested service, or a null pointer if there is
- no suitable service.
-
- The returned service must be released with releaseService when it is
- finished with.
-*/
-
-/*!
- \internal
- \fn QMediaServiceProvider::releaseService(QMediaService *service)
-
- Releases a media \a service requested with requestService().
-*/
-
-/*!
- \internal
- \fn QMediaServiceProvider::supportedFeatures(const QMediaService *service) const
-
- Returns the features supported by a given \a service.
-*/
-QMediaServiceProviderHint::Features QMediaServiceProvider::supportedFeatures(const QMediaService *service) const
-{
- Q_UNUSED(service);
-
- return {};
-}
-
-/*!
- \internal
- Returns how confident a media service provider is that is can provide a \a
- serviceType service that is able to play media of a specific \a mimeType
- that is encoded using the listed \a codecs while adhering to constraints
- identified in \a flags.
-*/
-QMultimedia::SupportEstimate QMediaServiceProvider::hasSupport(const QByteArray &serviceType,
- const QString &mimeType,
- const QStringList& codecs,
- int flags) const
-{
- Q_UNUSED(serviceType);
- Q_UNUSED(mimeType);
- Q_UNUSED(codecs);
- Q_UNUSED(flags);
-
- return QMultimedia::MaybeSupported;
-}
-
-/*!
- \internal
- \fn QStringList QMediaServiceProvider::supportedMimeTypes(const QByteArray &serviceType, int flags) const
-
- Returns a list of MIME types supported by the service provider for the
- specified \a serviceType.
-
- The resultant list is restricted to MIME types which can be supported given
- the constraints in \a flags.
-*/
-QStringList QMediaServiceProvider::supportedMimeTypes(const QByteArray &serviceType, int flags) const
-{
- Q_UNUSED(serviceType);
- Q_UNUSED(flags);
-
- return QStringList();
-}
-
-/*!
- \internal
- \since 5.3
-
- Returns the default device for a \a service type.
-*/
-QByteArray QMediaServiceProvider::defaultDevice(const QByteArray &serviceType) const
-{
- Q_UNUSED(serviceType);
- return QByteArray();
-}
-
-/*!
- \internal
- Returns the list of devices related to \a service type.
-*/
-QList<QByteArray> QMediaServiceProvider::devices(const QByteArray &service) const
-{
- Q_UNUSED(service);
- return QList<QByteArray>();
-}
-
-/*!
- \internal
- Returns the description of \a device related to \a serviceType, suitable for use by
- an application for display.
-*/
-QString QMediaServiceProvider::deviceDescription(const QByteArray &serviceType, const QByteArray &device)
-{
- Q_UNUSED(serviceType);
- Q_UNUSED(device);
- return QString();
-}
-
-/*!
- \internal
- \since 5.3
-
- Returns the physical position of a camera \a device on the system hardware.
-*/
-QCamera::Position QMediaServiceProvider::cameraPosition(const QByteArray &device) const
-{
- Q_UNUSED(device);
- return QCamera::UnspecifiedPosition;
-}
-
-/*!
- \internal
- \since 5.3
-
- Returns the physical orientation of the camera \a device. The value is the angle by which the
- camera image should be rotated anti-clockwise (in steps of 90 degrees) so it shows correctly on
- the display in its natural orientation.
-*/
-int QMediaServiceProvider::cameraOrientation(const QByteArray &device) const
-{
- Q_UNUSED(device);
- return 0;
-}
-
-static QMediaServiceProvider *qt_defaultMediaServiceProvider = nullptr;
-
-/*!
- Sets a media service \a provider as the default.
- It's useful for unit tests to provide mock service.
-
- \internal
-*/
-void QMediaServiceProvider::setDefaultServiceProvider(QMediaServiceProvider *provider)
-{
- qt_defaultMediaServiceProvider = provider;
-}
-
-
-/*!
- \internal
- Returns a default provider of media services.
-*/
-QMediaServiceProvider *QMediaServiceProvider::defaultServiceProvider()
-{
- return qt_defaultMediaServiceProvider != nullptr
- ? qt_defaultMediaServiceProvider
- : static_cast<QMediaServiceProvider *>(pluginProvider());
-}
-
-/*!
- \class QMediaServiceProviderPlugin
- \obsolete
- \inmodule QtMultimedia
- \brief The QMediaServiceProviderPlugin class interface provides an interface for QMediaService
- plug-ins.
-
- A media service provider plug-in may implement one or more of
- QMediaServiceSupportedFormatsInterface,
- QMediaServiceSupportedDevicesInterface, and QMediaServiceFeaturesInterface
- to identify the features it supports.
-*/
-
-/*!
- \fn QMediaServiceProviderPlugin::create(const QString &key)
-
- Constructs a new instance of the QMediaService identified by \a key.
-
- The QMediaService returned must be destroyed with release().
-*/
-
-/*!
- \fn QMediaServiceProviderPlugin::release(QMediaService *service)
-
- Destroys a media \a service constructed with create().
-*/
-
-
-/*!
- \class QMediaServiceSupportedFormatsInterface
- \obsolete
- \inmodule QtMultimedia
- \brief The QMediaServiceSupportedFormatsInterface class interface
- identifies if a media service plug-in supports a media format.
-
- A QMediaServiceProviderPlugin may implement this interface.
-*/
-
-/*!
- \fn QMediaServiceSupportedFormatsInterface::~QMediaServiceSupportedFormatsInterface()
-
- Destroys a media service supported formats interface.
-*/
-
-/*!
- \fn QMediaServiceSupportedFormatsInterface::hasSupport(const QString &mimeType, const QStringList& codecs) const
-
- Returns the level of support a media service plug-in has for a \a mimeType
- and set of \a codecs.
-*/
-
-/*!
- \fn QMediaServiceSupportedFormatsInterface::supportedMimeTypes() const
-
- Returns a list of MIME types supported by the media service plug-in.
-*/
-
-/*!
- \class QMediaServiceSupportedDevicesInterface
- \obsolete
- \inmodule QtMultimedia
- \brief The QMediaServiceSupportedDevicesInterface class interface
- identifies the devices supported by a media service plug-in.
-
- A QMediaServiceProviderPlugin may implement this interface.
-*/
-
-/*!
- \fn QMediaServiceSupportedDevicesInterface::~QMediaServiceSupportedDevicesInterface()
-
- Destroys a media service supported devices interface.
-*/
-
-/*!
- \fn QList<QByteArray> QMediaServiceSupportedDevicesInterface::devices(const QByteArray &service) const
-
- Returns a list of devices available for a \a service type.
-*/
-
-/*!
- \fn QString QMediaServiceSupportedDevicesInterface::deviceDescription(const QByteArray &service, const QByteArray &device)
-
- Returns the description of a \a device available for a \a service type.
-*/
-
-/*!
- \class QMediaServiceDefaultDeviceInterface
- \obsolete
- \inmodule QtMultimedia
- \brief The QMediaServiceDefaultDeviceInterface class interface
- identifies the default device used by a media service plug-in.
-
- A QMediaServiceProviderPlugin may implement this interface.
-
- \since 5.3
-*/
-
-/*!
- \fn QMediaServiceDefaultDeviceInterface::~QMediaServiceDefaultDeviceInterface()
-
- Destroys a media service default device interface.
-*/
-
-/*!
- \fn QByteArray QMediaServiceDefaultDeviceInterface::defaultDevice(const QByteArray &service) const
-
- Returns the default device for a \a service type.
-*/
-
-/*!
- \class QMediaServiceCameraInfoInterface
- \obsolete
- \inmodule QtMultimedia
- \since 5.3
- \brief The QMediaServiceCameraInfoInterface class interface
- provides camera-specific information about devices supported by a camera service plug-in.
-
- A QMediaServiceProviderPlugin may implement this interface, in that case it also needs to
- implement the QMediaServiceSupportedDevicesInterface.
-*/
-
-/*!
- \fn QMediaServiceCameraInfoInterface::~QMediaServiceCameraInfoInterface()
-
- Destroys a media service camera info interface.
-*/
-
-/*!
- \fn QMediaServiceCameraInfoInterface::cameraPosition(const QByteArray &device) const
-
- Returns the physical position of a camera \a device supported by a camera service plug-in.
-*/
-
-/*!
- \fn QMediaServiceCameraInfoInterface::cameraOrientation(const QByteArray &device) const
-
- Returns the physical orientation of a camera \a device supported by a camera service plug-in.
-*/
-
-/*!
- \class QMediaServiceFeaturesInterface
- \obsolete
- \inmodule QtMultimedia
- \brief The QMediaServiceFeaturesInterface class interface identifies
- features supported by a media service plug-in.
-
- A QMediaServiceProviderPlugin may implement this interface.
-*/
-
-/*!
- \fn QMediaServiceFeaturesInterface::~QMediaServiceFeaturesInterface()
-
- Destroys a media service features interface.
-*/
-/*!
- \fn QMediaServiceFeaturesInterface::supportedFeatures(const QByteArray &service) const
-
- Returns a set of features supported by a plug-in \a service.
-*/
-
-QT_END_NAMESPACE
-
-#include "moc_qmediaserviceprovider_p.cpp"
-#include "moc_qmediaserviceproviderplugin.cpp"