summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWu-cheng Li <wuchengli@google.com>2010-06-03 16:34:18 +0800
committerWu-cheng Li <wuchengli@google.com>2010-06-03 16:34:18 +0800
commit2b8aba228e6ebd45fe29714baa477f3ea2320095 (patch)
tree526afba8fc95868ce67ff91554a81b1ad8a7d6ae
parentba0fab325cd8379378a2c8ad14dd1c44bf2760f3 (diff)
downloadframeworks_av-2b8aba228e6ebd45fe29714baa477f3ea2320095.zip
frameworks_av-2b8aba228e6ebd45fe29714baa477f3ea2320095.tar.gz
frameworks_av-2b8aba228e6ebd45fe29714baa477f3ea2320095.tar.bz2
Add camera metering mode API.
bug:2737111 Change-Id: Ie986fee56ebeaaed2d2efb757701dfe3ffdec8d8
-rw-r--r--camera/CameraParameters.cpp6
-rw-r--r--include/camera/CameraParameters.h13
2 files changed, 19 insertions, 0 deletions
diff --git a/camera/CameraParameters.cpp b/camera/CameraParameters.cpp
index e4d5bb3..c11d18f 100644
--- a/camera/CameraParameters.cpp
+++ b/camera/CameraParameters.cpp
@@ -71,6 +71,7 @@ const char CameraParameters::KEY_ZOOM_SUPPORTED[] = "zoom-supported";
const char CameraParameters::KEY_SMOOTH_ZOOM_SUPPORTED[] = "smooth-zoom-supported";
const char CameraParameters::KEY_FOCUS_DISTANCES[] = "focus-distances";
const char CameraParameters::KEY_VIDEO_FRAME_FORMAT[] = "video-frame-format";
+const char CameraParameters::KEY_METERING_MODE[] = "metering-mode";
const char CameraParameters::TRUE[] = "true";
const char CameraParameters::FOCUS_DISTANCE_INFINITY[] = "Infinity";
@@ -142,6 +143,11 @@ const char CameraParameters::FOCUS_MODE_FIXED[] = "fixed";
const char CameraParameters::FOCUS_MODE_EDOF[] = "edof";
const char CameraParameters::FOCUS_MODE_CONTINUOUS[] = "continuous";
+// Values for metering mode settings.
+const char METERING_MODE_CENTER_WEIGHTED[] = "center-weighted";
+const char METERING_MODE_FRAME_AVERAGE[] = "frame-average";
+const char METERING_MODE_SPOT[] = "spot";
+
CameraParameters::CameraParameters()
: mMap()
{
diff --git a/include/camera/CameraParameters.h b/include/camera/CameraParameters.h
index 2b7a86e..4840b40 100644
--- a/include/camera/CameraParameters.h
+++ b/include/camera/CameraParameters.h
@@ -250,6 +250,10 @@ public:
// Example value: "yuv420sp" or PIXEL_FORMAT_XXX constants. Read only.
static const char KEY_VIDEO_FRAME_FORMAT[];
+ // Metering mode. This affects how camera determines exposure.
+ // Example value: "spot" or METERING_MODE_XXX constants. Read/write.
+ static const char KEY_METERING_MODE[];
+
// Value for KEY_ZOOM_SUPPORTED or KEY_SMOOTH_ZOOM_SUPPORTED.
static const char TRUE[];
@@ -347,6 +351,15 @@ public:
// callback will be only called once as soon as the picture is in focus.
static const char FOCUS_MODE_CONTINUOUS[];
+ // The camera determines the exposure by giving more weight to the
+ // central part of the scene.
+ static const char METERING_MODE_CENTER_WEIGHTED[];
+ // The camera determines the exposure by averaging the entire scene,
+ // giving no weighting to any particular area.
+ static const char METERING_MODE_FRAME_AVERAGE[];
+ // The camera determines the exposure by a very small area of the scene,
+ // typically the center.
+ static const char METERING_MODE_SPOT[];
private:
DefaultKeyedVector<String8,String8> mMap;