diff options
Diffstat (limited to 'services/camera/libcameraservice')
-rw-r--r-- | services/camera/libcameraservice/camera2/Parameters.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/services/camera/libcameraservice/camera2/Parameters.cpp b/services/camera/libcameraservice/camera2/Parameters.cpp index 1cad2ae..f89d1e3 100644 --- a/services/camera/libcameraservice/camera2/Parameters.cpp +++ b/services/camera/libcameraservice/camera2/Parameters.cpp @@ -1336,11 +1336,15 @@ status_t Parameters::updateRequest(CameraMetadata *request) const { previewFpsRange, 2); if (res != OK) return res; - uint8_t reqWbMode = autoWhiteBalanceLock ? - (uint8_t)ANDROID_CONTROL_AWB_LOCKED : wbMode; res = request->update(ANDROID_CONTROL_AWB_MODE, - &reqWbMode, 1); + &wbMode, 1); if (res != OK) return res; + + uint8_t reqWbLock = autoWhiteBalanceLock ? + ANDROID_CONTROL_AWB_LOCK_ON : ANDROID_CONTROL_AWB_LOCK_OFF; + res = request->update(ANDROID_CONTROL_AWB_LOCK, + &reqWbLock, 1); + res = request->update(ANDROID_CONTROL_EFFECT_MODE, &effectMode, 1); if (res != OK) return res; @@ -1380,8 +1384,6 @@ status_t Parameters::updateRequest(CameraMetadata *request) const { cameraId, flashMode); return BAD_VALUE; } - if (autoExposureLock) reqAeMode = ANDROID_CONTROL_AE_LOCKED; - res = request->update(ANDROID_FLASH_MODE, &reqFlashMode, 1); if (res != OK) return res; @@ -1389,6 +1391,11 @@ status_t Parameters::updateRequest(CameraMetadata *request) const { &reqAeMode, 1); if (res != OK) return res; + uint8_t reqAeLock = autoExposureLock ? + ANDROID_CONTROL_AE_LOCK_ON : ANDROID_CONTROL_AE_LOCK_OFF; + res = request->update(ANDROID_CONTROL_AE_LOCK, + &reqAeLock, 1); + float reqFocusDistance = 0; // infinity focus in diopters uint8_t reqFocusMode; switch (focusMode) { |