diff options
Diffstat (limited to 'src/plugins/avfoundation/camera/avfcameraservice.mm')
-rw-r--r-- | src/plugins/avfoundation/camera/avfcameraservice.mm | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/plugins/avfoundation/camera/avfcameraservice.mm b/src/plugins/avfoundation/camera/avfcameraservice.mm index d617dc954..c1ac0b739 100644 --- a/src/plugins/avfoundation/camera/avfcameraservice.mm +++ b/src/plugins/avfoundation/camera/avfcameraservice.mm @@ -41,6 +41,7 @@ #include <QtCore/qvariant.h> #include <QtCore/qdebug.h> +#include <QtCore/qsysinfo.h> #include "avfcameraservice.h" #include "avfcameracontrol.h" @@ -56,6 +57,7 @@ #include "avfimagecapturecontrol.h" #include "avfmediavideoprobecontrol.h" #include "avfcamerafocuscontrol.h" +#include "avfcameraexposurecontrol.h" #include <private/qmediaplaylistnavigator_p.h> #include <qmediaplaylist.h> @@ -75,8 +77,12 @@ AVFCameraService::AVFCameraService(QObject *parent): m_metaDataControl = new AVFCameraMetaDataControl(this); m_recorderControl = new AVFMediaRecorderControl(this); m_imageCaptureControl = new AVFImageCaptureControl(this); - m_cameraFocusControl = new AVFCameraFocusControl(this); + m_cameraExposureControl = 0; +#if defined(Q_OS_IOS) && QT_IOS_PLATFORM_SDK_EQUAL_OR_ABOVE(__IPHONE_8_0) + if (QSysInfo::MacintoshVersion >= QSysInfo::MV_IOS_8_0) + m_cameraExposureControl = new AVFCameraExposureControl(this); +#endif } AVFCameraService::~AVFCameraService() @@ -96,6 +102,7 @@ AVFCameraService::~AVFCameraService() delete m_metaDataControl; delete m_cameraControl; delete m_cameraFocusControl; + delete m_cameraExposureControl; delete m_session; } @@ -124,6 +131,9 @@ QMediaControl *AVFCameraService::requestControl(const char *name) if (qstrcmp(name, QCameraImageCaptureControl_iid) == 0) return m_imageCaptureControl; + if (qstrcmp(name, QCameraExposureControl_iid) == 0) + return m_cameraExposureControl; + if (qstrcmp(name, QCameraFocusControl_iid) == 0) return m_cameraFocusControl; |