summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorWu-cheng Li <wuchengli@google.com>2010-03-29 16:21:12 +0800
committerWu-cheng Li <wuchengli@google.com>2010-03-29 16:21:12 +0800
commit0ca25191c663ef229f1f475b17899f2017ed6980 (patch)
treef4e9d6450f00ae8da4cc604c5d8cabad786229a3 /core
parent4a65900cd69b79e6e47d275575eaeb5bb2487f9f (diff)
downloadframeworks_base-0ca25191c663ef229f1f475b17899f2017ed6980.zip
frameworks_base-0ca25191c663ef229f1f475b17899f2017ed6980.tar.gz
frameworks_base-0ca25191c663ef229f1f475b17899f2017ed6980.tar.bz2
Add some comments for zoom methods.
Also change RuntimeException to IllegalArgumentException. bug:2458926 Change-Id: I87af31f5f3f10244131a1117bd1725c2d292b587
Diffstat (limited to 'core')
-rw-r--r--core/java/android/hardware/Camera.java10
-rw-r--r--core/jni/android_hardware_Camera.cpp7
2 files changed, 14 insertions, 3 deletions
diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java
index 4dddfd8..abebdeb 100644
--- a/core/java/android/hardware/Camera.java
+++ b/core/java/android/hardware/Camera.java
@@ -532,11 +532,15 @@ public class Camera {
* called with value 3. Three ZoomCallback will be generated with zoom value
* 1, 2, and 3. The applications can call {@link #stopSmoothZoom} to stop
* the zoom earlier. The applications should not call startSmoothZoom again
- * or change the zoom value before zoom stops. This method is supported if
- * {@link android.hardware.Camera.Parameters#isSmoothZoomSupported} is true.
+ * or change the zoom value before zoom stops. If the passing zoom value
+ * equals to the current zoom value, no zoom callback will be generated.
+ * This method is supported if {@link
+ * android.hardware.Camera.Parameters#isSmoothZoomSupported} is true.
*
* @param value zoom value. The valid range is 0 to {@link
* android.hardware.Camera.Parameters#getMaxZoom}.
+ * @throws IllegalArgumentException if the zoom value is invalid.
+ * @throws RuntimeException if the method fails.
*/
public native final void startSmoothZoom(int value);
@@ -545,6 +549,8 @@ public class Camera {
* ZoomCallback} to know when the zoom is actually stopped. This method is
* supported if {@link
* android.hardware.Camera.Parameters#isSmoothZoomSupported} is true.
+ *
+ * @throws RuntimeException if the method fails.
*/
public native final void stopSmoothZoom();
diff --git a/core/jni/android_hardware_Camera.cpp b/core/jni/android_hardware_Camera.cpp
index 9c0e282..b85466b 100644
--- a/core/jni/android_hardware_Camera.cpp
+++ b/core/jni/android_hardware_Camera.cpp
@@ -530,7 +530,12 @@ static void android_hardware_Camera_startSmoothZoom(JNIEnv *env, jobject thiz, j
sp<Camera> camera = get_native_camera(env, thiz, NULL);
if (camera == 0) return;
- if (camera->sendCommand(CAMERA_CMD_START_SMOOTH_ZOOM, value, 0) != NO_ERROR) {
+ status_t rc = camera->sendCommand(CAMERA_CMD_START_SMOOTH_ZOOM, value, 0);
+ if (rc == BAD_VALUE) {
+ char msg[64];
+ sprintf(msg, "invalid zoom value=%d", value);
+ jniThrowException(env, "java/lang/IllegalArgumentException", msg);
+ } else if (rc != NO_ERROR) {
jniThrowException(env, "java/lang/RuntimeException", "start smooth zoom failed");
}
}