summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorjunjiez <junjiez@codeaurora.org>2016-11-16 11:09:28 +0800
committerweijiew <weijiew@codeaurora.org>2016-12-23 14:29:05 +0800
commitd92a952b0cfe8e570f85112bc9a4c65729e7ffed (patch)
tree61a9612f5f2f194164b0a113f41b8380abf4d5dc /src
parent1fd9901abce1ff4eb09b5aaa3be22e1a0d846ff7 (diff)
downloadandroid_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-xsrc/com/android/camera/CaptureModule.java13
-rwxr-xr-x[-rw-r--r--]src/com/android/camera/SettingsActivity.java8
-rwxr-xr-x[-rw-r--r--]src/com/android/camera/SettingsManager.java22
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) {