diff options
author | xianming wang <mingwax@codeaurora.org> | 2018-07-20 16:23:31 +0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2018-08-03 00:50:12 -0700 |
commit | 0ba33b9668e3fc5d92a12cc5fdcd7537de8580be (patch) | |
tree | c55d86c455b5bda5194a89676ca55b55ab66cc91 /src/com/android/camera/CaptureModule.java | |
parent | fd59af7220a45395048c4a86fa58c0bde365b878 (diff) | |
download | android_packages_apps_Snap-0ba33b9668e3fc5d92a12cc5fdcd7537de8580be.tar.gz android_packages_apps_Snap-0ba33b9668e3fc5d92a12cc5fdcd7537de8580be.tar.bz2 android_packages_apps_Snap-0ba33b9668e3fc5d92a12cc5fdcd7537de8580be.zip |
SnapdragonCamera: Complete manual exposure gains function
Complete manual exposure gains function.
CRs-Fixed: 2288985
Change-Id: I57e19027b4dd05c862e25d1646f8cde3c4ac3a36
Diffstat (limited to 'src/com/android/camera/CaptureModule.java')
-rwxr-xr-x | src/com/android/camera/CaptureModule.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java index 1c247dfab..40c3d88b6 100755 --- a/src/com/android/camera/CaptureModule.java +++ b/src/com/android/camera/CaptureModule.java @@ -5575,6 +5575,8 @@ public class CaptureModule implements CameraModule, PhotoController, R.string.pref_camera_manual_exp_value_exptime_priority); String userSetting = mActivity.getString( R.string.pref_camera_manual_exp_value_user_setting); + String gainsPriority = mActivity.getString( + R.string.pref_camera_manual_exp_value_gains_priority); String manualExposureMode = mSettingsManager.getValue(SettingsManager.KEY_MANUAL_EXPOSURE); if (manualExposureMode == null) return result; if (manualExposureMode.equals(isoPriority)) { @@ -5634,6 +5636,30 @@ public class CaptureModule implements CameraModule, PhotoController, request.set(CaptureRequest.SENSOR_EXPOSURE_TIME, newExpTime); request.set(CaptureRequest.SENSOR_SENSITIVITY, isoValue); result = true; + } else if (manualExposureMode.equals(gainsPriority)) { + float gains = pref.getFloat(SettingsManager.KEY_MANUAL_GAINS_VALUE, 1.0f); + int[] isoRange = mSettingsManager.getIsoRangeValues(getMainCameraId()); + VendorTagUtil.setIsoExpPrioritySelectPriority(request, 0); + int isoValue = 100; + if (isoRange!= null) { + isoValue = (int) (gains * isoRange[0]); + } + long intValue = SettingsManager.KEY_ISO_INDEX.get( + SettingsManager.MAUNAL_ABSOLUTE_ISO_VALUE); + VendorTagUtil.setIsoExpPriority(request, intValue); + VendorTagUtil.setUseIsoValues(request, isoValue); + if (DEBUG) { + Log.v(TAG, "manual Gain value :" + isoValue); + } + if (request.get(CaptureRequest.SENSOR_EXPOSURE_TIME) != null) { + mIsoExposureTime = request.get(CaptureRequest.SENSOR_EXPOSURE_TIME); + } + if (request.get(CaptureRequest.SENSOR_SENSITIVITY) != null) { + mIsoSensitivity = request.get(CaptureRequest.SENSOR_SENSITIVITY); + } + request.set(CaptureRequest.SENSOR_EXPOSURE_TIME, null); + request.set(CaptureRequest.SENSOR_SENSITIVITY, null); + result = true; } return result; } |