diff options
Diffstat (limited to 'src/multimedia/platform/android')
6 files changed, 44 insertions, 28 deletions
diff --git a/src/multimedia/platform/android/mediacapture/qandroidcameracontrol.cpp b/src/multimedia/platform/android/mediacapture/qandroidcameracontrol.cpp index 62a548830..700ce2928 100644 --- a/src/multimedia/platform/android/mediacapture/qandroidcameracontrol.cpp +++ b/src/multimedia/platform/android/mediacapture/qandroidcameracontrol.cpp @@ -39,6 +39,9 @@ #include "qandroidcameracontrol_p.h" #include "qandroidcamerasession_p.h" +#include "qandroidcameraexposurecontrol_p.h" +#include "qandroidcamerafocuscontrol_p.h" +#include "qandroidcameraimageprocessingcontrol_p.h" #include <qmediadevicemanager.h> #include <qcamerainfo.h> #include <qtimer.h> @@ -235,6 +238,21 @@ void QAndroidCameraControl::unlock(QCamera::LockTypes locks) } } +QCameraFocusControl *QAndroidCameraControl::focusControl() +{ + return m_cameraSession->focusControl(); +} + +QCameraExposureControl *QAndroidCameraControl::exposureControl() +{ + return m_cameraSession->exposureControl(); +} + +QCameraImageProcessingControl *QAndroidCameraControl::imageProcessingControl() +{ + return m_cameraSession->imageProcessingControl(); +} + void QAndroidCameraControl::onCameraOpened() { m_supportedLocks = QCamera::NoLock; diff --git a/src/multimedia/platform/android/mediacapture/qandroidcameracontrol_p.h b/src/multimedia/platform/android/mediacapture/qandroidcameracontrol_p.h index 77bcbf7ff..d313db9fd 100644 --- a/src/multimedia/platform/android/mediacapture/qandroidcameracontrol_p.h +++ b/src/multimedia/platform/android/mediacapture/qandroidcameracontrol_p.h @@ -83,6 +83,10 @@ public: void searchAndLock(QCamera::LockTypes locks) override; void unlock(QCamera::LockTypes locks) override; + QCameraFocusControl *focusControl() override; + QCameraExposureControl *exposureControl() override; + QCameraImageProcessingControl *imageProcessingControl() override; + private Q_SLOTS: void onCameraOpened(); void onCameraAutoFocusComplete(bool success); diff --git a/src/multimedia/platform/android/mediacapture/qandroidcamerasession.cpp b/src/multimedia/platform/android/mediacapture/qandroidcamerasession.cpp index fdf791f85..042f66078 100644 --- a/src/multimedia/platform/android/mediacapture/qandroidcamerasession.cpp +++ b/src/multimedia/platform/android/mediacapture/qandroidcamerasession.cpp @@ -45,6 +45,9 @@ #include "qandroidvideooutput_p.h" #include "qandroidmultimediautils_p.h" #include "qandroidcameravideorenderercontrol_p.h" +#include "qandroidcameraexposurecontrol_p.h" +#include "qandroidcamerafocuscontrol_p.h" +#include "qandroidcameraimageprocessingcontrol_p.h" #include <qabstractvideosurface.h> #include <QtConcurrent/qtconcurrentrun.h> #include <qfile.h> @@ -82,6 +85,10 @@ QAndroidCameraSession::QAndroidCameraSession(QObject *parent) QMediaStorageLocation::Pictures, AndroidMultimediaUtils::getDefaultMediaDirectory(AndroidMultimediaUtils::DCIM)); + m_cameraExposureControl = new QAndroidCameraExposureControl(this); + m_cameraFocusControl = new QAndroidCameraFocusControl(this); + m_cameraImageProcessingControl = new QAndroidCameraImageProcessingControl(this); + if (qApp) { connect(qApp, SIGNAL(applicationStateChanged(Qt::ApplicationState)), this, SLOT(onApplicationStateChanged(Qt::ApplicationState))); @@ -90,6 +97,10 @@ QAndroidCameraSession::QAndroidCameraSession(QObject *parent) QAndroidCameraSession::~QAndroidCameraSession() { + delete m_cameraExposureControl; + delete m_cameraFocusControl; + delete m_cameraImageProcessingControl; + close(); } diff --git a/src/multimedia/platform/android/mediacapture/qandroidcamerasession_p.h b/src/multimedia/platform/android/mediacapture/qandroidcamerasession_p.h index ea0176a6f..c2278434b 100644 --- a/src/multimedia/platform/android/mediacapture/qandroidcamerasession_p.h +++ b/src/multimedia/platform/android/mediacapture/qandroidcamerasession_p.h @@ -63,6 +63,9 @@ QT_BEGIN_NAMESPACE class QAndroidVideoOutput; +class QAndroidCameraExposureControl; +class QAndroidCameraFocusControl; +class QAndroidCameraImageProcessingControl; class QAndroidCameraSession : public QObject { @@ -117,6 +120,10 @@ public: void setPreviewCallback(PreviewCallback *callback); bool requestRecordingPermission(); + QAndroidCameraFocusControl *focusControl() { return m_cameraFocusControl; } + QAndroidCameraExposureControl *exposureControl() { return m_cameraExposureControl; } + QAndroidCameraImageProcessingControl *imageProcessingControl() { return m_cameraImageProcessingControl; } + Q_SIGNALS: void statusChanged(QCamera::Status status); void stateChanged(QCamera::State); @@ -182,6 +189,10 @@ private: QCamera::Status m_status; bool m_previewStarted; + QAndroidCameraExposureControl *m_cameraExposureControl; + QAndroidCameraFocusControl *m_cameraFocusControl; + QAndroidCameraImageProcessingControl *m_cameraImageProcessingControl; + QImageEncoderSettings m_requestedImageSettings; QImageEncoderSettings m_actualImageSettings; QCameraImageCapture::CaptureDestinations m_captureDestination; diff --git a/src/multimedia/platform/android/mediacapture/qandroidcaptureservice.cpp b/src/multimedia/platform/android/mediacapture/qandroidcaptureservice.cpp index 26095fd36..9721229a6 100644 --- a/src/multimedia/platform/android/mediacapture/qandroidcaptureservice.cpp +++ b/src/multimedia/platform/android/mediacapture/qandroidcaptureservice.cpp @@ -45,9 +45,6 @@ #include "qandroidcameracontrol_p.h" #include "qandroidcamerasession_p.h" #include "qandroidcameravideorenderercontrol_p.h" -#include "qandroidcameraexposurecontrol_p.h" -#include "qandroidcamerafocuscontrol_p.h" -#include "qandroidcameraimageprocessingcontrol_p.h" #include "qandroidimageencodercontrol_p.h" #include "qandroidcameraimagecapturecontrol_p.h" @@ -60,17 +57,11 @@ QAndroidCaptureService::QAndroidCaptureService(QMediaRecorder::CaptureMode mode) if (m_videoEnabled) { m_cameraSession = new QAndroidCameraSession; m_cameraControl = new QAndroidCameraControl(m_cameraSession); - m_cameraExposureControl = new QAndroidCameraExposureControl(m_cameraSession); - m_cameraFocusControl = new QAndroidCameraFocusControl(m_cameraSession); - m_cameraImageProcessingControl = new QAndroidCameraImageProcessingControl(m_cameraSession); m_imageEncoderControl = new QAndroidImageEncoderControl(m_cameraSession); m_imageCaptureControl = new QAndroidCameraImageCaptureControl(m_cameraSession); } else { m_cameraSession = 0; m_cameraControl = 0; - m_cameraExposureControl = 0; - m_cameraFocusControl = 0; - m_cameraImageProcessingControl = 0; m_imageEncoderControl = 0; m_imageCaptureControl = 0; } @@ -85,9 +76,6 @@ QAndroidCaptureService::~QAndroidCaptureService() delete m_captureSession; delete m_cameraControl; delete m_videoRendererControl; - delete m_cameraExposureControl; - delete m_cameraFocusControl; - delete m_cameraImageProcessingControl; delete m_imageEncoderControl; delete m_imageCaptureControl; delete m_cameraSession; @@ -101,15 +89,6 @@ QObject *QAndroidCaptureService::requestControl(const char *name) if (qstrcmp(name, QCameraControl_iid) == 0) return m_cameraControl; - if (qstrcmp(name, QCameraExposureControl_iid) == 0) - return m_cameraExposureControl; - - if (qstrcmp(name, QCameraFocusControl_iid) == 0) - return m_cameraFocusControl; - - if (qstrcmp(name, QCameraImageProcessingControl_iid) == 0) - return m_cameraImageProcessingControl; - if (qstrcmp(name, QImageEncoderControl_iid) == 0) return m_imageEncoderControl; diff --git a/src/multimedia/platform/android/mediacapture/qandroidcaptureservice_p.h b/src/multimedia/platform/android/mediacapture/qandroidcaptureservice_p.h index b9d7bb685..0f0892a24 100644 --- a/src/multimedia/platform/android/mediacapture/qandroidcaptureservice_p.h +++ b/src/multimedia/platform/android/mediacapture/qandroidcaptureservice_p.h @@ -63,9 +63,6 @@ class QAndroidCaptureSession; class QAndroidCameraControl; class QAndroidCameraSession; class QAndroidCameraVideoRendererControl; -class QAndroidCameraExposureControl; -class QAndroidCameraFocusControl; -class QAndroidCameraImageProcessingControl; class QAndroidImageEncoderControl; class QAndroidCameraImageCaptureControl; @@ -80,7 +77,6 @@ public: QObject *requestControl(const char *name); void releaseControl(QObject *); -private: bool m_videoEnabled = false; QAndroidMediaRecorderControl *m_recorderControl; @@ -88,9 +84,6 @@ private: QAndroidCameraControl *m_cameraControl; QAndroidCameraSession *m_cameraSession; QAndroidCameraVideoRendererControl *m_videoRendererControl; - QAndroidCameraExposureControl *m_cameraExposureControl; - QAndroidCameraFocusControl *m_cameraFocusControl; - QAndroidCameraImageProcessingControl *m_cameraImageProcessingControl; QAndroidImageEncoderControl *m_imageEncoderControl; QAndroidCameraImageCaptureControl *m_imageCaptureControl; }; |