summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Eino-Ville Talvala <etalvala@google.com> 2012-09-11 11:06:12 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2012-09-11 11:06:13 -0700
commit6fc7275d0ede6d352854db8fff95ec611bd07416 (patch)
treeabb00d5bdf475fc136205613b2f45de4de835a14
parent06ee8cdec509590aeaddcfb30aa517ab369d59c5 (diff)
parent69fe527bea12f262bfb1a5838f40e3433ad3cb78 (diff)
Merge "Camera: Add enableShutterSound method." into jb-mr1-dev
-rw-r--r--core/java/android/hardware/Camera.java25
-rw-r--r--core/jni/android_hardware_Camera.cpp22
2 files changed, 47 insertions, 0 deletions
diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java
index 829620b46059..652356c02c37 100644
--- a/core/java/android/hardware/Camera.java
+++ b/core/java/android/hardware/Camera.java
@@ -1146,6 +1146,31 @@ public class Camera {
public native final void setDisplayOrientation(int degrees);
/**
+ * Enable or disable the default shutter sound when taking a picture.
+ *
+ * By default, the camera plays the system-defined camera shutter sound when
+ * {@link #takePicture} is called. Using this method, the shutter sound can
+ * be disabled. It is strongly recommended that an alternative shutter sound
+ * is played in the {@link ShutterCallback} when the system shutter sound is
+ * disabled.
+ *
+ * Note that devices may not always allow control of the camera shutter
+ * sound. If the shutter sound cannot be controlled, this method will return
+ * false.
+ *
+ * @param enabled whether the camera should play the system shutter sound
+ * when {@link #takePicture takePicture} is called.
+ * @return true if the shutter sound state was successfully changed. False
+ * if the shutter sound cannot be controlled; in this case, the
+ * application should not play its own shutter sound since the
+ * system shutter sound will play when a picture is taken.
+ * @see #takePicture
+ * @see ShutterCallback
+ * @hide
+ */
+ public native final boolean enableShutterSound(boolean enabled);
+
+ /**
* Callback interface for zoom changes during a smooth zoom operation.
*
* @see #setZoomChangeListener(OnZoomChangeListener)
diff --git a/core/jni/android_hardware_Camera.cpp b/core/jni/android_hardware_Camera.cpp
index 6cd8955d366b..e1e97a19cf0f 100644
--- a/core/jni/android_hardware_Camera.cpp
+++ b/core/jni/android_hardware_Camera.cpp
@@ -781,6 +781,25 @@ static void android_hardware_Camera_setDisplayOrientation(JNIEnv *env, jobject t
}
}
+static jboolean android_hardware_Camera_enableShutterSound(JNIEnv *env, jobject thiz,
+ jboolean enabled)
+{
+ ALOGV("enableShutterSound");
+ sp<Camera> camera = get_native_camera(env, thiz, NULL);
+ if (camera == 0) return JNI_FALSE;
+
+ int32_t value = (enabled == JNI_TRUE) ? 1 : 0;
+ status_t rc = camera->sendCommand(CAMERA_CMD_ENABLE_SHUTTER_SOUND, value, 0);
+ if (rc == NO_ERROR) {
+ return JNI_TRUE;
+ } else if (rc == PERMISSION_DENIED) {
+ return JNI_FALSE;
+ } else {
+ jniThrowRuntimeException(env, "enable shutter sound failed");
+ return JNI_FALSE;
+ }
+}
+
static void android_hardware_Camera_startFaceDetection(JNIEnv *env, jobject thiz,
jint type)
{
@@ -890,6 +909,9 @@ static JNINativeMethod camMethods[] = {
{ "setDisplayOrientation",
"(I)V",
(void *)android_hardware_Camera_setDisplayOrientation },
+ { "enableShutterSound",
+ "(Z)Z",
+ (void *)android_hardware_Camera_enableShutterSound },
{ "_startFaceDetection",
"(I)V",
(void *)android_hardware_Camera_startFaceDetection },