summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xres/values/camera2arrays.xml10
-rwxr-xr-xres/values/qcomstrings.xml7
-rwxr-xr-xres/xml/capture_preferences.xml7
-rwxr-xr-xres/xml/setting_menu_preferences.xml9
-rwxr-xr-xsrc/com/android/camera/CaptureModule.java18
-rwxr-xr-xsrc/com/android/camera/SettingsManager.java1
6 files changed, 52 insertions, 0 deletions
diff --git a/res/values/camera2arrays.xml b/res/values/camera2arrays.xml
index 51a9c253e..2fc26031d 100755
--- a/res/values/camera2arrays.xml
+++ b/res/values/camera2arrays.xml
@@ -1191,4 +1191,14 @@ for time lapse recording -->
<item>@string/pref_camera2_deepportrait_entry_value_enable</item>
</string-array>
+ <string-array name="pref_camera2_earlypcr_entryvalues" translatable="false">
+ <item>@string/pref_camera2_earlypcr_entry_value_disable</item>
+ <item>@string/pref_camera2_earlypcr_entry_value_enable</item>
+ </string-array>
+
+ <string-array name="pref_camera2_earlypcr_entries" translatable="false">
+ <item>@string/pref_camera2_earlypcr_entry_disable</item>
+ <item>@string/pref_camera2_earlypcr_entry_enable</item>
+ </string-array>
+
</resources>
diff --git a/res/values/qcomstrings.xml b/res/values/qcomstrings.xml
index d2251a82e..308cd0cb5 100755
--- a/res/values/qcomstrings.xml
+++ b/res/values/qcomstrings.xml
@@ -1260,5 +1260,12 @@
<string name="pref_camera2_deepportrait_entry_value_disable" translatable="false">off</string>
<string name="pref_camera2_deepportrait_entry_value_enable" translatable="false">on</string>
<string name="pref_camera_scenemode_entry_deepportrait" translatable="false">Deepportrait</string>
+
+ <string name="pref_camera2_earlypcr_title" translatable="false">Early PCR</string>
+ <string name="pref_camera2_earlypcr_default" translatable="false">disable</string>
+ <string name="pref_camera2_earlypcr_entry_enable" translatable="false">enable</string>
+ <string name="pref_camera2_earlypcr_entry_disable" translatable="false">disable</string>
+ <string name="pref_camera2_earlypcr_entry_value_enable" translatable="false">enable</string>
+ <string name="pref_camera2_earlypcr_entry_value_disable" translatable="false">disable</string>
</resources>
diff --git a/res/xml/capture_preferences.xml b/res/xml/capture_preferences.xml
index b1666c51c..e5b0328f4 100755
--- a/res/xml/capture_preferences.xml
+++ b/res/xml/capture_preferences.xml
@@ -439,4 +439,11 @@
camera:title="@string/pref_camera2_video_hdr_title"
camera:entries="@array/pref_camera2_video_hdr_entries"
camera:entryValues="@array/pref_camera2_video_hdr_entryvalues" />
+
+ <ListPreference
+ camera:key="pref_camera2_earlypcr_key"
+ camera:defaultValue="@string/pref_camera2_earlypcr_default"
+ camera:title="@string/pref_camera2_earlypcr_title"
+ camera:entries="@array/pref_camera2_earlypcr_entries"
+ camera:entryValues="@array/pref_camera2_earlypcr_entryvalues" />
</PreferenceGroup>
diff --git a/res/xml/setting_menu_preferences.xml b/res/xml/setting_menu_preferences.xml
index ec078c1bc..6a3ae6c26 100755
--- a/res/xml/setting_menu_preferences.xml
+++ b/res/xml/setting_menu_preferences.xml
@@ -453,5 +453,14 @@
android:entryValues="@array/pref_camera2_video_hdr_entryvalues"
android:layout="@layout/preference"
android:summary="%s"/>
+
+ <ListPreference
+ android:key="pref_camera2_earlypcr_key"
+ android:defaultValue="@string/pref_camera2_earlypcr_default"
+ android:title="@string/pref_camera2_earlypcr_title"
+ android:entries="@array/pref_camera2_earlypcr_entries"
+ android:entryValues="@array/pref_camera2_earlypcr_entryvalues"
+ android:layout="@layout/preference"
+ android:summary="%s"/>
</PreferenceCategory>
</PreferenceScreen>
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java
index 952429d8b..14055fa61 100755
--- a/src/com/android/camera/CaptureModule.java
+++ b/src/com/android/camera/CaptureModule.java
@@ -298,6 +298,8 @@ public class CaptureModule implements CameraModule, PhotoController,
new CaptureRequest.Key<>("org.quic.camera.eis3enable.EISV3Enable", byte.class);
public static final CaptureRequest.Key<Byte> recording_end_stream =
new CaptureRequest.Key<>("org.quic.camera.recording.endOfStream", byte.class);
+ public static final CaptureRequest.Key<Byte> earlyPCR =
+ new CaptureRequest.Key<>("org.quic.camera.EarlyPCRenable.EarlyPCRenable", byte.class);
private boolean[] mTakingPicture = new boolean[MAX_NUM_CAM];
private int mControlAFMode = CameraMetadata.CONTROL_AF_MODE_CONTINUOUS_PICTURE;
@@ -2566,6 +2568,7 @@ public class CaptureModule implements CameraModule, PhotoController,
applySharpnessControlModes(builder);
applyExposureMeteringModes(builder);
applyHistogram(builder);
+ applyEarlyPCR(builder);
}
/**
@@ -3950,6 +3953,7 @@ public class CaptureModule implements CameraModule, PhotoController,
applyVideoEncoderProfile(builder);
applyVideoEIS(builder);
applyVideoHDR(builder);
+ applyEarlyPCR(builder);
}
private void applyVideoHDR(CaptureRequest.Builder builder) {
@@ -4829,6 +4833,20 @@ public class CaptureModule implements CameraModule, PhotoController,
}
}
+ private void applyEarlyPCR(CaptureRequest.Builder request) {
+ if (!mSettingsManager.isDeveloperEnabled()) {
+ return;//don't apply if not in dev mode
+ }
+ String value = mSettingsManager.getValue(SettingsManager.KEY_EARLY_PCR_VALUE);
+ if(value != null) {
+ try {
+ request.set(CaptureModule.earlyPCR, (byte) (value.equals("disable") ? 0x00 : 0x01));
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
private void applyExposureMeteringModes(CaptureRequest.Builder request) {
String value = mSettingsManager.getValue(SettingsManager.KEY_EXPOSURE_METERING_MODE);
if (value != null) {
diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java
index afb02eb89..f50f8bcb0 100755
--- a/src/com/android/camera/SettingsManager.java
+++ b/src/com/android/camera/SettingsManager.java
@@ -165,6 +165,7 @@ public class SettingsManager implements ListMenu.SettingsListener {
public static final String KEY_EIS_VALUE = "pref_camera2_eis_key";
public static final String KEY_FOVC_VALUE = "pref_camera2_fovc_key";
public static final String KEY_DEEPPORTRAIT_VALUE = "pref_camera2_deepportrait_key";
+ public static final String KEY_EARLY_PCR_VALUE = "pref_camera2_earlypcr_key";
public static final HashMap<String, Integer> KEY_ISO_INDEX = new HashMap<String, Integer>();
public static final String KEY_BSGC_DETECTION = "pref_camera2_bsgc_key";