diff options
author | Weijie Wang <weijiew@codeaurora.org> | 2017-07-20 20:03:18 +0800 |
---|---|---|
committer | Weijie Wang <weijiew@codeaurora.org> | 2017-07-26 14:38:49 +0800 |
commit | 1c674465eb440f02f87260d005891898d671af87 (patch) | |
tree | 5db0ed9d89a762e7f80b0fbaa3d7d4bc472e1564 /src | |
parent | 7a71e6b83009f259a52ef9b1b3360cab97d0d17b (diff) | |
download | android_packages_apps_Snap-1c674465eb440f02f87260d005891898d671af87.tar.gz android_packages_apps_Snap-1c674465eb440f02f87260d005891898d671af87.tar.bz2 android_packages_apps_Snap-1c674465eb440f02f87260d005891898d671af87.zip |
SnapdragonCamera: Add ZSL in HAL mode
Add ZSL in HAL mode
Change-Id: Ifa803c970cfc559723e3599821b74cc8584782a2
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/camera/CaptureModule.java | 72 | ||||
-rwxr-xr-x | src/com/android/camera/SettingsManager.java | 20 | ||||
-rw-r--r-- | src/com/android/camera/imageprocessor/PostProcessor.java | 2 | ||||
-rw-r--r-- | src/com/android/camera/util/PersistUtil.java | 6 |
4 files changed, 70 insertions, 30 deletions
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java index c6e1e50d4..27d925002 100644 --- a/src/com/android/camera/CaptureModule.java +++ b/src/com/android/camera/CaptureModule.java @@ -1312,35 +1312,39 @@ public class CaptureModule implements CameraModule, PhotoController, private void takePicture() { Log.d(TAG, "takePicture"); mUI.enableShutter(false); - if (isBackCamera()) { - switch (getCameraMode()) { - case DUAL_MODE: - lockFocus(BAYER_ID); - lockFocus(MONO_ID); - break; - case BAYER_MODE: - if(takeZSLPicture(BAYER_ID)) { - return; - } + if (mSettingsManager.isZSLInHALEnabled()) { + takeZSLPictureInHAL(); + } else { + if (isBackCamera()) { + switch (getCameraMode()) { + case DUAL_MODE: + lockFocus(BAYER_ID); + lockFocus(MONO_ID); + break; + case BAYER_MODE: + if (takeZSLPicture(BAYER_ID)) { + return; + } /* take picture directly for now*/ - captureStillPicture(BAYER_ID); - mState[BAYER_ID] = STATE_PICTURE_TAKEN; + captureStillPicture(BAYER_ID); + mState[BAYER_ID] = STATE_PICTURE_TAKEN; //todo lockFocus(BAYER_ID); - break; - case MONO_MODE: - lockFocus(MONO_ID); - break; - } - } else { - if(takeZSLPicture(FRONT_ID)) { + break; + case MONO_MODE: + lockFocus(MONO_ID); + break; + } + } else { + if (takeZSLPicture(FRONT_ID)) { return; - } + } /* take picture directly for now*/ - captureStillPicture(FRONT_ID); - mState[FRONT_ID] = STATE_PICTURE_TAKEN; + captureStillPicture(FRONT_ID); + mState[FRONT_ID] = STATE_PICTURE_TAKEN; //todo lockFocus(FRONT_ID); + } } } @@ -1353,6 +1357,28 @@ public class CaptureModule implements CameraModule, PhotoController, return false; } + private void takeZSLPictureInHAL() { + Log.d(TAG, "takeHALZSLPicture"); + int cameraId = BAYER_ID; + if (isBackCamera()) { + switch (getCameraMode()) { + case DUAL_MODE: + captureStillPicture(BAYER_ID); + captureStillPicture(MONO_ID); + return; + case BAYER_MODE: + cameraId = BAYER_ID; + break; + case MONO_MODE: + cameraId = MONO_ID; + break; + } + } else { + cameraId = FRONT_ID; + } + captureStillPicture(cameraId); + } + public boolean isLongShotActive() { return mLongshotActive; } @@ -1507,7 +1533,7 @@ public class CaptureModule implements CameraModule, PhotoController, } else { captureBuilder = mCameraDevice[id].createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE); } - if (PersistUtil.getCameraHalZSLDisabled() == false) { + if(mSettingsManager.isZSLInHALEnabled()) { Log.d(TAG, "CONTROL_ENABLE_ZSL is enabled."); captureBuilder.set(CaptureRequest.CONTROL_ENABLE_ZSL, true); } else { diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java index 4ed4f5c18..4cccf8e94 100755 --- a/src/com/android/camera/SettingsManager.java +++ b/src/com/android/camera/SettingsManager.java @@ -1447,6 +1447,26 @@ public class SettingsManager implements ListMenu.SettingsListener { return value != null && value.equals("enable"); } + public boolean isZSLInHALEnabled(){ + String value = getValue(KEY_ZSL); + String halZSLValue = mContext.getString(R.string.pref_camera2_zsl_entryvalue_hal_zsl); + if ( value != null && value.equals(halZSLValue) ){ + return true; + }else{ + return false; + } + } + + public boolean isZSLInAppEnabled(){ + String value = getValue(KEY_ZSL); + String appZSLValue = mContext.getString(R.string.pref_camera2_zsl_entryvalue_app_zsl); + if ( value != null && value.equals(appZSLValue) ){ + return true; + }else{ + return false; + } + } + private boolean filterUnsupportedOptions(ListPreference pref, List<String> supported) { // Remove the preference if the parameter is not supported if (supported == null) { diff --git a/src/com/android/camera/imageprocessor/PostProcessor.java b/src/com/android/camera/imageprocessor/PostProcessor.java index 8dad89742..a9580711e 100644 --- a/src/com/android/camera/imageprocessor/PostProcessor.java +++ b/src/com/android/camera/imageprocessor/PostProcessor.java @@ -672,7 +672,7 @@ public class PostProcessor{ mImageHandlerTask = new ImageHandlerTask(); mSaveRaw = isSaveRaw; if(setFilter(postFilterId) || isFlashModeOn || isTrackingFocusOn || isMakeupOn || isSelfieMirrorOn - || "disable".equals(SettingsManager.getInstance().getValue(SettingsManager.KEY_ZSL)) + || !SettingsManager.getInstance().isZSLInAppEnabled() || "enable".equals( SettingsManager.getInstance().getValue(SettingsManager.KEY_AUTO_HDR)) || SettingsManager.getInstance().isCamera2HDRSupport() diff --git a/src/com/android/camera/util/PersistUtil.java b/src/com/android/camera/util/PersistUtil.java index f622c1249..8c1b57e98 100644 --- a/src/com/android/camera/util/PersistUtil.java +++ b/src/com/android/camera/util/PersistUtil.java @@ -42,8 +42,6 @@ public class PersistUtil { SystemProperties.getInt("persist.vendor.camera.preview.size", 0); private static final boolean PERSIST_CAMERA_CAMERA2 = SystemProperties.getBoolean("persist.vendor.camera.camera2", true); - private static final boolean PERSIST_CAMERA_HAL_ZSL = - SystemProperties.getBoolean("persist.vendor.camera.hal_zsl.disabled", true); private static final int PERSIST_CAMERA2_DEBUG = SystemProperties.getInt("persist.vendor.camera2.debug", 0); private static final int PERSIST_CAMERA_CANCEL_TOUCHFOCUS_DELAY = @@ -83,10 +81,6 @@ public class PersistUtil { return PERSIST_CAMERA_CAMERA2; } - public static boolean getCameraHalZSLDisabled() { - return PERSIST_CAMERA_HAL_ZSL; - } - public static int getCamera2Debug() { return PERSIST_CAMERA_DEBUG; } |