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>
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -53,7 +53,8 @@ public:
|
||||
CaptureMode = 1,
|
||||
ImageEncodingSettings = 2,
|
||||
VideoEncodingSettings = 3,
|
||||
Viewfinder = 4
|
||||
Viewfinder = 4,
|
||||
ViewfinderSettings = 5
|
||||
};
|
||||
|
||||
~QCameraControl();
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user