Merge "Add new camera focus mode FOCUS_MODE_CONTINUOUS_PICTURE."
diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java
index cab8457..d3dbb8d 100644
--- a/core/java/android/hardware/Camera.java
+++ b/core/java/android/hardware/Camera.java
@@ -1613,17 +1613,34 @@
/**
* Continuous auto focus mode intended for video recording. The camera
- * continuously tries to focus. This is ideal for shooting video.
- * Applications still can call {@link
- * #takePicture(Camera.ShutterCallback, Camera.PictureCallback,
- * Camera.PictureCallback)} in this mode but the subject may not be in
- * focus. Auto focus starts when the parameter is set. Applications
- * should not call {@link #autoFocus(AutoFocusCallback)} in this mode.
- * To stop continuous focus, applications should change the focus mode
- * to other modes.
+ * continuously tries to focus. This is the best choice for video
+ * recording because the focus changes smoothly . Applications still can
+ * call {@link #takePicture(Camera.ShutterCallback,
+ * Camera.PictureCallback, Camera.PictureCallback)} in this mode but the
+ * subject may not be in focus. Auto focus starts when the parameter is
+ * set. Applications should not call {@link
+ * #autoFocus(AutoFocusCallback)} in this mode. To stop continuous
+ * focus, applications should change the focus mode to other modes.
*/
public static final String FOCUS_MODE_CONTINUOUS_VIDEO = "continuous-video";
+ /**
+ * Continuous auto focus mode intended for taking pictures. The camera
+ * continuously tries to focus. The speed of focus change is more
+ * aggressive than {@link #FOCUS_MODE_CONTINUOUS_VIDEO}. Auto focus
+ * starts when the parameter is set. If applications call {@link
+ * #autoFocus(AutoFocusCallback)} in this mode, the focus callback will
+ * immediately return with a boolean that indicates whether the focus is
+ * sharp or not. The apps can then decide if they want to take a picture
+ * immediately or to change the focus mode to auto, and run a full
+ * autofocus cycle. To stop continuous focus, applications should change
+ * the focus mode to other modes.
+ *
+ * @see #FOCUS_MODE_CONTINUOUS_VIDEO
+ * @hide
+ */
+ public static final String FOCUS_MODE_CONTINUOUS_PICTURE = "continuous-picture";
+
// Indices for focus distance array.
/**
* The array index of near focus distance for use with
diff --git a/include/camera/CameraParameters.h b/include/camera/CameraParameters.h
index b661496..6c91dfc 100644
--- a/include/camera/CameraParameters.h
+++ b/include/camera/CameraParameters.h
@@ -597,13 +597,24 @@
// CameraHardwareInterface.autoFocus in this mode.
static const char FOCUS_MODE_EDOF[];
// Continuous auto focus mode intended for video recording. The camera
- // continuously tries to focus. This is ideal for shooting video.
- // Applications still can call CameraHardwareInterface.takePicture in this
- // mode but the subject may not be in focus. Auto focus starts when the
- // parameter is set. Applications should not call
- // CameraHardwareInterface.autoFocus in this mode. To stop continuous focus,
- // applications should change the focus mode to other modes.
+ // continuously tries to focus. This is the best choice for video
+ // recording because the focus changes smoothly . Applications still can
+ // call CameraHardwareInterface.takePicture in this mode but the subject may
+ // not be in focus. Auto focus starts when the parameter is set.
+ // Applications should not call CameraHardwareInterface.autoFocus in this
+ // mode. To stop continuous focus, applications should change the focus mode
+ // to other modes.
static const char FOCUS_MODE_CONTINUOUS_VIDEO[];
+ // Continuous auto focus mode intended for taking pictures. The camera
+ // continuously tries to focus. The speed of focus change is more aggressive
+ // than FOCUS_MODE_CONTINUOUS_VIDEO. Auto focus starts when the parameter is
+ // set. If applications call autoFocus in this mode, the focus callback will
+ // immediately return with a boolean that indicates the focus is sharp or
+ // not. The apps can then decide if they want to take a picture immediately
+ // or to change the focus mode to auto, and run a full autofocus cycle. To
+ // stop continuous focus, applications should change the focus mode to other
+ // modes.
+ static const char FOCUS_MODE_CONTINUOUS_PICTURE[];
private:
DefaultKeyedVector<String8,String8> mMap;
diff --git a/libs/camera/CameraParameters.cpp b/libs/camera/CameraParameters.cpp
index 51b96c1..0eb5d50 100644
--- a/libs/camera/CameraParameters.cpp
+++ b/libs/camera/CameraParameters.cpp
@@ -160,6 +160,7 @@
const char CameraParameters::FOCUS_MODE_FIXED[] = "fixed";
const char CameraParameters::FOCUS_MODE_EDOF[] = "edof";
const char CameraParameters::FOCUS_MODE_CONTINUOUS_VIDEO[] = "continuous-video";
+const char CameraParameters::FOCUS_MODE_CONTINUOUS_PICTURE[] = "continuous-picture";
CameraParameters::CameraParameters()
: mMap()