diff options
-rw-r--r-- | core/java/android/hardware/Camera.java | 36 | ||||
-rw-r--r-- | include/ui/CameraParameters.h | 7 | ||||
-rw-r--r-- | libs/ui/CameraParameters.cpp | 2 |
3 files changed, 45 insertions, 0 deletions
diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java index 47c2cac..7adbbcb 100644 --- a/core/java/android/hardware/Camera.java +++ b/core/java/android/hardware/Camera.java @@ -723,6 +723,7 @@ public class Camera { private static final String KEY_FOCAL_LENGTH = "focal-length"; private static final String KEY_HORIZONTAL_VIEW_ANGLE = "horizontal-view-angle"; private static final String KEY_VERTICAL_VIEW_ANGLE = "vertical-view-angle"; + private static final String KEY_EXPOSURE_COMPENSATION = "exposure-compensation"; // Parameter key suffix for supported values. private static final String SUPPORTED_VALUES_SUFFIX = "-values"; @@ -1540,6 +1541,41 @@ public class Camera { } /** + * Gets the current exposure compensation setting. + * + * @return the current exposure compensation value multiplied by 100. + * null if exposure compensation is not supported. Ex: -100 + * means -1 EV. 130 means +1.3 EV. + * @hide + */ + public int getExposureCompensation() { + return getInt(KEY_EXPOSURE_COMPENSATION); + } + + /** + * Sets the exposure compensation. + * + * @param value exposure compensation multiplied by 100. Ex: -100 means + * -1 EV. 130 means +1.3 EV. + * @hide + */ + public void setExposureCompensation(int value) { + set(KEY_EXPOSURE_COMPENSATION, value); + } + + /** + * Gets the supported exposure compensation. + * + * @return a List of Integer constants. null if exposure compensation is + * not supported. The list is sorted from small to large. Ex: + * -100, -66, -33, 0, 33, 66, 100. + * @hide + */ + public List<Integer> getSupportedExposureCompensation() { + return splitInt(get(KEY_EXPOSURE_COMPENSATION + SUPPORTED_VALUES_SUFFIX)); + } + + /** * Gets current zoom value. This also works when smooth zoom is in * progress. * diff --git a/include/ui/CameraParameters.h b/include/ui/CameraParameters.h index 2c29bfb..e328f33 100644 --- a/include/ui/CameraParameters.h +++ b/include/ui/CameraParameters.h @@ -187,6 +187,13 @@ public: // Vertical angle of view in degrees. // Example value: "42.5". Read only. static const char KEY_VERTICAL_VIEW_ANGLE[]; + // Exposure compensation. The value is multiplied by 100. -100 means -1 EV. + // 130 means +1.3 EV. + // Example value: "0" or "133". Read/write. + static const char KEY_EXPOSURE_COMPENSATION[]; + // Supported exposure compensation. + // Example value: "-100,-66,-33,0,33,66,100". Read only. + static const char KEY_SUPPORTED_EXPOSURE_COMPENSATION[]; // Values for white balance settings. diff --git a/libs/ui/CameraParameters.cpp b/libs/ui/CameraParameters.cpp index c4958a0..493b9c1 100644 --- a/libs/ui/CameraParameters.cpp +++ b/libs/ui/CameraParameters.cpp @@ -59,6 +59,8 @@ const char CameraParameters::KEY_SUPPORTED_FOCUS_MODES[] = "focus-mode-values"; const char CameraParameters::KEY_FOCAL_LENGTH[] = "focal-length"; const char CameraParameters::KEY_HORIZONTAL_VIEW_ANGLE[] = "horizontal-view-angle"; const char CameraParameters::KEY_VERTICAL_VIEW_ANGLE[] = "vertical-view-angle"; +const char CameraParameters::KEY_EXPOSURE_COMPENSATION[] = "exposure-compensation"; +const char CameraParameters::KEY_SUPPORTED_EXPOSURE_COMPENSATION[] = "exposure-compensation-values"; // Values for white balance settings. const char CameraParameters::WHITE_BALANCE_AUTO[] = "auto"; |