Add SCENE_MODE_BARCODE and FOCUS_MODE_EDOF.
bug:2544367
Change-Id: If122a7745e080f9e4bffb15dc4930d71f0421867
diff --git a/api/current.xml b/api/current.xml
index b256d3f..a2063b5 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -72876,6 +72876,17 @@
visibility="public"
>
</field>
+<field name="FOCUS_MODE_EDOF"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value=""edof""
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="FOCUS_MODE_FIXED"
type="java.lang.String"
transient="false"
@@ -72931,6 +72942,17 @@
visibility="public"
>
</field>
+<field name="SCENE_MODE_BARCODE"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value=""barcode""
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="SCENE_MODE_BEACH"
type="java.lang.String"
transient="false"
diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java
index 2495619..8687a89 100644
--- a/core/java/android/hardware/Camera.java
+++ b/core/java/android/hardware/Camera.java
@@ -824,6 +824,12 @@
public static final String SCENE_MODE_PARTY = "party";
public static final String SCENE_MODE_CANDLELIGHT = "candlelight";
+ /**
+ * Applications are looking for a barcode. Camera driver will be
+ * optimized for barcode reading.
+ */
+ public static final String SCENE_MODE_BARCODE = "barcode";
+
// Values for focus mode settings.
/**
* Auto-focus mode.
@@ -845,6 +851,13 @@
*/
public static final String FOCUS_MODE_FIXED = "fixed";
+ /**
+ * Extended depth of field (EDOF). Focusing is done digitally and
+ * continuously. Applications should not call {@link
+ * #autoFocus(AutoFocusCallback)} in this mode.
+ */
+ public static final String FOCUS_MODE_EDOF = "edof";
+
// Formats for setPreviewFormat and setPictureFormat.
private static final String PIXEL_FORMAT_YUV422SP = "yuv422sp";
private static final String PIXEL_FORMAT_YUV420SP = "yuv420sp";
@@ -1507,9 +1520,11 @@
}
/**
- * Sets the scene mode. Other parameters may be changed after changing
- * scene mode. For example, flash and supported flash mode may be
- * changed to "off" in night scene mode. After setting scene mode,
+ * Sets the scene mode. Changing scene mode may override other
+ * parameters (such as flash mode, focus mode, white balance). For
+ * example, suppose originally flash mode is on and supported flash
+ * modes are on/off. In night scene mode, both flash mode and supported
+ * flash mode may be changed to off. After setting scene mode,
* applications should call getParameters to know if some parameters are
* changed.
*
diff --git a/include/camera/CameraParameters.h b/include/camera/CameraParameters.h
index a7568d7..3b0e9e5 100644
--- a/include/camera/CameraParameters.h
+++ b/include/camera/CameraParameters.h
@@ -289,6 +289,9 @@
static const char SCENE_MODE_SPORTS[];
static const char SCENE_MODE_PARTY[];
static const char SCENE_MODE_CANDLELIGHT[];
+ // Applications are looking for a barcode. Camera driver will be optimized
+ // for barcode reading.
+ static const char SCENE_MODE_BARCODE[];
// Formats for setPreviewFormat and setPictureFormat.
static const char PIXEL_FORMAT_YUV422SP[];
@@ -309,6 +312,10 @@
// focus, which is usually at hyperfocal distance. Applications should
// not call CameraHardwareInterface.autoFocus in this mode.
static const char FOCUS_MODE_FIXED[];
+ // Extended depth of field (EDOF). Focusing is done digitally and
+ // continuously. Applications should not call
+ // CameraHardwareInterface.autoFocus in this mode.
+ static const char FOCUS_MODE_EDOF[];
private:
DefaultKeyedVector<String8,String8> mMap;
diff --git a/libs/camera/CameraParameters.cpp b/libs/camera/CameraParameters.cpp
index 76a9715..b50d4d2 100644
--- a/libs/camera/CameraParameters.cpp
+++ b/libs/camera/CameraParameters.cpp
@@ -122,6 +122,7 @@
const char CameraParameters::SCENE_MODE_SPORTS[] = "sports";
const char CameraParameters::SCENE_MODE_PARTY[] = "party";
const char CameraParameters::SCENE_MODE_CANDLELIGHT[] = "candlelight";
+const char CameraParameters::SCENE_MODE_BARCODE[] = "barcode";
// Formats for setPreviewFormat and setPictureFormat.
const char CameraParameters::PIXEL_FORMAT_YUV422SP[] = "yuv422sp";
@@ -135,6 +136,7 @@
const char CameraParameters::FOCUS_MODE_INFINITY[] = "infinity";
const char CameraParameters::FOCUS_MODE_MACRO[] = "macro";
const char CameraParameters::FOCUS_MODE_FIXED[] = "fixed";
+const char CameraParameters::FOCUS_MODE_EDOF[] = "edof";
CameraParameters::CameraParameters()
: mMap()