diff options
author | Wu-cheng Li <wuchengli@google.com> | 2009-09-10 16:49:17 +0800 |
---|---|---|
committer | Wu-cheng Li <wuchengli@google.com> | 2009-09-21 07:28:44 +0800 |
commit | ffe1cf251a4f8469695b8acfa37270684dc1b70c (patch) | |
tree | 61e5907167f3473dac5c4bd31da97f6e2137a522 /core/jni | |
parent | 2092361d586a20190c9137fb3cc9434cdc9ec99f (diff) | |
download | frameworks_base-ffe1cf251a4f8469695b8acfa37270684dc1b70c.zip frameworks_base-ffe1cf251a4f8469695b8acfa37270684dc1b70c.tar.gz frameworks_base-ffe1cf251a4f8469695b8acfa37270684dc1b70c.tar.bz2 |
Unhide Camera lock and unlock API.
Diffstat (limited to 'core/jni')
-rw-r--r-- | core/jni/android_hardware_Camera.cpp | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/core/jni/android_hardware_Camera.cpp b/core/jni/android_hardware_Camera.cpp index ce2b10c..6b92994 100644 --- a/core/jni/android_hardware_Camera.cpp +++ b/core/jni/android_hardware_Camera.cpp @@ -55,7 +55,7 @@ private: jobject mCameraJObjectWeak; // weak reference to java object jclass mCameraJClass; // strong reference to java class - sp<Camera> mCamera; // strong reference to native object + sp<Camera> mCamera; // strong reference to native object Mutex mLock; }; @@ -391,20 +391,26 @@ static void android_hardware_Camera_reconnect(JNIEnv *env, jobject thiz) } } -static jint android_hardware_Camera_lock(JNIEnv *env, jobject thiz) +static void android_hardware_Camera_lock(JNIEnv *env, jobject thiz) { LOGV("lock"); sp<Camera> camera = get_native_camera(env, thiz, NULL); - if (camera == 0) return INVALID_OPERATION; - return (jint) camera->lock(); + if (camera == 0) return; + + if (camera->lock() != NO_ERROR) { + jniThrowException(env, "java/lang/RuntimeException", "lock failed"); + } } -static jint android_hardware_Camera_unlock(JNIEnv *env, jobject thiz) +static void android_hardware_Camera_unlock(JNIEnv *env, jobject thiz) { LOGV("unlock"); sp<Camera> camera = get_native_camera(env, thiz, NULL); - if (camera == 0) return INVALID_OPERATION; - return (jint) camera->unlock(); + if (camera == 0) return; + + if (camera->unlock() != NO_ERROR) { + jniThrowException(env, "java/lang/RuntimeException", "unlock failed"); + } } //------------------------------------------------- @@ -450,10 +456,10 @@ static JNINativeMethod camMethods[] = { "()V", (void*)android_hardware_Camera_reconnect }, { "lock", - "()I", + "()V", (void*)android_hardware_Camera_lock }, { "unlock", - "()I", + "()V", (void*)android_hardware_Camera_unlock }, }; |