From a241874a7f750039d68925d452abf7709c51fed2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Str=C3=B8mme?= Date: Wed, 2 Apr 2014 18:57:16 +0200 Subject: Android: Remove inheritance to QJNIObject in the Camera wrapper The QJNIObject was never intended to be used as a base class. Change-Id: I4986aeaebecd6e4136fed311e69368e20da4d060 Reviewed-by: Yoann Lopes --- src/plugins/android/src/wrappers/jcamera.cpp | 47 +++++++++++++++------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/src/plugins/android/src/wrappers/jcamera.cpp b/src/plugins/android/src/wrappers/jcamera.cpp index 50a65a779..874d12cdf 100644 --- a/src/plugins/android/src/wrappers/jcamera.cpp +++ b/src/plugins/android/src/wrappers/jcamera.cpp @@ -145,7 +145,7 @@ private: QJNIObjectPrivate lastCamera; }; -class JCameraWorker : public QObject, public QJNIObjectPrivate +class JCameraWorker : public QObject { Q_OBJECT friend class JCamera; @@ -236,6 +236,7 @@ class JCameraWorker : public QObject, public QJNIObjectPrivate QThread *m_workerThread; QMutex m_parametersMutex; + QJNIObjectPrivate m_camera; Q_SIGNALS: void previewSizeChanged(); @@ -269,7 +270,7 @@ JCamera::JCamera(int cameraId, jobject cam, QThread *workerThread) JCamera::~JCamera() { - if (d->isValid()) { + if (d->m_camera.isValid()) { g_objectMapMutex.lock(); g_objectMap.remove(d->m_cameraId); g_objectMapMutex.unlock(); @@ -595,7 +596,7 @@ void JCamera::fetchLastPreviewFrame() QJNIObjectPrivate JCamera::getCameraObject() { - return d->getObjectField("m_camera", "Landroid/hardware/Camera;"); + return d->m_camera.getObjectField("m_camera", "Landroid/hardware/Camera;"); } void JCamera::startPreview() @@ -613,29 +614,29 @@ void JCamera::stopPreview() JCameraWorker::JCameraWorker(JCamera *camera, int cameraId, jobject cam, QThread *workerThread) : QObject(0) - , QJNIObjectPrivate(cam) , m_cameraId(cameraId) , m_rotation(0) , m_hasAPI14(false) , m_parametersMutex(QMutex::Recursive) + , m_camera(cam) { q = camera; m_workerThread = workerThread; moveToThread(m_workerThread); - if (isValid()) { + if (m_camera.isValid()) { g_objectMapMutex.lock(); g_objectMap.insert(cameraId, q); g_objectMapMutex.unlock(); m_info = QJNIObjectPrivate("android/hardware/Camera$CameraInfo"); - callStaticMethod("android/hardware/Camera", - "getCameraInfo", - "(ILandroid/hardware/Camera$CameraInfo;)V", - cameraId, m_info.object()); + m_camera.callStaticMethod("android/hardware/Camera", + "getCameraInfo", + "(ILandroid/hardware/Camera$CameraInfo;)V", + cameraId, m_info.object()); - QJNIObjectPrivate params = callObjectMethod("getParameters", - "()Landroid/hardware/Camera$Parameters;"); + QJNIObjectPrivate params = m_camera.callObjectMethod("getParameters", + "()Landroid/hardware/Camera$Parameters;"); m_parameters = QJNIObjectPrivate(params); // Check if API 14 is available @@ -668,7 +669,7 @@ void JCameraWorker::release() m_parametersMutex.lock(); m_parameters = QJNIObjectPrivate(); m_parametersMutex.unlock(); - callMethod("release"); + m_camera.callMethod("release"); } JCamera::CameraFacing JCameraWorker::getFacing() @@ -752,7 +753,9 @@ void JCameraWorker::updatePreviewSize() void JCameraWorker::setPreviewTexture(void *surfaceTexture) { - callMethod("setPreviewTexture", "(Landroid/graphics/SurfaceTexture;)V", static_cast(surfaceTexture)); + m_camera.callMethod("setPreviewTexture", + "(Landroid/graphics/SurfaceTexture;)V", + static_cast(surfaceTexture)); } bool JCameraWorker::isZoomSupported() @@ -940,7 +943,7 @@ void JCameraWorker::setFocusAreas(const QList &areas) void JCameraWorker::autoFocus() { - callMethod("autoFocus"); + m_camera.callMethod("autoFocus"); emit autoFocusStarted(); } @@ -1184,15 +1187,15 @@ void JCameraWorker::stopPreview() void JCameraWorker::fetchEachFrame(bool fetch) { - callMethod("fetchEachFrame", "(Z)V", fetch); + m_camera.callMethod("fetchEachFrame", "(Z)V", fetch); } void JCameraWorker::fetchLastPreviewFrame() { QJNIEnvironmentPrivate env; - QJNIObjectPrivate dataObj = callObjectMethod("lockAndFetchPreviewBuffer", "()[B"); + QJNIObjectPrivate dataObj = m_camera.callObjectMethod("lockAndFetchPreviewBuffer", "()[B"); if (!dataObj.object()) { - callMethod("unlockPreviewBuffer"); + m_camera.callMethod("unlockPreviewBuffer"); return; } jbyteArray data = static_cast(dataObj.object()); @@ -1200,16 +1203,16 @@ void JCameraWorker::fetchLastPreviewFrame() int arrayLength = env->GetArrayLength(data); bytes.resize(arrayLength); env->GetByteArrayRegion(data, 0, arrayLength, (jbyte*)bytes.data()); - callMethod("unlockPreviewBuffer"); + m_camera.callMethod("unlockPreviewBuffer"); emit previewFetched(bytes); } void JCameraWorker::applyParameters() { - callMethod("setParameters", - "(Landroid/hardware/Camera$Parameters;)V", - m_parameters.object()); + m_camera.callMethod("setParameters", + "(Landroid/hardware/Camera$Parameters;)V", + m_parameters.object()); } QStringList JCameraWorker::callParametersStringListMethod(const QByteArray &methodName) @@ -1239,7 +1242,7 @@ QStringList JCameraWorker::callParametersStringListMethod(const QByteArray &meth void JCameraWorker::callVoidMethod(const QByteArray &methodName) { - callMethod(methodName.constData()); + m_camera.callMethod(methodName.constData()); } -- cgit v1.2.1