diff options
author | Wu-cheng Li <wuchengli@google.com> | 2012-03-15 21:23:24 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-03-15 21:23:24 -0700 |
commit | 8d3c318b2d6690a156cc22ef6599a73bee7ed482 (patch) | |
tree | ee99ea5976af25ccc213623dbc1e2424706dacd3 /core/jni | |
parent | 0c269766eaf702b4caeeec56739a63619fba3c93 (diff) | |
parent | a1c41e13b521cdd611a8fc46e43b5ae0a2c00238 (diff) | |
download | frameworks_base-8d3c318b2d6690a156cc22ef6599a73bee7ed482.zip frameworks_base-8d3c318b2d6690a156cc22ef6599a73bee7ed482.tar.gz frameworks_base-8d3c318b2d6690a156cc22ef6599a73bee7ed482.tar.bz2 |
Merge "Add a new camera open API that allows taking the ownership."
Diffstat (limited to 'core/jni')
-rw-r--r-- | core/jni/android_hardware_Camera.cpp | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/core/jni/android_hardware_Camera.cpp b/core/jni/android_hardware_Camera.cpp index 0c66b86..36b4b45 100644 --- a/core/jni/android_hardware_Camera.cpp +++ b/core/jni/android_hardware_Camera.cpp @@ -457,9 +457,9 @@ static void android_hardware_Camera_getCameraInfo(JNIEnv *env, jobject thiz, // connect to camera service static void android_hardware_Camera_native_setup(JNIEnv *env, jobject thiz, - jobject weak_this, jint cameraId) + jobject weak_this, jint cameraId, jboolean force, jboolean keep) { - sp<Camera> camera = Camera::connect(cameraId); + sp<Camera> camera = Camera::connect(cameraId, force, keep); if (camera == NULL) { jniThrowRuntimeException(env, "Fail to connect to camera service"); @@ -700,7 +700,12 @@ static jstring android_hardware_Camera_getParameters(JNIEnv *env, jobject thiz) sp<Camera> camera = get_native_camera(env, thiz, NULL); if (camera == 0) return 0; - return env->NewStringUTF(camera->getParameters().string()); + String8 params8 = camera->getParameters(); + if (params8.isEmpty()) { + jniThrowRuntimeException(env, "getParameters failed (empty parameters)"); + return 0; + } + return env->NewStringUTF(params8.string()); } static void android_hardware_Camera_reconnect(JNIEnv *env, jobject thiz) @@ -816,6 +821,15 @@ static void android_hardware_Camera_enableFocusMoveCallback(JNIEnv *env, jobject } } +static bool android_hardware_Camera_isReleased(JNIEnv *env, jobject thiz) +{ + ALOGV("isReleased"); + sp<Camera> camera = get_native_camera(env, thiz, NULL); + if (camera == 0) return true; + + return (camera->sendCommand(CAMERA_CMD_PING, 0, 0) != NO_ERROR); +} + //------------------------------------------------- static JNINativeMethod camMethods[] = { @@ -826,7 +840,7 @@ static JNINativeMethod camMethods[] = { "(ILandroid/hardware/Camera$CameraInfo;)V", (void*)android_hardware_Camera_getCameraInfo }, { "native_setup", - "(Ljava/lang/Object;I)V", + "(Ljava/lang/Object;IZZ)V", (void*)android_hardware_Camera_native_setup }, { "native_release", "()V", @@ -894,6 +908,9 @@ static JNINativeMethod camMethods[] = { { "enableFocusMoveCallback", "(I)V", (void *)android_hardware_Camera_enableFocusMoveCallback}, + { "isReleased", + "()Z", + (void *)android_hardware_Camera_isReleased}, }; struct field { |