diff options
author | junjiez <junjiez@codeaurora.org> | 2016-11-16 11:09:28 +0800 |
---|---|---|
committer | weijiew <weijiew@codeaurora.org> | 2016-12-23 14:29:05 +0800 |
commit | d92a952b0cfe8e570f85112bc9a4c65729e7ffed (patch) | |
tree | 61a9612f5f2f194164b0a113f41b8380abf4d5dc /src | |
parent | 1fd9901abce1ff4eb09b5aaa3be22e1a0d846ff7 (diff) | |
download | android_packages_apps_Snap-d92a952b0cfe8e570f85112bc9a4c65729e7ffed.tar.gz android_packages_apps_Snap-d92a952b0cfe8e570f85112bc9a4c65729e7ffed.tar.bz2 android_packages_apps_Snap-d92a952b0cfe8e570f85112bc9a4c65729e7ffed.zip |
SnapdragonCamera:Add instant AEC to developer option
Add instant AEC support to developer option
Change-Id: Ia83a724966c453cfeb84e12c1728eab264bed6f8
CRs-Fixed: 1087493
Diffstat (limited to 'src')
-rwxr-xr-x | src/com/android/camera/CaptureModule.java | 13 | ||||
-rwxr-xr-x[-rw-r--r--] | src/com/android/camera/SettingsActivity.java | 8 | ||||
-rwxr-xr-x[-rw-r--r--] | src/com/android/camera/SettingsManager.java | 22 |
3 files changed, 42 insertions, 1 deletions
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java index 184b03a1d..64b97e6ed 100755 --- a/src/com/android/camera/CaptureModule.java +++ b/src/com/android/camera/CaptureModule.java @@ -204,6 +204,10 @@ public class CaptureModule implements CameraModule, PhotoController, public static CaptureRequest.Key<Long> ISO_EXP = new CaptureRequest.Key<>("org.codeaurora.qcamera3.iso_exp_priority.use_iso_exp_priority", Long.class); + public static CameraCharacteristics.Key<int[]> InstantAecAvailableModes = + new CameraCharacteristics.Key<>("org.codeaurora.qcamera3.instant_aec.instant_aec_available_modes", int[].class); + public static final CaptureRequest.Key<Integer> INSTANT_AEC_MODE = + new CaptureRequest.Key<>("org.codeaurora.qcamera3.instant_aec.instant_aec_mode", Integer.class); private boolean[] mTakingPicture = new boolean[MAX_NUM_CAM]; private int mControlAFMode = CameraMetadata.CONTROL_AF_MODE_CONTINUOUS_PICTURE; private int mLastResultAFState = -1; @@ -1836,6 +1840,7 @@ public class CaptureModule implements CameraModule, PhotoController, applyColorEffect(builder); applySceneMode(builder); applyZoom(builder, id); + applyInstantAEC(builder); } /** @@ -3450,6 +3455,14 @@ public class CaptureModule implements CameraModule, PhotoController, request.set(CaptureRequest.SCALER_CROP_REGION, cropRegionForZoom(id)); } + private void applyInstantAEC(CaptureRequest.Builder request) { + String value = mSettingsManager.getValue(SettingsManager.KEY_INSTANT_AEC); + if (value == null || value.equals("0")) + return; + int intValue = Integer.parseInt(value); + request.set(CaptureModule.INSTANT_AEC_MODE, intValue); + } + private boolean applyPreferenceToPreview(int cameraId, String key, String value) { if (!checkSessionAndBuilder(mCaptureSession[cameraId], mPreviewRequestBuilder[cameraId])) { return false; diff --git a/src/com/android/camera/SettingsActivity.java b/src/com/android/camera/SettingsActivity.java index e97073f58..61c8c46f1 100644..100755 --- a/src/com/android/camera/SettingsActivity.java +++ b/src/com/android/camera/SettingsActivity.java @@ -40,6 +40,7 @@ import android.preference.PreferenceCategory; import android.preference.PreferenceGroup; import android.preference.PreferenceActivity; import android.preference.PreferenceManager; +import android.preference.PreferenceScreen; import android.preference.SwitchPreference; import android.view.Window; import android.view.WindowManager; @@ -142,6 +143,7 @@ public class SettingsActivity extends PreferenceActivity { mDeveloperMenuEnabled = true; mSharedPreferences.edit().putBoolean(SettingsManager.KEY_DEVELOPER_MENU, true).apply(); Toast.makeText(SettingsActivity.this, "Camera developer option is enabled now", Toast.LENGTH_SHORT).show(); + recreate(); } } else { privateCounter = 0; @@ -161,12 +163,16 @@ public class SettingsActivity extends PreferenceActivity { } private void filterPreferences() { - String[] categories = {"photo", "video", "general"}; + String[] categories = {"photo", "video", "general", "developer"}; Set<String> set = mSettingsManager.getFilteredKeys(); if (!mDeveloperMenuEnabled) { set.add(SettingsManager.KEY_MONO_PREVIEW); set.add(SettingsManager.KEY_MONO_ONLY); set.add(SettingsManager.KEY_CLEARSIGHT); + + PreferenceScreen parent = getPreferenceScreen(); + PreferenceGroup developer = (PreferenceGroup)findPreference("developer"); + parent.removePreference(developer); } for (String key : set) { diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java index 3e2c7873d..ae4f8bdfb 100644..100755 --- a/src/com/android/camera/SettingsManager.java +++ b/src/com/android/camera/SettingsManager.java @@ -138,6 +138,7 @@ public class SettingsManager implements ListMenu.SettingsListener { public static final String KEY_DEVELOPER_MENU = "pref_camera2_developer_menu_key"; public static final String KEY_RESTORE_DEFAULT = "pref_camera2_restore_default_key"; public static final String KEY_FOCUS_DISTANCE = "pref_camera2_focus_distance_key"; + public static final String KEY_INSTANT_AEC = "pref_camera2_instant_aec_key"; private static final String TAG = "SnapCam_SettingsManager"; private static SettingsManager sInstance; @@ -582,6 +583,7 @@ public class SettingsManager implements ListMenu.SettingsListener { ListPreference audioEncoder = mPreferenceGroup.findPreference(KEY_AUDIO_ENCODER); ListPreference noiseReduction = mPreferenceGroup.findPreference(KEY_NOISE_REDUCTION); ListPreference faceDetection = mPreferenceGroup.findPreference(KEY_FACE_DETECTION); + ListPreference instantAec = mPreferenceGroup.findPreference(KEY_INSTANT_AEC); if (whiteBalance != null) { if (filterUnsupportedOptions(whiteBalance, getSupportedWhiteBalanceModes(cameraId))) { @@ -602,6 +604,13 @@ public class SettingsManager implements ListMenu.SettingsListener { } } + if (instantAec != null) { + if (filterUnsupportedOptions(instantAec, + getSupportedInstantAecAvailableModes(cameraId))) { + mFilteredKeys.add(instantAec.getKey()); + } + } + if (sceneMode != null) { if (filterUnsupportedOptions(sceneMode, getSupportedSceneModes(cameraId))) { mFilteredKeys.add(sceneMode.getKey()); @@ -1206,6 +1215,19 @@ public class SettingsManager implements ListMenu.SettingsListener { return false; } + public List<String> getSupportedInstantAecAvailableModes(int cameraId) { + int[] instantAecAvailableModes = mCharacteristics.get(cameraId).get( + CaptureModule.InstantAecAvailableModes); + if (instantAecAvailableModes == null) { + return null; + } + List<String> modes = new ArrayList<>(); + for (int i : instantAecAvailableModes) { + modes.add(""+i); + } + return modes; + } + private boolean filterUnsupportedOptions(ListPreference pref, List<String> supported) { // Remove the preference if the parameter is not supported if (supported == null) { |