summaryrefslogtreecommitdiffstats
path: root/src/multimedia/controls
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@theqtcompany.com>2014-12-12 12:00:06 +0100
committerYoann Lopes <yoann.lopes@theqtcompany.com>2015-01-13 13:34:41 +0100
commitfe21ee675e72f7cb3936db6aa01862cfd322ce50 (patch)
tree8d2caa1d13b79cff554a7fbb8b98051c0695d683 /src/multimedia/controls
parentc31d8cddd0a2e1f1ee622bc9ea07d038191ceea2 (diff)
New camera viewfinder settings API.
There already was a control interface for the viewfinder settings but no real public C++ API and a partial QML API. This patch adds a new C++ API and improves the QML API. Supported viewfinder settings are resolution, minimumFrameRate, maximumFrameRate and pixelFormat. The camera can be queried for the supported values for each of these settings. A new control interface was created to match the new API. Change-Id: I289fea038fe46277a5516c956a64280da09ed985 Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
Diffstat (limited to 'src/multimedia/controls')
-rw-r--r--src/multimedia/controls/qcameracontrol.cpp1
-rw-r--r--src/multimedia/controls/qcameracontrol.h3
-rw-r--r--src/multimedia/controls/qcameraviewfindersettingscontrol.cpp75
-rw-r--r--src/multimedia/controls/qcameraviewfindersettingscontrol.h23
4 files changed, 99 insertions, 3 deletions
diff --git a/src/multimedia/controls/qcameracontrol.cpp b/src/multimedia/controls/qcameracontrol.cpp
index dfbc07ba4..34433792e 100644
--- a/src/multimedia/controls/qcameracontrol.cpp
+++ b/src/multimedia/controls/qcameracontrol.cpp
@@ -190,6 +190,7 @@ QCameraControl::~QCameraControl()
\value VideoEncodingSettings
Video encoder settings are changed, including audio, video and container settings.
\value Viewfinder Viewfinder is changed.
+ \value ViewfinderSettings Viewfinder settings are changed.
*/
#include "moc_qcameracontrol.cpp"
diff --git a/src/multimedia/controls/qcameracontrol.h b/src/multimedia/controls/qcameracontrol.h
index 7a9066591..1a59152cc 100644
--- a/src/multimedia/controls/qcameracontrol.h
+++ b/src/multimedia/controls/qcameracontrol.h
@@ -53,7 +53,8 @@ public:
CaptureMode = 1,
ImageEncodingSettings = 2,
VideoEncodingSettings = 3,
- Viewfinder = 4
+ Viewfinder = 4,
+ ViewfinderSettings = 5
};
~QCameraControl();
diff --git a/src/multimedia/controls/qcameraviewfindersettingscontrol.cpp b/src/multimedia/controls/qcameraviewfindersettingscontrol.cpp
index 7a1b74182..22c925e69 100644
--- a/src/multimedia/controls/qcameraviewfindersettingscontrol.cpp
+++ b/src/multimedia/controls/qcameraviewfindersettingscontrol.cpp
@@ -50,13 +50,17 @@ QT_BEGIN_NAMESPACE
The interface name of QCameraViewfinderSettingsControl is \c org.qt-project.qt.cameraviewfindersettingscontrol/5.0 as
defined in QCameraViewfinderSettingsControl_iid.
- \sa QMediaService::requestControl(), QCamera
+ \warning New backends should implement QCameraViewfinderSettingsControl2 instead.
+ Application developers should request this control only if QCameraViewfinderSettingsControl2
+ is not available.
+
+ \sa QMediaService::requestControl(), QCameraViewfinderSettingsControl2, QCamera
*/
/*!
\macro QCameraViewfinderSettingsControl_iid
- \c org.qt-project.qt.cameraviewfinderresettingscontrol/5.0
+ \c org.qt-project.qt.cameraviewfindersettingscontrol/5.0
Defines the interface name of the QCameraViewfinderSettingsControl class.
@@ -123,6 +127,73 @@ QCameraViewfinderSettingsControl::~QCameraViewfinderSettingsControl()
with viewfinder settings, the camara configuration is usually preferred.
*/
+
+/*!
+ \class QCameraViewfinderSettingsControl2
+ \inmodule QtMultimedia
+ \ingroup multimedia_control
+ \since 5.5
+
+ \brief The QCameraViewfinderSettingsControl2 class provides access to the viewfinder settings
+ of a camera media service.
+
+ The functionality provided by this control is exposed to application code through the QCamera class.
+
+ The interface name of QCameraViewfinderSettingsControl2 is \c org.qt-project.qt.cameraviewfindersettingscontrol2/5.5 as
+ defined in QCameraViewfinderSettingsControl2_iid.
+
+ \sa QMediaService::requestControl(), QCameraViewfinderSettings, QCamera
+*/
+
+/*!
+ \macro QCameraViewfinderSettingsControl2_iid
+
+ \c org.qt-project.qt.cameraviewfindersettingscontrol2/5.5
+
+ Defines the interface name of the QCameraViewfinderSettingsControl2 class.
+
+ \relates QCameraViewfinderSettingsControl2
+*/
+
+/*!
+ Constructs a camera viewfinder settings control object with \a parent.
+*/
+QCameraViewfinderSettingsControl2::QCameraViewfinderSettingsControl2(QObject *parent)
+ : QMediaControl(*new QMediaControlPrivate, parent)
+{
+}
+
+/*!
+ Destroys the camera viewfinder settings control object.
+*/
+QCameraViewfinderSettingsControl2::~QCameraViewfinderSettingsControl2()
+{
+}
+
+/*!
+ \fn QCameraViewfinderSettingsControl2::supportedViewfinderSettings() const
+
+ Returns a list of supported camera viewfinder settings.
+
+ The list is ordered by preference; preferred settings come first.
+*/
+
+/*!
+ \fn QCameraViewfinderSettingsControl2::viewfinderSettings() const
+
+ Returns the viewfinder settings.
+
+ If undefined or unsupported values are passed to QCameraViewfinderSettingsControl2::setViewfinderSettings(),
+ this function returns the actual settings used by the camera viewfinder. These may be available
+ only once the camera is active.
+*/
+
+/*!
+ \fn QCameraViewfinderSettingsControl2::setViewfinderSettings(const QCameraViewfinderSettings &settings)
+
+ Sets the camera viewfinder \a settings.
+*/
+
#include "moc_qcameraviewfindersettingscontrol.cpp"
QT_END_NAMESPACE
diff --git a/src/multimedia/controls/qcameraviewfindersettingscontrol.h b/src/multimedia/controls/qcameraviewfindersettingscontrol.h
index ea6f19550..534667b8e 100644
--- a/src/multimedia/controls/qcameraviewfindersettingscontrol.h
+++ b/src/multimedia/controls/qcameraviewfindersettingscontrol.h
@@ -37,6 +37,7 @@
#define QCAMERAVIEWFINDERSETTINGSCONTROL_H
#include <QtMultimedia/qmediacontrol.h>
+#include <QtMultimedia/qcamera.h>
QT_BEGIN_NAMESPACE
@@ -69,6 +70,28 @@ protected:
#define QCameraViewfinderSettingsControl_iid "org.qt-project.qt.cameraviewfindersettingscontrol/5.0"
Q_MEDIA_DECLARE_CONTROL(QCameraViewfinderSettingsControl, QCameraViewfinderSettingsControl_iid)
+
+// Required for QDoc workaround
+class QString;
+
+class Q_MULTIMEDIA_EXPORT QCameraViewfinderSettingsControl2 : public QMediaControl
+{
+ Q_OBJECT
+public:
+ virtual ~QCameraViewfinderSettingsControl2();
+
+ virtual QList<QCameraViewfinderSettings> supportedViewfinderSettings() const = 0;
+
+ virtual QCameraViewfinderSettings viewfinderSettings() const = 0;
+ virtual void setViewfinderSettings(const QCameraViewfinderSettings &settings) = 0;
+
+protected:
+ QCameraViewfinderSettingsControl2(QObject *parent = 0);
+};
+
+#define QCameraViewfinderSettingsControl2_iid "org.qt-project.qt.cameraviewfindersettingscontrol2/5.5"
+Q_MEDIA_DECLARE_CONTROL(QCameraViewfinderSettingsControl2, QCameraViewfinderSettingsControl2_iid)
+
QT_END_NAMESPACE
#endif // QCAMERAVIEWFINDERSETTINGSCONTROL_H