diff options
-rwxr-xr-x | res/values/camera2arrays.xml | 10 | ||||
-rwxr-xr-x | res/values/qcomstrings.xml | 7 | ||||
-rwxr-xr-x | res/xml/capture_preferences.xml | 7 | ||||
-rwxr-xr-x | res/xml/setting_menu_preferences.xml | 9 | ||||
-rwxr-xr-x | src/com/android/camera/CaptureModule.java | 18 | ||||
-rwxr-xr-x | src/com/android/camera/SettingsManager.java | 1 |
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"; |