summaryrefslogtreecommitdiffstats
path: root/src/multimedia/platform/android
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/platform/android')
-rw-r--r--src/multimedia/platform/android/mediacapture/qandroidcameracontrol.cpp18
-rw-r--r--src/multimedia/platform/android/mediacapture/qandroidcameracontrol_p.h4
-rw-r--r--src/multimedia/platform/android/mediacapture/qandroidcamerasession.cpp11
-rw-r--r--src/multimedia/platform/android/mediacapture/qandroidcamerasession_p.h11
-rw-r--r--src/multimedia/platform/android/mediacapture/qandroidcaptureservice.cpp21
-rw-r--r--src/multimedia/platform/android/mediacapture/qandroidcaptureservice_p.h7
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;
};