Add some comments for zoom methods.

Also change RuntimeException to IllegalArgumentException.
bug:2458926

Change-Id: I87af31f5f3f10244131a1117bd1725c2d292b587
This commit is contained in:
Wu-cheng Li
2010-03-29 16:21:12 +08:00
parent 4a65900cd6
commit 0ca25191c6
3 changed files with 15 additions and 4 deletions

View File

@@ -532,11 +532,15 @@ public class Camera {
* called with value 3. Three ZoomCallback will be generated with zoom value * called with value 3. Three ZoomCallback will be generated with zoom value
* 1, 2, and 3. The applications can call {@link #stopSmoothZoom} to stop * 1, 2, and 3. The applications can call {@link #stopSmoothZoom} to stop
* the zoom earlier. The applications should not call startSmoothZoom again * the zoom earlier. The applications should not call startSmoothZoom again
* or change the zoom value before zoom stops. This method is supported if * or change the zoom value before zoom stops. If the passing zoom value
* {@link android.hardware.Camera.Parameters#isSmoothZoomSupported} is true. * 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 * @param value zoom value. The valid range is 0 to {@link
* android.hardware.Camera.Parameters#getMaxZoom}. * 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); 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 * ZoomCallback} to know when the zoom is actually stopped. This method is
* supported if {@link * supported if {@link
* android.hardware.Camera.Parameters#isSmoothZoomSupported} is true. * android.hardware.Camera.Parameters#isSmoothZoomSupported} is true.
*
* @throws RuntimeException if the method fails.
*/ */
public native final void stopSmoothZoom(); public native final void stopSmoothZoom();

View File

@@ -530,7 +530,12 @@ static void android_hardware_Camera_startSmoothZoom(JNIEnv *env, jobject thiz, j
sp<Camera> camera = get_native_camera(env, thiz, NULL); sp<Camera> camera = get_native_camera(env, thiz, NULL);
if (camera == 0) return; 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"); jniThrowException(env, "java/lang/RuntimeException", "start smooth zoom failed");
} }
} }

View File

@@ -208,7 +208,7 @@ public:
} }
virtual status_t sendCommand(int32_t cmd, int32_t arg1, int32_t arg2) virtual status_t sendCommand(int32_t cmd, int32_t arg1, int32_t arg2)
{ {
LOGD("sendCommand"); LOGV("sendCommand");
Parcel data, reply; Parcel data, reply;
data.writeInterfaceToken(ICamera::getInterfaceDescriptor()); data.writeInterfaceToken(ICamera::getInterfaceDescriptor());
data.writeInt32(cmd); data.writeInt32(cmd);