diff options
Diffstat (limited to 'src/plugins/avfoundation/camera/avfcameraviewfindersettingscontrol.h')
-rw-r--r-- | src/plugins/avfoundation/camera/avfcameraviewfindersettingscontrol.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/plugins/avfoundation/camera/avfcameraviewfindersettingscontrol.h b/src/plugins/avfoundation/camera/avfcameraviewfindersettingscontrol.h index d2864c62a..fccc938a9 100644 --- a/src/plugins/avfoundation/camera/avfcameraviewfindersettingscontrol.h +++ b/src/plugins/avfoundation/camera/avfcameraviewfindersettingscontrol.h @@ -38,6 +38,7 @@ #include <QtMultimedia/qcameraviewfindersettings.h> #include <QtMultimedia/qvideoframe.h> +#include <QtCore/qpointer.h> #include <QtCore/qglobal.h> #include <QtCore/qsize.h> @@ -56,6 +57,7 @@ class AVFCameraViewfinderSettingsControl2 : public QCameraViewfinderSettingsCont Q_OBJECT friend class AVFCameraSession; + friend class AVFCameraViewfinderSettingsControl; public: AVFCameraViewfinderSettingsControl2(AVFCameraService *service); @@ -86,6 +88,27 @@ private: mutable AVCaptureConnection *m_videoConnection; }; +class AVFCameraViewfinderSettingsControl : public QCameraViewfinderSettingsControl +{ + Q_OBJECT +public: + AVFCameraViewfinderSettingsControl(AVFCameraService *service); + + bool isViewfinderParameterSupported(ViewfinderParameter parameter) const Q_DECL_OVERRIDE; + QVariant viewfinderParameter(ViewfinderParameter parameter) const Q_DECL_OVERRIDE; + void setViewfinderParameter(ViewfinderParameter parameter, const QVariant &value) Q_DECL_OVERRIDE; + +private: + void setResolution(const QVariant &resolution); + void setAspectRatio(const QVariant &aspectRatio); + void setFrameRate(const QVariant &fps, bool max); + void setPixelFormat(const QVariant &pf); + bool initSettingsControl() const; + + AVFCameraService *m_service; + mutable QPointer<AVFCameraViewfinderSettingsControl2> m_settingsControl; +}; + QT_END_NAMESPACE #endif |