From ac029c65f273ce5dd20da8e84d1bcff2fd6749d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Str=C3=B8mme?= Date: Thu, 12 Sep 2013 13:14:56 +0200 Subject: Android: Adapt the multimedia plugin to new QJNI API Change-Id: Id87f5518724eed6c9de6d5d3b8141860bd511643 Reviewed-by: Yoann Lopes --- .../src/common/qandroidvideorendercontrol.cpp | 4 +- .../src/common/qandroidvideorendercontrol.h | 2 +- .../src/mediacapture/qandroidcapturesession.cpp | 16 +- .../qandroidvideodeviceselectorcontrol.cpp | 7 +- src/plugins/android/src/src.pro | 2 +- src/plugins/android/src/wrappers/jcamera.cpp | 302 ++++++++++----------- src/plugins/android/src/wrappers/jcamera.h | 8 +- .../src/wrappers/jmediametadataretriever.cpp | 43 ++- .../android/src/wrappers/jmediametadataretriever.h | 4 +- src/plugins/android/src/wrappers/jmediaplayer.cpp | 16 +- src/plugins/android/src/wrappers/jmediaplayer.h | 4 +- .../android/src/wrappers/jmediarecorder.cpp | 34 +-- src/plugins/android/src/wrappers/jmediarecorder.h | 4 +- .../android/src/wrappers/jmultimediautils.cpp | 16 +- .../android/src/wrappers/jmultimediautils.h | 4 +- .../android/src/wrappers/jsurfacetexture.cpp | 6 +- src/plugins/android/src/wrappers/jsurfacetexture.h | 4 +- .../android/src/wrappers/jsurfacetextureholder.cpp | 2 +- .../android/src/wrappers/jsurfacetextureholder.h | 4 +- 19 files changed, 229 insertions(+), 253 deletions(-) (limited to 'src/plugins/android/src') diff --git a/src/plugins/android/src/common/qandroidvideorendercontrol.cpp b/src/plugins/android/src/common/qandroidvideorendercontrol.cpp index c5d38aebe..0eb8d172f 100644 --- a/src/plugins/android/src/common/qandroidvideorendercontrol.cpp +++ b/src/plugins/android/src/common/qandroidvideorendercontrol.cpp @@ -41,7 +41,7 @@ #include "qandroidvideorendercontrol.h" -#include +#include #include "jsurfacetextureholder.h" #include #include @@ -268,7 +268,7 @@ jobject QAndroidVideoRendererControl::surfaceHolder() return 0; if (!m_surfaceHolder) { - m_androidSurface = new QJNIObject("android/view/Surface", + m_androidSurface = new QJNIObjectPrivate("android/view/Surface", "(Landroid/graphics/SurfaceTexture;)V", m_surfaceTexture->object()); diff --git a/src/plugins/android/src/common/qandroidvideorendercontrol.h b/src/plugins/android/src/common/qandroidvideorendercontrol.h index d8078f075..25220310e 100644 --- a/src/plugins/android/src/common/qandroidvideorendercontrol.h +++ b/src/plugins/android/src/common/qandroidvideorendercontrol.h @@ -90,7 +90,7 @@ private: bool m_useImage; QSize m_nativeSize; - QJNIObject *m_androidSurface; + QJNIObjectPrivate *m_androidSurface; JSurfaceTexture *m_surfaceTexture; JSurfaceTextureHolder *m_surfaceHolder; uint m_externalTex; diff --git a/src/plugins/android/src/mediacapture/qandroidcapturesession.cpp b/src/plugins/android/src/mediacapture/qandroidcapturesession.cpp index 1927aeb8e..ec458eddb 100644 --- a/src/plugins/android/src/mediacapture/qandroidcapturesession.cpp +++ b/src/plugins/android/src/mediacapture/qandroidcapturesession.cpp @@ -45,7 +45,7 @@ #include "qandroidcamerasession.h" #include "jmultimediautils.h" #include "qandroidmultimediautils.h" -#include +#include QT_BEGIN_NAMESPACE @@ -466,22 +466,20 @@ void QAndroidCaptureSession::onCameraOpened() QAndroidCaptureSession::CaptureProfile QAndroidCaptureSession::getProfile(int id) { CaptureProfile profile; - bool hasProfile = QJNIObject::callStaticMethod("android/media/CamcorderProfile", + bool hasProfile = QJNIObjectPrivate::callStaticMethod("android/media/CamcorderProfile", "hasProfile", "(II)Z", m_cameraSession->camera()->cameraId(), id); if (hasProfile) { - QJNILocalRef ref = QJNIObject::callStaticObjectMethod("android/media/CamcorderProfile", - "get", - "(II)Landroid/media/CamcorderProfile;", - m_cameraSession->camera()->cameraId(), - id); + QJNIObjectPrivate obj = QJNIObjectPrivate::callStaticObjectMethod("android/media/CamcorderProfile", + "get", + "(II)Landroid/media/CamcorderProfile;", + m_cameraSession->camera()->cameraId(), + id); - QJNIObject obj(ref.object()); - profile.outputFormat = JMediaRecorder::OutputFormat(obj.getField("fileFormat")); profile.audioEncoder = JMediaRecorder::AudioEncoder(obj.getField("audioCodec")); profile.audioBitRate = obj.getField("audioBitRate"); diff --git a/src/plugins/android/src/mediacapture/qandroidvideodeviceselectorcontrol.cpp b/src/plugins/android/src/mediacapture/qandroidvideodeviceselectorcontrol.cpp index 26dce565e..04af61085 100644 --- a/src/plugins/android/src/mediacapture/qandroidvideodeviceselectorcontrol.cpp +++ b/src/plugins/android/src/mediacapture/qandroidvideodeviceselectorcontrol.cpp @@ -43,7 +43,6 @@ #include "qandroidcamerasession.h" #include "jcamera.h" -#include QT_BEGIN_NAMESPACE @@ -103,12 +102,12 @@ void QAndroidVideoDeviceSelectorControl::update() m_names.clear(); m_descriptions.clear(); - QJNIObject cameraInfo("android/hardware/Camera$CameraInfo"); - int numCameras = QJNIObject::callStaticMethod("android/hardware/Camera", + QJNIObjectPrivate cameraInfo("android/hardware/Camera$CameraInfo"); + int numCameras = QJNIObjectPrivate::callStaticMethod("android/hardware/Camera", "getNumberOfCameras"); for (int i = 0; i < numCameras; ++i) { - QJNIObject::callStaticMethod("android/hardware/Camera", + QJNIObjectPrivate::callStaticMethod("android/hardware/Camera", "getCameraInfo", "(ILandroid/hardware/Camera$CameraInfo;)V", i, cameraInfo.object()); diff --git a/src/plugins/android/src/src.pro b/src/plugins/android/src/src.pro index e99fd30f5..d071f6fcd 100644 --- a/src/plugins/android/src/src.pro +++ b/src/plugins/android/src/src.pro @@ -1,5 +1,5 @@ TARGET = qtmedia_android -QT += multimedia-private gui-private platformsupport-private network +QT += multimedia-private core-private network PLUGIN_TYPE = mediaservice PLUGIN_CLASS_NAME = QAndroidMediaServicePlugin diff --git a/src/plugins/android/src/wrappers/jcamera.cpp b/src/plugins/android/src/wrappers/jcamera.cpp index 9005ac6e0..f53fa4936 100644 --- a/src/plugins/android/src/wrappers/jcamera.cpp +++ b/src/plugins/android/src/wrappers/jcamera.cpp @@ -41,7 +41,7 @@ #include "jcamera.h" -#include +#include #include #include #include "qandroidmultimediautils.h" @@ -53,9 +53,8 @@ static QMap g_objectMap; static QRect areaToRect(jobject areaObj) { - QJNIObject area(areaObj); - QJNILocalRef rectRef = area.getObjectField("rect", "android/graphics/Rect"); - QJNIObject rect(rectRef.object()); + QJNIObjectPrivate area(areaObj); + QJNIObjectPrivate rect = area.getObjectField("rect", "android/graphics/Rect"); return QRect(rect.getField("left"), rect.getField("top"), @@ -63,17 +62,17 @@ static QRect areaToRect(jobject areaObj) rect.callMethod("height")); } -static QJNILocalRef rectToArea(const QRect &rect) +static QJNIObjectPrivate rectToArea(const QRect &rect) { - QJNIObject jrect("android/graphics/Rect", + QJNIObjectPrivate jrect("android/graphics/Rect", "(IIII)V", rect.left(), rect.top(), rect.right(), rect.bottom()); - QJNIObject area("android/hardware/Camera$Area", + QJNIObjectPrivate area("android/hardware/Camera$Area", "(Landroid/graphics/Rect;I)V", jrect.object(), 500); - return QJNILocalRef(QAttachedJNIEnv()->NewLocalRef(area.object())); + return area; } // native method for QtCamera.java @@ -105,27 +104,25 @@ static void notifyPictureCaptured(JNIEnv *env, jobject, int id, jbyteArray data) JCamera::JCamera(int cameraId, jobject cam) : QObject() - , QJNIObject(cam) + , QJNIObjectPrivate(cam) , m_cameraId(cameraId) - , m_info(0) - , m_parameters(0) , m_hasAPI14(false) { if (isValid()) { g_objectMap.insert(cameraId, this); - m_info = new QJNIObject("android/hardware/Camera$CameraInfo"); + m_info = QJNIObjectPrivate("android/hardware/Camera$CameraInfo"); callStaticMethod("android/hardware/Camera", "getCameraInfo", "(ILandroid/hardware/Camera$CameraInfo;)V", - cameraId, m_info->object()); + cameraId, m_info.object()); - QJNILocalRef params = callObjectMethod("getParameters", - "()Landroid/hardware/Camera$Parameters;"); - m_parameters = new QJNIObject(params.object()); + QJNIObjectPrivate params = callObjectMethod("getParameters", + "()Landroid/hardware/Camera$Parameters;"); + m_parameters = QJNIObjectPrivate(params); // Check if API 14 is available - QAttachedJNIEnv env; + QJNIEnvironmentPrivate env; jclass clazz = env->FindClass("android/hardware/Camera"); if (env->ExceptionCheck()) { clazz = 0; @@ -147,20 +144,18 @@ JCamera::~JCamera() { if (isValid()) g_objectMap.remove(m_cameraId); - delete m_parameters; - delete m_info; } JCamera *JCamera::open(int cameraId) { - QAttachedJNIEnv env; + QJNIEnvironmentPrivate env; - QJNILocalRef camera = callStaticObjectMethod(g_qtCameraClass, - "open", - "(I)Lorg/qtproject/qt5/android/multimedia/QtCamera;", - cameraId); + QJNIObjectPrivate camera = callStaticObjectMethod(g_qtCameraClass, + "open", + "(I)Lorg/qtproject/qt5/android/multimedia/QtCamera;", + cameraId); - if (camera.isNull()) + if (!camera.isValid()) return 0; else return new JCamera(cameraId, camera.object()); @@ -184,30 +179,28 @@ void JCamera::reconnect() void JCamera::release() { m_previewSize = QSize(); - delete m_parameters; - m_parameters = 0; + m_parameters = QJNIObjectPrivate(); callMethod("release"); } JCamera::CameraFacing JCamera::getFacing() { - return CameraFacing(m_info->getField("facing")); + return CameraFacing(m_info.getField("facing")); } int JCamera::getNativeOrientation() { - return m_info->getField("orientation"); + return m_info.getField("orientation"); } QSize JCamera::getPreferredPreviewSizeForVideo() { - if (!m_parameters || !m_parameters->isValid()) + if (!m_parameters.isValid()) return QSize(); - QJNILocalRef sizeRef = m_parameters->callObjectMethod("getPreferredPreviewSizeForVideo", - "()Landroid/hardware/Camera$Size;"); + QJNIObjectPrivate size = m_parameters.callObjectMethod("getPreferredPreviewSizeForVideo", + "()Landroid/hardware/Camera$Size;"); - QJNIObject size(sizeRef.object()); return QSize(size.getField("width"), size.getField("height")); } @@ -215,16 +208,14 @@ QList JCamera::getSupportedPreviewSizes() { QList list; - if (m_parameters && m_parameters->isValid()) { - QJNILocalRef sizeListRef = m_parameters->callObjectMethod("getSupportedPreviewSizes", - "()Ljava/util/List;"); - QJNIObject sizeList(sizeListRef.object()); + if (m_parameters.isValid()) { + QJNIObjectPrivate sizeList = m_parameters.callObjectMethod("getSupportedPreviewSizes", + "()Ljava/util/List;"); int count = sizeList.callMethod("size"); for (int i = 0; i < count; ++i) { - QJNILocalRef sizeRef = sizeList.callObjectMethod("get", - "(I)Ljava/lang/Object;", - i); - QJNIObject size(sizeRef.object()); + QJNIObjectPrivate size = sizeList.callObjectMethod("get", + "(I)Ljava/lang/Object;", + i); list.append(QSize(size.getField("width"), size.getField("height"))); } @@ -236,12 +227,12 @@ QList JCamera::getSupportedPreviewSizes() void JCamera::setPreviewSize(const QSize &size) { - if (!m_parameters || !m_parameters->isValid()) + if (!m_parameters.isValid()) return; m_previewSize = size; - m_parameters->callMethod("setPreviewSize", "(II)V", size.width(), size.height()); + m_parameters.callMethod("setPreviewSize", "(II)V", size.width(), size.height()); applyParameters(); emit previewSizeChanged(); @@ -254,35 +245,33 @@ void JCamera::setPreviewTexture(jobject surfaceTexture) bool JCamera::isZoomSupported() { - if (!m_parameters || !m_parameters->isValid()) + if (!m_parameters.isValid()) return false; - return m_parameters->callMethod("isZoomSupported"); + return m_parameters.callMethod("isZoomSupported"); } int JCamera::getMaxZoom() { - if (!m_parameters || !m_parameters->isValid()) + if (!m_parameters.isValid()) return 0; - return m_parameters->callMethod("getMaxZoom"); + return m_parameters.callMethod("getMaxZoom"); } QList JCamera::getZoomRatios() { QList ratios; - if (m_parameters && m_parameters->isValid()) { - QJNILocalRef ratioListRef = m_parameters->callObjectMethod("getZoomRatios", - "()Ljava/util/List;"); - QJNIObject ratioList(ratioListRef.object()); + if (m_parameters.isValid()) { + QJNIObjectPrivate ratioList = m_parameters.callObjectMethod("getZoomRatios", + "()Ljava/util/List;"); int count = ratioList.callMethod("size"); for (int i = 0; i < count; ++i) { - QJNILocalRef zoomRatioRef = ratioList.callObjectMethod("get", - "(I)Ljava/lang/Object;", - i); + QJNIObjectPrivate zoomRatio = ratioList.callObjectMethod("get", + "(I)Ljava/lang/Object;", + i); - QJNIObject zoomRatio(zoomRatioRef.object()); ratios.append(zoomRatio.callMethod("intValue")); } } @@ -292,18 +281,18 @@ QList JCamera::getZoomRatios() int JCamera::getZoom() { - if (!m_parameters || !m_parameters->isValid()) + if (!m_parameters.isValid()) return 0; - return m_parameters->callMethod("getZoom"); + return m_parameters.callMethod("getZoom"); } void JCamera::setZoom(int value) { - if (!m_parameters || !m_parameters->isValid()) + if (!m_parameters.isValid()) return; - m_parameters->callMethod("setZoom", "(I)V", value); + m_parameters.callMethod("setZoom", "(I)V", value); applyParameters(); } @@ -316,11 +305,11 @@ QString JCamera::getFlashMode() { QString value; - if (m_parameters && m_parameters->isValid()) { - QJNILocalRef flashMode = m_parameters->callObjectMethod("getFlashMode", - "()Ljava/lang/String;"); - if (!flashMode.isNull()) - value = qt_convertJString(flashMode.object()); + if (m_parameters.isValid()) { + QJNIObjectPrivate flashMode = m_parameters.callObjectMethod("getFlashMode", + "()Ljava/lang/String;"); + if (flashMode.isValid()) + value = flashMode.toString(); } return value; @@ -328,12 +317,12 @@ QString JCamera::getFlashMode() void JCamera::setFlashMode(const QString &value) { - if (!m_parameters || !m_parameters->isValid()) + if (!m_parameters.isValid()) return; - m_parameters->callMethod("setFlashMode", - "(Ljava/lang/String;)V", - qt_toJString(value).object()); + m_parameters.callMethod("setFlashMode", + "(Ljava/lang/String;)V", + QJNIObjectPrivate::fromString(value).object()); applyParameters(); } @@ -346,11 +335,11 @@ QString JCamera::getFocusMode() { QString value; - if (m_parameters && m_parameters->isValid()) { - QJNILocalRef focusMode = m_parameters->callObjectMethod("getFocusMode", - "()Ljava/lang/String;"); - if (!focusMode.isNull()) - value = qt_convertJString(focusMode.object()); + if (m_parameters.isValid()) { + QJNIObjectPrivate focusMode = m_parameters.callObjectMethod("getFocusMode", + "()Ljava/lang/String;"); + if (focusMode.isValid()) + value = focusMode.toString(); } return value; @@ -358,40 +347,39 @@ QString JCamera::getFocusMode() void JCamera::setFocusMode(const QString &value) { - if (!m_parameters || !m_parameters->isValid()) + if (!m_parameters.isValid()) return; - m_parameters->callMethod("setFocusMode", - "(Ljava/lang/String;)V", - qt_toJString(value).object()); + m_parameters.callMethod("setFocusMode", + "(Ljava/lang/String;)V", + QJNIObjectPrivate::fromString(value).object()); applyParameters(); } int JCamera::getMaxNumFocusAreas() { - if (!m_hasAPI14 || !m_parameters || !m_parameters->isValid()) + if (!m_hasAPI14 || !m_parameters.isValid()) return 0; - return m_parameters->callMethod("getMaxNumFocusAreas"); + return m_parameters.callMethod("getMaxNumFocusAreas"); } QList JCamera::getFocusAreas() { QList areas; - if (m_hasAPI14 && m_parameters && m_parameters->isValid()) { - QJNILocalRef listRef = m_parameters->callObjectMethod("getFocusAreas", - "()Ljava/util/List;"); + if (m_hasAPI14 && m_parameters.isValid()) { + QJNIObjectPrivate list = m_parameters.callObjectMethod("getFocusAreas", + "()Ljava/util/List;"); - if (!listRef.isNull()) { - QJNIObject list(listRef.object()); + if (list.isValid()) { int count = list.callMethod("size"); for (int i = 0; i < count; ++i) { - QJNILocalRef areaRef = list.callObjectMethod("get", - "(I)Ljava/lang/Object;", - i); + QJNIObjectPrivate area = list.callObjectMethod("get", + "(I)Ljava/lang/Object;", + i); - areas.append(areaToRect(areaRef.object())); + areas.append(areaToRect(area.object())); } } } @@ -401,14 +389,14 @@ QList JCamera::getFocusAreas() void JCamera::setFocusAreas(const QList &areas) { - if (!m_hasAPI14 || !m_parameters || !m_parameters->isValid()) + if (!m_hasAPI14 || !m_parameters.isValid()) return; - QJNILocalRef list(0); + QJNIObjectPrivate list; if (!areas.isEmpty()) { - QAttachedJNIEnv env; - QJNIObject arrayList("java/util/ArrayList", "(I)V", areas.size()); + QJNIEnvironmentPrivate env; + QJNIObjectPrivate arrayList("java/util/ArrayList", "(I)V", areas.size()); for (int i = 0; i < areas.size(); ++i) { arrayList.callMethod("add", "(Ljava/lang/Object;)Z", @@ -416,10 +404,10 @@ void JCamera::setFocusAreas(const QList &areas) if (env->ExceptionCheck()) env->ExceptionClear(); } - list = env->NewLocalRef(arrayList.object()); + list = arrayList; } - m_parameters->callMethod("setFocusAreas", "(Ljava/util/List;)V", list.object()); + m_parameters.callMethod("setFocusAreas", "(Ljava/util/List;)V", list.object()); applyParameters(); } @@ -437,93 +425,93 @@ void JCamera::cancelAutoFocus() bool JCamera::isAutoExposureLockSupported() { - if (!m_hasAPI14 || !m_parameters || !m_parameters->isValid()) + if (!m_hasAPI14 || !m_parameters.isValid()) return false; - return m_parameters->callMethod("isAutoExposureLockSupported"); + return m_parameters.callMethod("isAutoExposureLockSupported"); } bool JCamera::getAutoExposureLock() { - if (!m_hasAPI14 || !m_parameters || !m_parameters->isValid()) + if (!m_hasAPI14 || !m_parameters.isValid()) return false; - return m_parameters->callMethod("getAutoExposureLock"); + return m_parameters.callMethod("getAutoExposureLock"); } void JCamera::setAutoExposureLock(bool toggle) { - if (!m_hasAPI14 || !m_parameters || !m_parameters->isValid()) + if (!m_hasAPI14 || !m_parameters.isValid()) return; - m_parameters->callMethod("setAutoExposureLock", "(Z)V", toggle); + m_parameters.callMethod("setAutoExposureLock", "(Z)V", toggle); applyParameters(); } bool JCamera::isAutoWhiteBalanceLockSupported() { - if (!m_hasAPI14 || !m_parameters || !m_parameters->isValid()) + if (!m_hasAPI14 || !m_parameters.isValid()) return false; - return m_parameters->callMethod("isAutoWhiteBalanceLockSupported"); + return m_parameters.callMethod("isAutoWhiteBalanceLockSupported"); } bool JCamera::getAutoWhiteBalanceLock() { - if (!m_hasAPI14 || !m_parameters || !m_parameters->isValid()) + if (!m_hasAPI14 || !m_parameters.isValid()) return false; - return m_parameters->callMethod("getAutoWhiteBalanceLock"); + return m_parameters.callMethod("getAutoWhiteBalanceLock"); } void JCamera::setAutoWhiteBalanceLock(bool toggle) { - if (!m_hasAPI14 || !m_parameters || !m_parameters->isValid()) + if (!m_hasAPI14 || !m_parameters.isValid()) return; - m_parameters->callMethod("setAutoWhiteBalanceLock", "(Z)V", toggle); + m_parameters.callMethod("setAutoWhiteBalanceLock", "(Z)V", toggle); applyParameters(); } int JCamera::getExposureCompensation() { - if (!m_parameters || !m_parameters->isValid()) + if (!m_parameters.isValid()) return 0; - return m_parameters->callMethod("getExposureCompensation"); + return m_parameters.callMethod("getExposureCompensation"); } void JCamera::setExposureCompensation(int value) { - if (!m_parameters || !m_parameters->isValid()) + if (!m_parameters.isValid()) return; - m_parameters->callMethod("setExposureCompensation", "(I)V", value); + m_parameters.callMethod("setExposureCompensation", "(I)V", value); applyParameters(); } float JCamera::getExposureCompensationStep() { - if (!m_parameters || !m_parameters->isValid()) + if (!m_parameters.isValid()) return 0; - return m_parameters->callMethod("getExposureCompensationStep"); + return m_parameters.callMethod("getExposureCompensationStep"); } int JCamera::getMinExposureCompensation() { - if (!m_parameters || !m_parameters->isValid()) + if (!m_parameters.isValid()) return 0; - return m_parameters->callMethod("getMinExposureCompensation"); + return m_parameters.callMethod("getMinExposureCompensation"); } int JCamera::getMaxExposureCompensation() { - if (!m_parameters || !m_parameters->isValid()) + if (!m_parameters.isValid()) return 0; - return m_parameters->callMethod("getMaxExposureCompensation"); + return m_parameters.callMethod("getMaxExposureCompensation"); } QStringList JCamera::getSupportedSceneModes() @@ -535,11 +523,11 @@ QString JCamera::getSceneMode() { QString value; - if (m_parameters && m_parameters->isValid()) { - QJNILocalRef sceneMode = m_parameters->callObjectMethod("getSceneMode", - "()Ljava/lang/String;"); - if (!sceneMode.isNull()) - value = qt_convertJString(sceneMode.object()); + if (m_parameters.isValid()) { + QJNIObjectPrivate sceneMode = m_parameters.callObjectMethod("getSceneMode", + "()Ljava/lang/String;"); + if (sceneMode.isValid()) + value = sceneMode.toString(); } return value; @@ -547,12 +535,12 @@ QString JCamera::getSceneMode() void JCamera::setSceneMode(const QString &value) { - if (!m_parameters || !m_parameters->isValid()) + if (!m_parameters.isValid()) return; - m_parameters->callMethod("setSceneMode", - "(Ljava/lang/String;)V", - qt_toJString(value).object()); + m_parameters.callMethod("setSceneMode", + "(Ljava/lang/String;)V", + QJNIObjectPrivate::fromString(value).object()); applyParameters(); } @@ -565,11 +553,11 @@ QString JCamera::getWhiteBalance() { QString value; - if (m_parameters && m_parameters->isValid()) { - QJNILocalRef wb = m_parameters->callObjectMethod("getWhiteBalance", - "()Ljava/lang/String;"); - if (!wb.isNull()) - value = qt_convertJString(wb.object()); + if (m_parameters.isValid()) { + QJNIObjectPrivate wb = m_parameters.callObjectMethod("getWhiteBalance", + "()Ljava/lang/String;"); + if (wb.isValid()) + value = wb.toString(); } return value; @@ -577,12 +565,12 @@ QString JCamera::getWhiteBalance() void JCamera::setWhiteBalance(const QString &value) { - if (!m_parameters || !m_parameters->isValid()) + if (!m_parameters.isValid()) return; - m_parameters->callMethod("setWhiteBalance", - "(Ljava/lang/String;)V", - qt_toJString(value).object()); + m_parameters.callMethod("setWhiteBalance", + "(Ljava/lang/String;)V", + QJNIObjectPrivate::fromString(value).object()); applyParameters(); emit whiteBalanceChanged(); @@ -590,10 +578,10 @@ void JCamera::setWhiteBalance(const QString &value) void JCamera::setRotation(int rotation) { - if (!m_parameters || !m_parameters->isValid()) + if (!m_parameters.isValid()) return; - m_parameters->callMethod("setRotation", "(I)V", rotation); + m_parameters.callMethod("setRotation", "(I)V", rotation); applyParameters(); } @@ -601,16 +589,14 @@ QList JCamera::getSupportedPictureSizes() { QList list; - if (m_parameters && m_parameters->isValid()) { - QJNILocalRef sizeListRef = m_parameters->callObjectMethod("getSupportedPictureSizes", - "()Ljava/util/List;"); - QJNIObject sizeList(sizeListRef.object()); + if (m_parameters.isValid()) { + QJNIObjectPrivate sizeList = m_parameters.callObjectMethod("getSupportedPictureSizes", + "()Ljava/util/List;"); int count = sizeList.callMethod("size"); for (int i = 0; i < count; ++i) { - QJNILocalRef sizeRef = sizeList.callObjectMethod("get", - "(I)Ljava/lang/Object;", - i); - QJNIObject size(sizeRef.object()); + QJNIObjectPrivate size = sizeList.callObjectMethod("get", + "(I)Ljava/lang/Object;", + i); list.append(QSize(size.getField("width"), size.getField("height"))); } @@ -622,19 +608,19 @@ QList JCamera::getSupportedPictureSizes() void JCamera::setPictureSize(const QSize &size) { - if (!m_parameters || !m_parameters->isValid()) + if (!m_parameters.isValid()) return; - m_parameters->callMethod("setPictureSize", "(II)V", size.width(), size.height()); + m_parameters.callMethod("setPictureSize", "(II)V", size.width(), size.height()); applyParameters(); } void JCamera::setJpegQuality(int quality) { - if (!m_parameters || !m_parameters->isValid()) + if (!m_parameters.isValid()) return; - m_parameters->callMethod("setJpegQuality", "(I)V", quality); + m_parameters.callMethod("setJpegQuality", "(I)V", quality); applyParameters(); } @@ -657,27 +643,25 @@ void JCamera::applyParameters() { callMethod("setParameters", "(Landroid/hardware/Camera$Parameters;)V", - m_parameters->object()); + m_parameters.object()); } QStringList JCamera::callStringListMethod(const char *methodName) { QStringList stringList; - if (m_parameters && m_parameters->isValid()) { - QJNILocalRef listRef = m_parameters->callObjectMethod(methodName, - "()Ljava/util/List;"); + if (m_parameters.isValid()) { + QJNIObjectPrivate list = m_parameters.callObjectMethod(methodName, + "()Ljava/util/List;"); - if (!listRef.isNull()) { - QJNIObject list(listRef.object()); + if (list.isValid()) { int count = list.callMethod("size"); for (int i = 0; i < count; ++i) { - QJNILocalRef stringRef = list.callObjectMethod("get", - "(I)Ljava/lang/Object;", - i); + QJNIObjectPrivate string = list.callObjectMethod("get", + "(I)Ljava/lang/Object;", + i); - QJNIObject string(stringRef.object()); - stringList.append(qt_convertJString(string.callObjectMethod("toString").object())); + stringList.append(string.toString()); } } } diff --git a/src/plugins/android/src/wrappers/jcamera.h b/src/plugins/android/src/wrappers/jcamera.h index 100628721..0aea81f38 100644 --- a/src/plugins/android/src/wrappers/jcamera.h +++ b/src/plugins/android/src/wrappers/jcamera.h @@ -43,13 +43,13 @@ #define JCAMERA_H #include -#include +#include #include #include QT_BEGIN_NAMESPACE -class JCamera : public QObject, public QJNIObject +class JCamera : public QObject, public QJNIObjectPrivate { Q_OBJECT public: @@ -153,8 +153,8 @@ private: QStringList callStringListMethod(const char *methodName); int m_cameraId; - QJNIObject *m_info; - QJNIObject *m_parameters; + QJNIObjectPrivate m_info; + QJNIObjectPrivate m_parameters; QSize m_previewSize; diff --git a/src/plugins/android/src/wrappers/jmediametadataretriever.cpp b/src/plugins/android/src/wrappers/jmediametadataretriever.cpp index ae5abcf43..91c40905c 100644 --- a/src/plugins/android/src/wrappers/jmediametadataretriever.cpp +++ b/src/plugins/android/src/wrappers/jmediametadataretriever.cpp @@ -41,21 +41,14 @@ #include "jmediametadataretriever.h" -#include -#include -#include +#include +#include QT_BEGIN_NAMESPACE -static jobject g_activity = 0; - JMediaMetadataRetriever::JMediaMetadataRetriever() - : QJNIObject("android/media/MediaMetadataRetriever") + : QJNIObjectPrivate("android/media/MediaMetadataRetriever") { - if (!g_activity) { - QPlatformNativeInterface *nativeInterface = QGuiApplication::platformNativeInterface(); - g_activity = static_cast(nativeInterface->nativeResourceForIntegration("QtActivity")); - } } JMediaMetadataRetriever::~JMediaMetadataRetriever() @@ -66,11 +59,11 @@ QString JMediaMetadataRetriever::extractMetadata(MetadataKey key) { QString value; - QJNILocalRef metadata = callObjectMethod("extractMetadata", - "(I)Ljava/lang/String;", - jint(key)); - if (!metadata.isNull()) - value = qt_convertJString(metadata.object()); + QJNIObjectPrivate metadata = callObjectMethod("extractMetadata", + "(I)Ljava/lang/String;", + jint(key)); + if (metadata.isValid()) + value = metadata.toString(); return value; } @@ -82,22 +75,22 @@ void JMediaMetadataRetriever::release() bool JMediaMetadataRetriever::setDataSource(const QUrl &url) { - QAttachedJNIEnv env; + QJNIEnvironmentPrivate env; bool loaded = false; - QJNILocalRef string = qt_toJString(url.toString()); + QJNIObjectPrivate string = QJNIObjectPrivate::fromString(url.toString()); - QJNILocalRef uri = callStaticObjectMethod("android/net/Uri", - "parse", - "(Ljava/lang/String;)Landroid/net/Uri;", - string.object()); + QJNIObjectPrivate uri = callStaticObjectMethod("android/net/Uri", + "parse", + "(Ljava/lang/String;)Landroid/net/Uri;", + string.object()); if (env->ExceptionCheck()) { env->ExceptionClear(); } else { callMethod("setDataSource", "(Landroid/content/Context;Landroid/net/Uri;)V", - g_activity, + QtAndroidPrivate::activity(), uri.object()); if (env->ExceptionCheck()) env->ExceptionClear(); @@ -110,11 +103,13 @@ bool JMediaMetadataRetriever::setDataSource(const QUrl &url) bool JMediaMetadataRetriever::setDataSource(const QString &path) { - QAttachedJNIEnv env; + QJNIEnvironmentPrivate env; bool loaded = false; - callMethod("setDataSource", "(Ljava/lang/String;)V", qt_toJString(path).object()); + callMethod("setDataSource", + "(Ljava/lang/String;)V", + QJNIObjectPrivate::fromString(path).object()); if (env->ExceptionCheck()) env->ExceptionClear(); else diff --git a/src/plugins/android/src/wrappers/jmediametadataretriever.h b/src/plugins/android/src/wrappers/jmediametadataretriever.h index dd63e0d87..7b22c955d 100644 --- a/src/plugins/android/src/wrappers/jmediametadataretriever.h +++ b/src/plugins/android/src/wrappers/jmediametadataretriever.h @@ -42,12 +42,12 @@ #ifndef JMEDIAMETADATARETRIEVER_H #define JMEDIAMETADATARETRIEVER_H -#include +#include #include QT_BEGIN_NAMESPACE -class JMediaMetadataRetriever : public QJNIObject +class JMediaMetadataRetriever : public QJNIObjectPrivate { public: enum MetadataKey { diff --git a/src/plugins/android/src/wrappers/jmediaplayer.cpp b/src/plugins/android/src/wrappers/jmediaplayer.cpp index f6e03ee22..3d7f7f9d1 100644 --- a/src/plugins/android/src/wrappers/jmediaplayer.cpp +++ b/src/plugins/android/src/wrappers/jmediaplayer.cpp @@ -42,9 +42,9 @@ #include "jmediaplayer.h" #include -#include -#include -#include +#include +#include +#include namespace { @@ -60,19 +60,17 @@ bool JMediaPlayer::mActivitySet = false; JMediaPlayer::JMediaPlayer() : QObject() - , QJNIObject(mediaPlayerClass, "(J)V", reinterpret_cast(this)) + , QJNIObjectPrivate(mediaPlayerClass, "(J)V", reinterpret_cast(this)) , mId(reinterpret_cast(this)) , mDisplay(0) { mplayers.insert(mId, this); if (!mActivitySet) { - QPlatformNativeInterface *nativeInterface = QGuiApplication::platformNativeInterface(); - jobject activity = static_cast(nativeInterface->nativeResourceForIntegration("QtActivity")); - QJNIObject::callStaticMethod(mediaPlayerClass, + QJNIObjectPrivate::callStaticMethod(mediaPlayerClass, "setActivity", "(Landroid/app/Activity;)V", - activity); + QtAndroidPrivate::activity()); mActivitySet = true; } } @@ -164,7 +162,7 @@ void JMediaPlayer::setMuted(bool mute) void JMediaPlayer::setDataSource(const QString &path) { - QJNILocalRef string = qt_toJString(path); + QJNIObjectPrivate string = QJNIObjectPrivate::fromString(path); callMethod("setMediaPath", "(Ljava/lang/String;)V", string.object()); } diff --git a/src/plugins/android/src/wrappers/jmediaplayer.h b/src/plugins/android/src/wrappers/jmediaplayer.h index 710246b9a..c737cfa26 100644 --- a/src/plugins/android/src/wrappers/jmediaplayer.h +++ b/src/plugins/android/src/wrappers/jmediaplayer.h @@ -43,11 +43,11 @@ #define QANDROIDMEDIAPLAYER_H #include -#include +#include QT_BEGIN_NAMESPACE -class JMediaPlayer : public QObject, public QJNIObject +class JMediaPlayer : public QObject, public QJNIObjectPrivate { Q_OBJECT public: diff --git a/src/plugins/android/src/wrappers/jmediarecorder.cpp b/src/plugins/android/src/wrappers/jmediarecorder.cpp index b7cbe5724..1a9ee33f7 100644 --- a/src/plugins/android/src/wrappers/jmediarecorder.cpp +++ b/src/plugins/android/src/wrappers/jmediarecorder.cpp @@ -42,7 +42,7 @@ #include "jmediarecorder.h" #include "jcamera.h" -#include +#include #include QT_BEGIN_NAMESPACE @@ -66,7 +66,7 @@ static void notifyInfo(JNIEnv* , jobject, jlong id, jint what, jint extra) JMediaRecorder::JMediaRecorder() : QObject() - , QJNIObject(g_qtMediaRecorderClass, "(J)V", reinterpret_cast(this)) + , QJNIObjectPrivate(g_qtMediaRecorderClass, "(J)V", reinterpret_cast(this)) , m_id(reinterpret_cast(this)) { if (isValid()) @@ -85,7 +85,7 @@ void JMediaRecorder::release() bool JMediaRecorder::prepare() { - QAttachedJNIEnv env; + QJNIEnvironmentPrivate env; callMethod("prepare"); if (env->ExceptionCheck()) { env->ExceptionClear(); @@ -101,7 +101,7 @@ void JMediaRecorder::reset() bool JMediaRecorder::start() { - QAttachedJNIEnv env; + QJNIEnvironmentPrivate env; callMethod("start"); if (env->ExceptionCheck()) { env->ExceptionClear(); @@ -112,7 +112,7 @@ bool JMediaRecorder::start() void JMediaRecorder::stop() { - QAttachedJNIEnv env; + QJNIEnvironmentPrivate env; callMethod("stop"); if (env->ExceptionCheck()) env->ExceptionClear(); @@ -125,7 +125,7 @@ void JMediaRecorder::setAudioChannels(int numChannels) void JMediaRecorder::setAudioEncoder(AudioEncoder encoder) { - QAttachedJNIEnv env; + QJNIEnvironmentPrivate env; callMethod("setAudioEncoder", "(I)V", int(encoder)); if (env->ExceptionCheck()) env->ExceptionClear(); @@ -143,7 +143,7 @@ void JMediaRecorder::setAudioSamplingRate(int samplingRate) void JMediaRecorder::setAudioSource(AudioSource source) { - QAttachedJNIEnv env; + QJNIEnvironmentPrivate env; callMethod("setAudioSource", "(I)V", int(source)); if (env->ExceptionCheck()) env->ExceptionClear(); @@ -151,13 +151,13 @@ void JMediaRecorder::setAudioSource(AudioSource source) void JMediaRecorder::setCamera(JCamera *camera) { - QJNILocalRef cam = camera->getObjectField("m_camera", "Landroid/hardware/Camera;"); + QJNIObjectPrivate cam = camera->getObjectField("m_camera", "Landroid/hardware/Camera;"); callMethod("setCamera", "(Landroid/hardware/Camera;)V", cam.object()); } void JMediaRecorder::setVideoEncoder(VideoEncoder encoder) { - QAttachedJNIEnv env; + QJNIEnvironmentPrivate env; callMethod("setVideoEncoder", "(I)V", int(encoder)); if (env->ExceptionCheck()) env->ExceptionClear(); @@ -170,7 +170,7 @@ void JMediaRecorder::setVideoEncodingBitRate(int bitRate) void JMediaRecorder::setVideoFrameRate(int rate) { - QAttachedJNIEnv env; + QJNIEnvironmentPrivate env; callMethod("setVideoFrameRate", "(I)V", rate); if (env->ExceptionCheck()) env->ExceptionClear(); @@ -178,7 +178,7 @@ void JMediaRecorder::setVideoFrameRate(int rate) void JMediaRecorder::setVideoSize(const QSize &size) { - QAttachedJNIEnv env; + QJNIEnvironmentPrivate env; callMethod("setVideoSize", "(II)V", size.width(), size.height()); if (env->ExceptionCheck()) env->ExceptionClear(); @@ -186,7 +186,7 @@ void JMediaRecorder::setVideoSize(const QSize &size) void JMediaRecorder::setVideoSource(VideoSource source) { - QAttachedJNIEnv env; + QJNIEnvironmentPrivate env; callMethod("setVideoSource", "(I)V", int(source)); if (env->ExceptionCheck()) env->ExceptionClear(); @@ -194,7 +194,7 @@ void JMediaRecorder::setVideoSource(VideoSource source) void JMediaRecorder::setOrientationHint(int degrees) { - QAttachedJNIEnv env; + QJNIEnvironmentPrivate env; callMethod("setOrientationHint", "(I)V", degrees); if (env->ExceptionCheck()) env->ExceptionClear(); @@ -202,7 +202,7 @@ void JMediaRecorder::setOrientationHint(int degrees) void JMediaRecorder::setOutputFormat(OutputFormat format) { - QAttachedJNIEnv env; + QJNIEnvironmentPrivate env; callMethod("setOutputFormat", "(I)V", int(format)); if (env->ExceptionCheck()) env->ExceptionClear(); @@ -210,8 +210,10 @@ void JMediaRecorder::setOutputFormat(OutputFormat format) void JMediaRecorder::setOutputFile(const QString &path) { - QAttachedJNIEnv env; - callMethod("setOutputFile", "(Ljava/lang/String;)V", qt_toJString(path).object()); + QJNIEnvironmentPrivate env; + callMethod("setOutputFile", + "(Ljava/lang/String;)V", + QJNIObjectPrivate::fromString(path).object()); if (env->ExceptionCheck()) env->ExceptionClear(); } diff --git a/src/plugins/android/src/wrappers/jmediarecorder.h b/src/plugins/android/src/wrappers/jmediarecorder.h index ef26b8a72..2bdb06b9f 100644 --- a/src/plugins/android/src/wrappers/jmediarecorder.h +++ b/src/plugins/android/src/wrappers/jmediarecorder.h @@ -43,14 +43,14 @@ #define JMEDIARECORDER_H #include -#include +#include #include QT_BEGIN_NAMESPACE class JCamera; -class JMediaRecorder : public QObject, public QJNIObject +class JMediaRecorder : public QObject, public QJNIObjectPrivate { Q_OBJECT public: diff --git a/src/plugins/android/src/wrappers/jmultimediautils.cpp b/src/plugins/android/src/wrappers/jmultimediautils.cpp index 6832e6b6e..a20d54477 100644 --- a/src/plugins/android/src/wrappers/jmultimediautils.cpp +++ b/src/plugins/android/src/wrappers/jmultimediautils.cpp @@ -41,7 +41,7 @@ #include "jmultimediautils.h" -#include +#include QT_BEGIN_NAMESPACE @@ -49,7 +49,7 @@ static jclass g_qtMultimediaUtilsClass = 0; JMultimediaUtils::JMultimediaUtils() : QObject() - , QJNIObject(g_qtMultimediaUtilsClass) + , QJNIObjectPrivate(g_qtMultimediaUtilsClass) { } @@ -65,11 +65,11 @@ int JMultimediaUtils::getDeviceOrientation() QString JMultimediaUtils::getDefaultMediaDirectory(MediaType type) { - QJNILocalRef path = callStaticObjectMethod(g_qtMultimediaUtilsClass, - "getDefaultMediaDirectory", - "(I)Ljava/lang/String;", - jint(type)); - return qt_convertJString(path.object()); + QJNIObjectPrivate path = callStaticObjectMethod(g_qtMultimediaUtilsClass, + "getDefaultMediaDirectory", + "(I)Ljava/lang/String;", + jint(type)); + return path.toString(); } void JMultimediaUtils::registerMediaFile(const QString &file) @@ -77,7 +77,7 @@ void JMultimediaUtils::registerMediaFile(const QString &file) callStaticMethod(g_qtMultimediaUtilsClass, "registerMediaFile", "(Ljava/lang/String;)V", - qt_toJString(file).object()); + QJNIObjectPrivate::fromString(file).object()); } bool JMultimediaUtils::initJNI(JNIEnv *env) diff --git a/src/plugins/android/src/wrappers/jmultimediautils.h b/src/plugins/android/src/wrappers/jmultimediautils.h index 909f5c155..9896f7f31 100644 --- a/src/plugins/android/src/wrappers/jmultimediautils.h +++ b/src/plugins/android/src/wrappers/jmultimediautils.h @@ -43,11 +43,11 @@ #define JMULTIMEDIAUTILS_H #include -#include +#include QT_BEGIN_NAMESPACE -class JMultimediaUtils : public QObject, public QJNIObject +class JMultimediaUtils : public QObject, public QJNIObjectPrivate { Q_OBJECT public: diff --git a/src/plugins/android/src/wrappers/jsurfacetexture.cpp b/src/plugins/android/src/wrappers/jsurfacetexture.cpp index 60c85cdf0..1505443a8 100644 --- a/src/plugins/android/src/wrappers/jsurfacetexture.cpp +++ b/src/plugins/android/src/wrappers/jsurfacetexture.cpp @@ -40,7 +40,7 @@ ****************************************************************************/ #include "jsurfacetexture.h" -#include +#include QT_BEGIN_NAMESPACE @@ -57,7 +57,7 @@ static void notifyFrameAvailable(JNIEnv* , jobject, int id) JSurfaceTexture::JSurfaceTexture(unsigned int texName) : QObject() - , QJNIObject(g_qtSurfaceTextureClass, "(I)V", jint(texName)) + , QJNIObjectPrivate(g_qtSurfaceTextureClass, "(I)V", jint(texName)) , m_texID(int(texName)) { if (isValid()) @@ -72,7 +72,7 @@ JSurfaceTexture::~JSurfaceTexture() QMatrix4x4 JSurfaceTexture::getTransformMatrix() { - QAttachedJNIEnv env; + QJNIEnvironmentPrivate env; QMatrix4x4 matrix; jfloatArray array = env->NewFloatArray(16); diff --git a/src/plugins/android/src/wrappers/jsurfacetexture.h b/src/plugins/android/src/wrappers/jsurfacetexture.h index 2a2f27ae3..d65fc01e9 100644 --- a/src/plugins/android/src/wrappers/jsurfacetexture.h +++ b/src/plugins/android/src/wrappers/jsurfacetexture.h @@ -43,13 +43,13 @@ #define JSURFACETEXTURE_H #include -#include +#include #include QT_BEGIN_NAMESPACE -class JSurfaceTexture : public QObject, public QJNIObject +class JSurfaceTexture : public QObject, public QJNIObjectPrivate { Q_OBJECT public: diff --git a/src/plugins/android/src/wrappers/jsurfacetextureholder.cpp b/src/plugins/android/src/wrappers/jsurfacetextureholder.cpp index 4ec8935c2..b6d1433d1 100644 --- a/src/plugins/android/src/wrappers/jsurfacetextureholder.cpp +++ b/src/plugins/android/src/wrappers/jsurfacetextureholder.cpp @@ -46,7 +46,7 @@ QT_BEGIN_NAMESPACE static jclass g_qtSurfaceTextureHolderClass = 0; JSurfaceTextureHolder::JSurfaceTextureHolder(jobject surface) - : QJNIObject(g_qtSurfaceTextureHolderClass, "(Landroid/view/Surface;)V", surface) + : QJNIObjectPrivate(g_qtSurfaceTextureHolderClass, "(Landroid/view/Surface;)V", surface) { } diff --git a/src/plugins/android/src/wrappers/jsurfacetextureholder.h b/src/plugins/android/src/wrappers/jsurfacetextureholder.h index 5b567de3a..556cb4a40 100644 --- a/src/plugins/android/src/wrappers/jsurfacetextureholder.h +++ b/src/plugins/android/src/wrappers/jsurfacetextureholder.h @@ -42,11 +42,11 @@ #ifndef JSURFACETEXTUREHOLDER_H #define JSURFACETEXTUREHOLDER_H -#include +#include QT_BEGIN_NAMESPACE -class JSurfaceTextureHolder : public QJNIObject +class JSurfaceTextureHolder : public QJNIObjectPrivate { public: JSurfaceTextureHolder(jobject surface); -- cgit v1.2.3