diff options
author | Byunghun Jeon <bjeon@codeaurora.org> | 2016-06-08 14:41:47 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-06-29 10:32:03 -0700 |
commit | 3edd94c1f1fae0e89359a41abbb61858cafa4125 (patch) | |
tree | bcd72ee664f44b07873828926b8f3184c4d77341 /src/com/android/camera/SettingsManager.java | |
parent | f16a9497a188f42c5a5ad4f9710a6c44f79a0e28 (diff) | |
download | android_packages_apps_Snap-3edd94c1f1fae0e89359a41abbb61858cafa4125.tar.gz android_packages_apps_Snap-3edd94c1f1fae0e89359a41abbb61858cafa4125.tar.bz2 android_packages_apps_Snap-3edd94c1f1fae0e89359a41abbb61858cafa4125.zip |
SnapdragonCamera: Add face detection to camera2
Add face detection to camera2.
Receive face data from camera2 and use faceView UI to draw it
Change-Id: Id9c49ab6dd73de316398c57981cc0b9df0400b45
CRs-Fixed: 1025797
Diffstat (limited to 'src/com/android/camera/SettingsManager.java')
-rw-r--r-- | src/com/android/camera/SettingsManager.java | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java index ad13f6063..9b229d97d 100644 --- a/src/com/android/camera/SettingsManager.java +++ b/src/com/android/camera/SettingsManager.java @@ -103,6 +103,7 @@ public class SettingsManager implements ListMenu.SettingsListener { public static final String KEY_VIDEO_ROTATION = "pref_camera2_video_rotation_key"; public static final String KEY_VIDEO_TIME_LAPSE_FRAME_INTERVAL = "pref_camera2_video_time_lapse_frame_interval_key"; + public static final String KEY_FACE_DETECTION = "pref_camera2_facedetection_key"; private static final String TAG = "SnapCam_SettingsManager"; private static SettingsManager sInstance; @@ -461,6 +462,7 @@ public class SettingsManager implements ListMenu.SettingsListener { ListPreference audioEncoder = mPreferenceGroup.findPreference(KEY_AUDIO_ENCODER); ListPreference noiseReduction = mPreferenceGroup.findPreference(KEY_NOISE_REDUCTION); ListPreference videoFlash = mPreferenceGroup.findPreference(KEY_VIDEO_FLASH_MODE); + ListPreference faceDetection = mPreferenceGroup.findPreference(KEY_FACE_DETECTION); if (whiteBalance != null) { CameraSettings.filterUnsupportedOptions(mPreferenceGroup, @@ -531,6 +533,11 @@ public class SettingsManager implements ListMenu.SettingsListener { if (!isFlashAvailable(cameraId)) removePreference(mPreferenceGroup, KEY_VIDEO_FLASH_MODE); } + + if (faceDetection != null) { + if (!isFaceDetectionSupported(cameraId)) + removePreference(mPreferenceGroup, KEY_FACE_DETECTION); + } } private void buildExposureCompensation(int cameraId) { @@ -679,6 +686,21 @@ public class SettingsManager implements ListMenu.SettingsListener { } } + public boolean isFaceDetectionSupported(int id) { + int[] faceDetection = mCharacteristics.get(id).get + (CameraCharacteristics.STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES); + for (int value: faceDetection) { + if (value == CameraMetadata.STATISTICS_FACE_DETECT_MODE_SIMPLE) + return true; + } + return false; + } + + public boolean isFacingFront(int id) { + int facing = mCharacteristics.get(id).get(CameraCharacteristics.LENS_FACING); + return facing == CameraCharacteristics.LENS_FACING_FRONT; + } + public boolean isFlashSupported(int id) { return mCharacteristics.get(id).get(CameraCharacteristics.FLASH_INFO_AVAILABLE) && mValuesMap.get(KEY_FLASH_MODE) != null; |