Merge "Camera: Add PASSIVE_UNFOCUSED AF state" into klp-dev
diff --git a/audio_effects/include/audio_effects/effect_visualizer.h b/audio_effects/include/audio_effects/effect_visualizer.h
index 7c74f35..cfd99f5 100644
--- a/audio_effects/include/audio_effects/effect_visualizer.h
+++ b/audio_effects/include/audio_effects/effect_visualizer.h
@@ -36,24 +36,35 @@
 #define VISUALIZER_SCALING_MODE_NORMALIZED 0
 #define VISUALIZER_SCALING_MODE_AS_PLAYED  1
 
+#define MEASUREMENT_MODE_NONE      0x0
+#define MEASUREMENT_MODE_PEAK_RMS  0x1
+
+#define MEASUREMENT_IDX_PEAK 0
+#define MEASUREMENT_IDX_RMS  1
+
 /* enumerated parameters for Visualizer effect */
 typedef enum
 {
     VISUALIZER_PARAM_CAPTURE_SIZE, // Sets the number PCM samples in the capture.
     VISUALIZER_PARAM_SCALING_MODE, // Sets the way the captured data is scaled
     VISUALIZER_PARAM_LATENCY,      // Informs the visualizer about the downstream latency
+    VISUALIZER_PARAM_MEASUREMENT_MODE, // Sets which measurements are to be made
 } t_visualizer_params;
 
 /* commands */
 typedef enum
 {
     VISUALIZER_CMD_CAPTURE = EFFECT_CMD_FIRST_PROPRIETARY, // Gets the latest PCM capture.
+    VISUALIZER_CMD_MEASURE, // Gets the current measurements
 }t_visualizer_cmds;
 
 // VISUALIZER_CMD_CAPTURE retrieves the latest PCM snapshot captured by the visualizer engine.
 // It returns the number of samples specified by VISUALIZER_PARAM_CAPTURE_SIZE
 // in 8 bit unsigned format (0 = 0x80)
 
+// VISUALIZER_CMD_MEASURE retrieves the lastest measurements as int32_t saved in the
+// MEASUREMENT_IDX_* array index order.
+
 #if __cplusplus
 }  // extern "C"
 #endif
diff --git a/camera/docs/CameraPropertiesKeys.mako b/camera/docs/CameraCharacteristicsKeys.mako
similarity index 94%
rename from camera/docs/CameraPropertiesKeys.mako
rename to camera/docs/CameraCharacteristicsKeys.mako
index ee10f45..5d2d7e4 100644
--- a/camera/docs/CameraPropertiesKeys.mako
+++ b/camera/docs/CameraCharacteristicsKeys.mako
@@ -14,4 +14,4 @@
 ## See the License for the specific language governing permissions and
 ## limitations under the License.
 ##
-<%include file="CameraMetadataKeys.mako" args="java_class='CameraProperties', xml_kind='static'" />
+<%include file="CameraMetadataKeys.mako" args="java_class='CameraCharacteristics', xml_kind='static'" />
diff --git a/camera/docs/CameraPropertiesTest.mako b/camera/docs/CameraCharacteristicsTest.mako
similarity index 70%
rename from camera/docs/CameraPropertiesTest.mako
rename to camera/docs/CameraCharacteristicsTest.mako
index c730b87..80cb31e 100644
--- a/camera/docs/CameraPropertiesTest.mako
+++ b/camera/docs/CameraCharacteristicsTest.mako
@@ -18,25 +18,29 @@
 /**
  * ! Do not edit this file directly !
  *
- * Generated automatically from system/media/camera/docs/CameraPropertiesTest.mako.
- * This file contains only the auto-generated CameraProperties CTS tests; it does
+ * Generated automatically from system/media/camera/docs/CameraCharacteristicsTest.mako.
+ * This file contains only the auto-generated CameraCharacteristics CTS tests; it does
  * not contain any additional manual tests, which would be in a separate file.
  */
 
 package android.hardware.camera2.cts;
 
 import android.content.Context;
+import android.hardware.camera2.CameraCharacteristics;
 import android.hardware.camera2.CameraDevice;
 import android.hardware.camera2.CameraManager;
