diff options
Diffstat (limited to 'src/multimedia/qmediaserviceprovider.cpp')
-rw-r--r-- | src/multimedia/qmediaserviceprovider.cpp | 1004 |
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" |