1/****************************************************************************
2**
3** Copyright (C) 2016 The Qt Company Ltd.
4** Contact: https://www.qt.io/licensing/
5**
6** This file is part of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:GPL-EXCEPT$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see https://www.qt.io/terms-conditions. For further
15** information use the contact form at https://www.qt.io/contact-us.
16**
17** GNU General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU
19** General Public License version 3 as published by the Free Software
20** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
21** included in the packaging of this file. Please review the following
22** information to ensure the GNU General Public License requirements will
23** be met: https://www.gnu.org/licenses/gpl-3.0.html.
24**
25** $QT_END_LICENSE$
26**
27****************************************************************************/
28
29#include <qmediaserviceproviderplugin.h>
30#include <qmediaservice.h>
31#include "../mockservice.h"
32
33class MockServicePlugin5 : public QMediaServiceProviderPlugin,
34 public QMediaServiceSupportedDevicesInterface,
35 public QMediaServiceDefaultDeviceInterface,
36 public QMediaServiceCameraInfoInterface
37{
38 Q_OBJECT
39 Q_INTERFACES(QMediaServiceSupportedDevicesInterface)
40 Q_INTERFACES(QMediaServiceDefaultDeviceInterface)
41 Q_INTERFACES(QMediaServiceCameraInfoInterface)
42 Q_PLUGIN_METADATA(IID "org.qt-project.qt.mediaserviceproviderfactory/5.0" FILE "mockserviceplugin5.json")
43public:
44 QStringList keys() const
45 {
46 return QStringList() << QLatin1String(Q_MEDIASERVICE_CAMERA);
47 }
48
49 QMediaService* create(QString const& key)
50 {
51 if (keys().contains(str: key))
52 return new MockMediaService("MockServicePlugin5");
53 else
54 return 0;
55 }
56
57 void release(QMediaService *service)
58 {
59 delete service;
60 }
61
62 QByteArray defaultDevice(const QByteArray &service) const
63 {
64 if (service == Q_MEDIASERVICE_CAMERA)
65 return "backcamera";
66
67 return QByteArray();
68 }
69
70 QList<QByteArray> devices(const QByteArray &service) const
71 {
72 QList<QByteArray> res;
73 if (service == Q_MEDIASERVICE_CAMERA)
74 res << "backcamera" << "somecamera";
75
76 return res;
77 }
78
79 QString deviceDescription(const QByteArray &service, const QByteArray &device)
80 {
81 if (devices(service).contains(t: device))
82 return QString(device)+" description";
83 else
84 return QString();
85 }
86
87 QCamera::Position cameraPosition(const QByteArray &device) const
88 {
89 if (device == "backcamera")
90 return QCamera::BackFace;
91
92 return QCamera::UnspecifiedPosition;
93 }
94
95 int cameraOrientation(const QByteArray &device) const
96 {
97 if (device == "backcamera")
98 return 90;
99
100 return 0;
101 }
102};
103
104#include "mockserviceplugin5.moc"
105
106

source code of qtmultimedia/tests/auto/unit/qmediaserviceprovider/mockserviceplugin5/mockserviceplugin5.cpp