Android: Use androidSdkVersion() to get the API level.
Change-Id: Idc0b09ab2dc5d93e8da8dab3bd0e99e27fbc57e1 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
This commit is contained in:
committed by
The Qt Project
parent
a241874a7f
commit
a8854cc549
@@ -47,6 +47,7 @@
|
|||||||
#include "qandroidmultimediautils.h"
|
#include "qandroidmultimediautils.h"
|
||||||
#include <qthread.h>
|
#include <qthread.h>
|
||||||
#include <qmutex.h>
|
#include <qmutex.h>
|
||||||
|
#include <QtCore/private/qjnihelpers_p.h>
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
@@ -230,8 +231,6 @@ class JCameraWorker : public QObject
|
|||||||
QSize m_previewSize;
|
QSize m_previewSize;
|
||||||
int m_rotation;
|
int m_rotation;
|
||||||
|
|
||||||
bool m_hasAPI14;
|
|
||||||
|
|
||||||
JCamera *q;
|
JCamera *q;
|
||||||
|
|
||||||
QThread *m_workerThread;
|
QThread *m_workerThread;
|
||||||
@@ -616,7 +615,6 @@ JCameraWorker::JCameraWorker(JCamera *camera, int cameraId, jobject cam, QThread
|
|||||||
: QObject(0)
|
: QObject(0)
|
||||||
, m_cameraId(cameraId)
|
, m_cameraId(cameraId)
|
||||||
, m_rotation(0)
|
, m_rotation(0)
|
||||||
, m_hasAPI14(false)
|
|
||||||
, m_parametersMutex(QMutex::Recursive)
|
, m_parametersMutex(QMutex::Recursive)
|
||||||
, m_camera(cam)
|
, m_camera(cam)
|
||||||
{
|
{
|
||||||
@@ -638,23 +636,6 @@ JCameraWorker::JCameraWorker(JCamera *camera, int cameraId, jobject cam, QThread
|
|||||||
QJNIObjectPrivate params = m_camera.callObjectMethod("getParameters",
|
QJNIObjectPrivate params = m_camera.callObjectMethod("getParameters",
|
||||||
"()Landroid/hardware/Camera$Parameters;");
|
"()Landroid/hardware/Camera$Parameters;");
|
||||||
m_parameters = QJNIObjectPrivate(params);
|
m_parameters = QJNIObjectPrivate(params);
|
||||||
|
|
||||||
// Check if API 14 is available
|
|
||||||
QJNIEnvironmentPrivate env;
|
|
||||||
jclass clazz = env->FindClass("android/hardware/Camera");
|
|
||||||
if (env->ExceptionCheck()) {
|
|
||||||
clazz = 0;
|
|
||||||
env->ExceptionClear();
|
|
||||||
}
|
|
||||||
if (clazz) {
|
|
||||||
// startFaceDetection() was added in API 14
|
|
||||||
jmethodID id = env->GetMethodID(clazz, "startFaceDetection", "()V");
|
|
||||||
if (env->ExceptionCheck()) {
|
|
||||||
id = 0;
|
|
||||||
env->ExceptionClear();
|
|
||||||
}
|
|
||||||
m_hasAPI14 = bool(id);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -881,9 +862,12 @@ void JCameraWorker::setFocusMode(const QString &value)
|
|||||||
|
|
||||||
int JCameraWorker::getMaxNumFocusAreas()
|
int JCameraWorker::getMaxNumFocusAreas()
|
||||||
{
|
{
|
||||||
|
if (QtAndroidPrivate::androidSdkVersion() < 14)
|
||||||
|
return 0;
|
||||||
|
|
||||||
QMutexLocker parametersLocker(&m_parametersMutex);
|
QMutexLocker parametersLocker(&m_parametersMutex);
|
||||||
|
|
||||||
if (!m_hasAPI14 || !m_parameters.isValid())
|
if (!m_parameters.isValid())
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return m_parameters.callMethod<jint>("getMaxNumFocusAreas");
|
return m_parameters.callMethod<jint>("getMaxNumFocusAreas");
|
||||||
@@ -891,11 +875,14 @@ int JCameraWorker::getMaxNumFocusAreas()
|
|||||||
|
|
||||||
QList<QRect> JCameraWorker::getFocusAreas()
|
QList<QRect> JCameraWorker::getFocusAreas()
|
||||||
{
|
{
|
||||||
QMutexLocker parametersLocker(&m_parametersMutex);
|
|
||||||
|
|
||||||
QList<QRect> areas;
|
QList<QRect> areas;
|
||||||
|
|
||||||
if (m_hasAPI14 && m_parameters.isValid()) {
|
if (QtAndroidPrivate::androidSdkVersion() < 14)
|
||||||
|
return areas;
|
||||||
|
|
||||||
|
QMutexLocker parametersLocker(&m_parametersMutex);
|
||||||
|
|
||||||
|
if (m_parameters.isValid()) {
|
||||||
QJNIObjectPrivate list = m_parameters.callObjectMethod("getFocusAreas",
|
QJNIObjectPrivate list = m_parameters.callObjectMethod("getFocusAreas",
|
||||||
"()Ljava/util/List;");
|
"()Ljava/util/List;");
|
||||||
|
|
||||||
@@ -916,9 +903,12 @@ QList<QRect> JCameraWorker::getFocusAreas()
|
|||||||
|
|
||||||
void JCameraWorker::setFocusAreas(const QList<QRect> &areas)
|
void JCameraWorker::setFocusAreas(const QList<QRect> &areas)
|
||||||
{
|
{
|
||||||
|
if (QtAndroidPrivate::androidSdkVersion() < 14)
|
||||||
|
return;
|
||||||
|
|
||||||
QMutexLocker parametersLocker(&m_parametersMutex);
|
QMutexLocker parametersLocker(&m_parametersMutex);
|
||||||
|
|
||||||
if (!m_hasAPI14 || !m_parameters.isValid())
|
if (!m_parameters.isValid())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QJNIObjectPrivate list;
|
QJNIObjectPrivate list;
|
||||||
@@ -949,9 +939,12 @@ void JCameraWorker::autoFocus()
|
|||||||
|
|
||||||
bool JCameraWorker::isAutoExposureLockSupported()
|
bool JCameraWorker::isAutoExposureLockSupported()
|
||||||
{
|
{
|
||||||
|
if (QtAndroidPrivate::androidSdkVersion() < 14)
|
||||||
|
return false;
|
||||||
|
|
||||||
QMutexLocker parametersLocker(&m_parametersMutex);
|
QMutexLocker parametersLocker(&m_parametersMutex);
|
||||||
|
|
||||||
if (!m_hasAPI14 || !m_parameters.isValid())
|
if (!m_parameters.isValid())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return m_parameters.callMethod<jboolean>("isAutoExposureLockSupported");
|
return m_parameters.callMethod<jboolean>("isAutoExposureLockSupported");
|
||||||
@@ -959,9 +952,12 @@ bool JCameraWorker::isAutoExposureLockSupported()
|
|||||||
|
|
||||||
bool JCameraWorker::getAutoExposureLock()
|
bool JCameraWorker::getAutoExposureLock()
|
||||||
{
|
{
|
||||||
|
if (QtAndroidPrivate::androidSdkVersion() < 14)
|
||||||
|
return false;
|
||||||
|
|
||||||
QMutexLocker parametersLocker(&m_parametersMutex);
|
QMutexLocker parametersLocker(&m_parametersMutex);
|
||||||
|
|
||||||
if (!m_hasAPI14 || !m_parameters.isValid())
|
if (!m_parameters.isValid())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return m_parameters.callMethod<jboolean>("getAutoExposureLock");
|
return m_parameters.callMethod<jboolean>("getAutoExposureLock");
|
||||||
@@ -969,9 +965,12 @@ bool JCameraWorker::getAutoExposureLock()
|
|||||||
|
|
||||||
void JCameraWorker::setAutoExposureLock(bool toggle)
|
void JCameraWorker::setAutoExposureLock(bool toggle)
|
||||||
{
|
{
|
||||||
|
if (QtAndroidPrivate::androidSdkVersion() < 14)
|
||||||
|
return;
|
||||||
|
|
||||||
QMutexLocker parametersLocker(&m_parametersMutex);
|
QMutexLocker parametersLocker(&m_parametersMutex);
|
||||||
|
|
||||||
if (!m_hasAPI14 || !m_parameters.isValid())
|
if (!m_parameters.isValid())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_parameters.callMethod<void>("setAutoExposureLock", "(Z)V", toggle);
|
m_parameters.callMethod<void>("setAutoExposureLock", "(Z)V", toggle);
|
||||||
@@ -980,9 +979,12 @@ void JCameraWorker::setAutoExposureLock(bool toggle)
|
|||||||
|
|
||||||
bool JCameraWorker::isAutoWhiteBalanceLockSupported()
|
bool JCameraWorker::isAutoWhiteBalanceLockSupported()
|
||||||
{
|
{
|
||||||
|
if (QtAndroidPrivate::androidSdkVersion() < 14)
|
||||||
|
return false;
|
||||||
|
|
||||||
QMutexLocker parametersLocker(&m_parametersMutex);
|
QMutexLocker parametersLocker(&m_parametersMutex);
|
||||||
|
|
||||||
if (!m_hasAPI14 || !m_parameters.isValid())
|
if (!m_parameters.isValid())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return m_parameters.callMethod<jboolean>("isAutoWhiteBalanceLockSupported");
|
return m_parameters.callMethod<jboolean>("isAutoWhiteBalanceLockSupported");
|
||||||
@@ -990,9 +992,12 @@ bool JCameraWorker::isAutoWhiteBalanceLockSupported()
|
|||||||
|
|
||||||
bool JCameraWorker::getAutoWhiteBalanceLock()
|
bool JCameraWorker::getAutoWhiteBalanceLock()
|
||||||
{
|
{
|
||||||
|
if (QtAndroidPrivate::androidSdkVersion() < 14)
|
||||||
|
return false;
|
||||||
|
|
||||||
QMutexLocker parametersLocker(&m_parametersMutex);
|
QMutexLocker parametersLocker(&m_parametersMutex);
|
||||||
|
|
||||||
if (!m_hasAPI14 || !m_parameters.isValid())
|
if (!m_parameters.isValid())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return m_parameters.callMethod<jboolean>("getAutoWhiteBalanceLock");
|
return m_parameters.callMethod<jboolean>("getAutoWhiteBalanceLock");
|
||||||
@@ -1000,9 +1005,12 @@ bool JCameraWorker::getAutoWhiteBalanceLock()
|
|||||||
|
|
||||||
void JCameraWorker::setAutoWhiteBalanceLock(bool toggle)
|
void JCameraWorker::setAutoWhiteBalanceLock(bool toggle)
|
||||||
{
|
{
|
||||||
|
if (QtAndroidPrivate::androidSdkVersion() < 14)
|
||||||
|
return;
|
||||||
|
|
||||||
QMutexLocker parametersLocker(&m_parametersMutex);
|
QMutexLocker parametersLocker(&m_parametersMutex);
|
||||||
|
|
||||||
if (!m_hasAPI14 || !m_parameters.isValid())
|
if (!m_parameters.isValid())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_parameters.callMethod<void>("setAutoWhiteBalanceLock", "(Z)V", toggle);
|
m_parameters.callMethod<void>("setAutoWhiteBalanceLock", "(Z)V", toggle);
|
||||||
|
|||||||
Reference in New Issue
Block a user