-import android.hardware.camera2.CameraProperties;
+import android.os.Handler;
 import android.test.AndroidTestCase;
 
 /**
- * Auto-generated CTS test for CameraProperties fields.
+ * Auto-generated CTS test for CameraCharacteristics fields.
  */
-public class CameraPropertiesTest extends AndroidTestCase {
+public class CameraCharacteristicsTest extends AndroidTestCase {
     private CameraManager mCameraManager;
 
+    private CameraTestThread mLooperThread;
+    private Handler mHandler;
+
     @Override
     public void setContext(Context context) {
         super.setContext(context);
@@ -47,22 +51,28 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
+
+        mLooperThread = new CameraTestThread();
+        mHandler = mLooperThread.start();
     }
 
     @Override
     protected void tearDown() throws Exception {
+        mLooperThread.close();
+        mHandler = null;
+
         super.tearDown();
     }
     % for sec in find_all_sections(metadata):
       % for entry in find_unique_entries(sec):
         % if entry.kind == 'static' and entry.visibility == "public":
 
-    public void testCameraProperties${pascal_case(entry.name)}() throws Exception {
+    public void testCameraCharacteristics${pascal_case(entry.name)}() throws Exception {
         String[] ids = mCameraManager.getCameraIdList();
         for (int i = 0; i < ids.length; i++) {
-            CameraDevice camera = mCameraManager.openCamera(ids[i]);
+            CameraDevice camera = CameraTestUtils.openCamera(mCameraManager, ids[i], mHandler);
             assertNotNull("Failed to open camera", camera);
-            CameraProperties props;
+            CameraCharacteristics props;
             try {
                 props = camera.getProperties();
             }
@@ -72,7 +82,7 @@
             assertNotNull(String.format("Can't get camera properties from: ID %s", ids[i]),
                                         props);
             assertNotNull("Invalid property: ${entry.name}",
-                    props.get(CameraProperties.${jkey_identifier(entry.name)}));
+                    props.get(CameraCharacteristics.${jkey_identifier(entry.name)}));
         }
     }
         % endif
diff --git a/camera/docs/CameraMetadataEnums.mako b/camera/docs/CameraMetadataEnums.mako
index 831d61d..a4bc8c7 100644
--- a/camera/docs/CameraMetadataEnums.mako
+++ b/camera/docs/CameraMetadataEnums.mako
@@ -77,7 +77,7 @@
 
 ##
 ## Static properties only
-${single_kind_keys('static','CameraProperties')}\
+${single_kind_keys('static','CameraCharacteristics')}\
 ##
 ## Controls properties only
 ${single_kind_keys('controls','CaptureRequest')}\
diff --git a/camera/docs/CameraMetadataKeys.mako b/camera/docs/CameraMetadataKeys.mako
index a390431..5e2f1c5 100644
--- a/camera/docs/CameraMetadataKeys.mako
+++ b/camera/docs/CameraMetadataKeys.mako
@@ -16,7 +16,7 @@
 ##
 \
 ## These sections of metadata Key definitions are inserted into the middle of
-## android.hardware.camera2.CameraProperties, CaptureRequest, and CaptureResult.
+## android.hardware.camera2.CameraCharacteristics, CaptureRequest, and CaptureResult.
 <%page args="java_class, xml_kind" />\
     /*@O~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~
      * The key entries below this point are generated from metadata
@@ -72,7 +72,7 @@
 </%def>\
 ##
 ## Static properties only
-##${single_kind_keys('CameraPropertiesKeys', 'static')}
+##${single_kind_keys('CameraCharacteristicsKeys', 'static')}
 ##
 ## Controls properties only
 ##${single_kind_keys('CaptureRequestKeys', 'controls')}
diff --git a/camera/docs/docs.html b/camera/docs/docs.html
index 2e04969..f8981e8 100644
--- a/camera/docs/docs.html
+++ b/camera/docs/docs.html
@@ -6559,7 +6559,10 @@
 
             <td class="entry_description">
               A frame counter set by the framework.<wbr> Must
-          be maintained unchanged in output frame
+          be maintained unchanged in output frame.<wbr> This value monotonically
+          increases with every new result (that is,<wbr> each new result has a unique
+          frameCount value).<wbr>
+          
             </td>
 
             <td class="entry_units">
@@ -6949,8 +6952,9 @@
             </td> <!-- entry_type -->
 
             <td class="entry_description">
-              Number of frames captured since
-          open()
+              A frame counter set by the framework.<wbr> This value monotonically
+          increases with every new result (that is,<wbr> each new result has a unique
+          frameCount value).<wbr>
             </td>
 
             <td class="entry_units">
diff --git a/camera/docs/metadata-generate b/camera/docs/metadata-generate
index 9b17b2c..85c1809 100755
--- a/camera/docs/metadata-generate
+++ b/camera/docs/metadata-generate
@@ -21,7 +21,10 @@
 #   docs.html
 #   ../src/camera_metadata_tag_info.c
 #   ../src/camera_metadata_tags.h
-#   ../../../../cts/tests/tests/hardware/src/android/hardware/camera2/cts/CameraPropertiesTest.java
+#   ../../../../cts/tests/tests/hardware/src/android/hardware/camera2/cts/CameraCharacteristicsTest.java
+#   ../../../../frameworks/base/core/java/android/hardware/camera2/CameraCharacteristics.java
+#   ../../../../frameworks/base/core/java/android/hardware/camera2/CaptureRequest.java
+#   ../../../../frameworks/base/core/java/android/hardware/camera2/CaptureResult.java
 
 if [[ -z $ANDROID_BUILD_TOP ]]; then
     echo "Please source build/envsetup.sh before running script" >& 2
@@ -163,17 +166,17 @@
 # Generate Java API definitions
 mkdir -p "${outdir}"
 gen_file_abs CameraMetadataEnums.mako "$outdir/CameraMetadataEnums.java.part" no || exit 1
-gen_file_abs CameraPropertiesKeys.mako "$outdir/CameraPropertiesKeys.java.part" no || exit 1
+gen_file_abs CameraCharacteristicsKeys.mako "$outdir/CameraCharacteristicsKeys.java.part" no || exit 1
 gen_file_abs CaptureRequestKeys.mako "$outdir/CaptureRequestKeys.java.part" no || exit 1
 gen_file_abs CaptureResultKeys.mako "$outdir/CaptureResultKeys.java.part" no || exit 1
 
 insert_file "$outdir/CameraMetadataEnums.java.part" "$fwkdir/CameraMetadata.java" || exit 1
-insert_file "$outdir/CameraPropertiesKeys.java.part" "$fwkdir/CameraProperties.java" || exit 1
+insert_file "$outdir/CameraCharacteristicsKeys.java.part" "$fwkdir/CameraCharacteristics.java" || exit 1
 insert_file "$outdir/CaptureRequestKeys.java.part" "$fwkdir/CaptureRequest.java" || exit 1
 insert_file "$outdir/CaptureResultKeys.java.part" "$fwkdir/CaptureResult.java" || exit 1
 
 # Generate CTS tests
-gen_file_abs CameraPropertiesTest.mako "$ctsdir/CameraPropertiesTest.java" || exit 1
+gen_file_abs CameraCharacteristicsTest.mako "$ctsdir/CameraCharacteristicsTest.java" || exit 1
 
 echo ""
 echo "===================================================="
diff --git a/camera/docs/metadata_properties.xml b/camera/docs/metadata_properties.xml
index 49ef0ee..62f3c2d 100644
--- a/camera/docs/metadata_properties.xml
+++ b/camera/docs/metadata_properties.xml
@@ -1478,7 +1478,10 @@
       <controls>
         <entry name="frameCount" type="int32" visibility="system">
           <description>A frame counter set by the framework. Must
-          be maintained unchanged in output frame</description>
+          be maintained unchanged in output frame. This value monotonically
+          increases with every new result (that is, each new result has a unique
+          frameCount value).
+          </description>
           <units>incrementing integer</units>
           <range>Any int</range>
         </entry>
@@ -1591,8 +1594,9 @@
       </static>
       <dynamic>
         <entry name="frameCount" type="int32" visibility="public">
-          <description>Number of frames captured since
-          open()</description>
+          <description>A frame counter set by the framework. This value monotonically
+          increases with every new result (that is, each new result has a unique
+          frameCount value).</description>
           <units>count of frames</units>
           <range>&gt; 0</range>
           <notes>Reset on release()</notes>