diff options
| author | 2018-01-19 04:19:23 +0000 | |
|---|---|---|
| committer | 2018-01-19 04:19:23 +0000 | |
| commit | 98b6993af6ac09f8686adbc0c405350e36d68ff6 (patch) | |
| tree | 862df4fa9cffcdcc0f801d5886cd5d5e30048757 | |
| parent | e52851673117f2e486152c606b517637285b17aa (diff) | |
| parent | 2cf335798201ad9133c83da4cd0792bf93448413 (diff) | |
Merge "camera: Add external flash mode key"
| -rw-r--r-- | api/current.txt | 1 | ||||
| -rw-r--r-- | core/java/android/hardware/camera2/CameraMetadata.java | 14 | ||||
| -rw-r--r-- | core/java/android/hardware/camera2/CaptureRequest.java | 2 | ||||
| -rw-r--r-- | core/java/android/hardware/camera2/CaptureResult.java | 10 |
4 files changed, 25 insertions, 2 deletions
diff --git a/api/current.txt b/api/current.txt index b90d80ecefae..7b853a09c09b 100644 --- a/api/current.txt +++ b/api/current.txt @@ -15726,6 +15726,7 @@ package android.hardware.camera2 { field public static final int CONTROL_AE_MODE_ON_ALWAYS_FLASH = 3; // 0x3 field public static final int CONTROL_AE_MODE_ON_AUTO_FLASH = 2; // 0x2 field public static final int CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE = 4; // 0x4 + field public static final int CONTROL_AE_MODE_ON_EXTERNAL_FLASH = 5; // 0x5 field public static final int CONTROL_AE_PRECAPTURE_TRIGGER_CANCEL = 2; // 0x2 field public static final int CONTROL_AE_PRECAPTURE_TRIGGER_IDLE = 0; // 0x0 field public static final int CONTROL_AE_PRECAPTURE_TRIGGER_START = 1; // 0x1 diff --git a/core/java/android/hardware/camera2/CameraMetadata.java b/core/java/android/hardware/camera2/CameraMetadata.java index 1c7f2896b167..2294ec56525f 100644 --- a/core/java/android/hardware/camera2/CameraMetadata.java +++ b/core/java/android/hardware/camera2/CameraMetadata.java @@ -1359,6 +1359,20 @@ public abstract class CameraMetadata<TKey> { */ public static final int CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE = 4; + /** + * <p>An external flash has been turned on.</p> + * <p>It informs the camera device that an external flash has been turned on, and that + * metering (and continuous focus if active) should be quickly recaculated to account + * for the external flash. Otherwise, this mode acts like ON.</p> + * <p>When the external flash is turned off, AE mode should be changed to one of the + * other available AE modes.</p> + * <p>If the camera device supports AE external flash mode, aeState must be + * FLASH_REQUIRED after the camera device finishes AE scan and it's too dark without + * flash.</p> + * @see CaptureRequest#CONTROL_AE_MODE + */ + public static final int CONTROL_AE_MODE_ON_EXTERNAL_FLASH = 5; + // // Enumeration values for CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER // diff --git a/core/java/android/hardware/camera2/CaptureRequest.java b/core/java/android/hardware/camera2/CaptureRequest.java index cf27c704f7e5..ce75fa52eff7 100644 --- a/core/java/android/hardware/camera2/CaptureRequest.java +++ b/core/java/android/hardware/camera2/CaptureRequest.java @@ -1076,6 +1076,7 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>> * <li>{@link #CONTROL_AE_MODE_ON_AUTO_FLASH ON_AUTO_FLASH}</li> * <li>{@link #CONTROL_AE_MODE_ON_ALWAYS_FLASH ON_ALWAYS_FLASH}</li> * <li>{@link #CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE ON_AUTO_FLASH_REDEYE}</li> + * <li>{@link #CONTROL_AE_MODE_ON_EXTERNAL_FLASH ON_EXTERNAL_FLASH}</li> * </ul></p> * <p><b>Available values for this device:</b><br> * {@link CameraCharacteristics#CONTROL_AE_AVAILABLE_MODES android.control.aeAvailableModes}</p> @@ -1093,6 +1094,7 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>> * @see #CONTROL_AE_MODE_ON_AUTO_FLASH * @see #CONTROL_AE_MODE_ON_ALWAYS_FLASH * @see #CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE + * @see #CONTROL_AE_MODE_ON_EXTERNAL_FLASH */ @PublicKey public static final Key<Integer> CONTROL_AE_MODE = diff --git a/core/java/android/hardware/camera2/CaptureResult.java b/core/java/android/hardware/camera2/CaptureResult.java index b6b0c907a8f9..237a92d3ca9f 100644 --- a/core/java/android/hardware/camera2/CaptureResult.java +++ b/core/java/android/hardware/camera2/CaptureResult.java @@ -691,6 +691,7 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> { * <li>{@link #CONTROL_AE_MODE_ON_AUTO_FLASH ON_AUTO_FLASH}</li> * <li>{@link #CONTROL_AE_MODE_ON_ALWAYS_FLASH ON_ALWAYS_FLASH}</li> * <li>{@link #CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE ON_AUTO_FLASH_REDEYE}</li> + * <li>{@link #CONTROL_AE_MODE_ON_EXTERNAL_FLASH ON_EXTERNAL_FLASH}</li> * </ul></p> * <p><b>Available values for this device:</b><br> * {@link CameraCharacteristics#CONTROL_AE_AVAILABLE_MODES android.control.aeAvailableModes}</p> @@ -708,6 +709,7 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> { * @see #CONTROL_AE_MODE_ON_AUTO_FLASH * @see #CONTROL_AE_MODE_ON_ALWAYS_FLASH * @see #CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE + * @see #CONTROL_AE_MODE_ON_EXTERNAL_FLASH */ @PublicKey public static final Key<Integer> CONTROL_AE_MODE = @@ -877,7 +879,7 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> { * </tr> * </tbody> * </table> - * <p>When {@link CaptureRequest#CONTROL_AE_MODE android.control.aeMode} is AE_MODE_ON_*:</p> + * <p>When {@link CaptureRequest#CONTROL_AE_MODE android.control.aeMode} is AE_MODE_ON*:</p> * <table> * <thead> * <tr> @@ -998,10 +1000,13 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> { * </tr> * </tbody> * </table> + * <p>If the camera device supports AE external flash mode (ON_EXTERNAL_FLASH is included in + * {@link CameraCharacteristics#CONTROL_AE_AVAILABLE_MODES android.control.aeAvailableModes}), aeState must be FLASH_REQUIRED after the camera device + * finishes AE scan and it's too dark without flash.</p> * <p>For the above table, the camera device may skip reporting any state changes that happen * without application intervention (i.e. mode switch, trigger, locking). Any state that * can be skipped in that manner is called a transient state.</p> - * <p>For example, for above AE modes (AE_MODE_ON_*), in addition to the state transitions + * <p>For example, for above AE modes (AE_MODE_ON*), in addition to the state transitions * listed in above table, it is also legal for the camera device to skip one or more * transient states between two results. See below table for examples:</p> * <table> @@ -1072,6 +1077,7 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> { * Present on all camera devices that report being at least {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED HARDWARE_LEVEL_LIMITED} devices in the * {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL android.info.supportedHardwareLevel} key</p> * + * @see CameraCharacteristics#CONTROL_AE_AVAILABLE_MODES * @see CaptureRequest#CONTROL_AE_LOCK * @see CaptureRequest#CONTROL_AE_MODE * @see CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER |