diff options
author | Steve Kondik <shade@chemlab.org> | 2013-05-04 03:07:51 -0700 |
---|---|---|
committer | Steve Kondik <shade@chemlab.org> | 2013-05-04 03:07:51 -0700 |
commit | 93df8a71f87985a9aa3dc142b430c365e2a53276 (patch) | |
tree | 437fa8a8417d94a898fd4dd63503362bd8ffb88c | |
parent | 26caff32fde6413ce7f14a543d4300bc252af6ae (diff) | |
download | frameworks_base-93df8a71f87985a9aa3dc142b430c365e2a53276.zip frameworks_base-93df8a71f87985a9aa3dc142b430c365e2a53276.tar.gz frameworks_base-93df8a71f87985a9aa3dc142b430c365e2a53276.tar.bz2 |
camera: Add support for sending raw commands
* Certain camera drivers need magic commands to select special modes
such as ZSL or HDR. Add support for sending raw commands from
applications.
Change-Id: I512a765c7a67ffd2877e465cf6493ffc2b3b54ac
-rw-r--r-- | core/java/android/hardware/Camera.java | 6 | ||||
-rw-r--r-- | core/jni/android_hardware_Camera.cpp | 14 |
2 files changed, 20 insertions, 0 deletions
diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java index 1d95714..50aa0b8 100644 --- a/core/java/android/hardware/Camera.java +++ b/core/java/android/hardware/Camera.java @@ -997,6 +997,12 @@ public class Camera { private native void enableFocusMoveCallback(int enable); /** + * Send a raw command to the camera driver + * @hide + */ + public native void sendRawCommand(int arg1, int arg2, int arg3); + + /** * Callback interface used to signal the moment of actual image capture. * * @see #takePicture(ShutterCallback, PictureCallback, PictureCallback, PictureCallback) diff --git a/core/jni/android_hardware_Camera.cpp b/core/jni/android_hardware_Camera.cpp index d8fc55e..e420a2b 100644 --- a/core/jni/android_hardware_Camera.cpp +++ b/core/jni/android_hardware_Camera.cpp @@ -852,6 +852,17 @@ static void android_hardware_Camera_enableFocusMoveCallback(JNIEnv *env, jobject #endif } +static void android_hardware_Camera_sendRawCommand(JNIEnv *env, jobject thiz, jint arg1, jint arg2, jint arg3) +{ + ALOGV("sendRawCommand %d, %d, %d", arg1, arg2, arg3); + sp<Camera> camera = get_native_camera(env, thiz, NULL); + if (camera == 0) return; + + if (camera->sendCommand(arg1, arg2, arg3) != NO_ERROR) { + jniThrowRuntimeException(env, "send raw command failed"); + } +} + //------------------------------------------------- static JNINativeMethod camMethods[] = { @@ -933,6 +944,9 @@ static JNINativeMethod camMethods[] = { { "enableFocusMoveCallback", "(I)V", (void *)android_hardware_Camera_enableFocusMoveCallback}, + { "sendRawCommand", + "(III)V", + (void *)android_hardware_Camera_sendRawCommand}, }; struct field { |