Loading services/camera/libcameraservice/api1/client2/Parameters.cpp +13 −10 Original line number Original line Diff line number Diff line Loading @@ -643,11 +643,10 @@ status_t Parameters::initialize(const CameraMetadata *info, int deviceVersion) { params.set(CameraParameters::KEY_SUPPORTED_FLASH_MODES, params.set(CameraParameters::KEY_SUPPORTED_FLASH_MODES, supportedFlashModes); supportedFlashModes); } else { } else { flashMode = Parameters::FLASH_MODE_OFF; // No flash means null flash mode and supported flash modes keys, so params.set(CameraParameters::KEY_FLASH_MODE, // remove them just to be safe CameraParameters::FLASH_MODE_OFF); params.remove(CameraParameters::KEY_FLASH_MODE); params.set(CameraParameters::KEY_SUPPORTED_FLASH_MODES, params.remove(CameraParameters::KEY_SUPPORTED_FLASH_MODES); CameraParameters::FLASH_MODE_OFF); } } camera_metadata_ro_entry_t minFocusDistance = camera_metadata_ro_entry_t minFocusDistance = Loading Loading @@ -1617,7 +1616,9 @@ status_t Parameters::set(const String8& paramString) { if (validatedParams.flashMode != flashMode) { if (validatedParams.flashMode != flashMode) { camera_metadata_ro_entry_t flashAvailable = camera_metadata_ro_entry_t flashAvailable = staticInfo(ANDROID_FLASH_INFO_AVAILABLE, 1, 1); staticInfo(ANDROID_FLASH_INFO_AVAILABLE, 1, 1); if (!flashAvailable.data.u8[0] && bool isFlashAvailable = flashAvailable.data.u8[0] == ANDROID_FLASH_INFO_AVAILABLE_TRUE; if (!isFlashAvailable && validatedParams.flashMode != Parameters::FLASH_MODE_OFF) { validatedParams.flashMode != Parameters::FLASH_MODE_OFF) { ALOGE("%s: Requested flash mode \"%s\" is not supported: " ALOGE("%s: Requested flash mode \"%s\" is not supported: " "No flash on device", __FUNCTION__, "No flash on device", __FUNCTION__, Loading @@ -1642,10 +1643,12 @@ status_t Parameters::set(const String8& paramString) { newParams.get(CameraParameters::KEY_FLASH_MODE)); newParams.get(CameraParameters::KEY_FLASH_MODE)); return BAD_VALUE; return BAD_VALUE; } } // Update in case of override // Update in case of override, but only if flash is supported if (isFlashAvailable) { newParams.set(CameraParameters::KEY_FLASH_MODE, newParams.set(CameraParameters::KEY_FLASH_MODE, flashModeEnumToString(validatedParams.flashMode)); flashModeEnumToString(validatedParams.flashMode)); } } } // WHITE_BALANCE // WHITE_BALANCE if (sceneModeSet) { if (sceneModeSet) { Loading Loading @@ -2386,7 +2389,7 @@ Parameters::Parameters::flashMode_t Parameters::flashModeStringToEnum( const char *flashMode) { const char *flashMode) { return return !flashMode ? !flashMode ? Parameters::FLASH_MODE_INVALID : Parameters::FLASH_MODE_OFF : !strcmp(flashMode, CameraParameters::FLASH_MODE_OFF) ? !strcmp(flashMode, CameraParameters::FLASH_MODE_OFF) ? Parameters::FLASH_MODE_OFF : Parameters::FLASH_MODE_OFF : !strcmp(flashMode, CameraParameters::FLASH_MODE_AUTO) ? !strcmp(flashMode, CameraParameters::FLASH_MODE_AUTO) ? Loading Loading
services/camera/libcameraservice/api1/client2/Parameters.cpp +13 −10 Original line number Original line Diff line number Diff line Loading @@ -643,11 +643,10 @@ status_t Parameters::initialize(const CameraMetadata *info, int deviceVersion) { params.set(CameraParameters::KEY_SUPPORTED_FLASH_MODES, params.set(CameraParameters::KEY_SUPPORTED_FLASH_MODES, supportedFlashModes); supportedFlashModes); } else { } else { flashMode = Parameters::FLASH_MODE_OFF; // No flash means null flash mode and supported flash modes keys, so params.set(CameraParameters::KEY_FLASH_MODE, // remove them just to be safe CameraParameters::FLASH_MODE_OFF); params.remove(CameraParameters::KEY_FLASH_MODE); params.set(CameraParameters::KEY_SUPPORTED_FLASH_MODES, params.remove(CameraParameters::KEY_SUPPORTED_FLASH_MODES); CameraParameters::FLASH_MODE_OFF); } } camera_metadata_ro_entry_t minFocusDistance = camera_metadata_ro_entry_t minFocusDistance = Loading Loading @@ -1617,7 +1616,9 @@ status_t Parameters::set(const String8& paramString) { if (validatedParams.flashMode != flashMode) { if (validatedParams.flashMode != flashMode) { camera_metadata_ro_entry_t flashAvailable = camera_metadata_ro_entry_t flashAvailable = staticInfo(ANDROID_FLASH_INFO_AVAILABLE, 1, 1); staticInfo(ANDROID_FLASH_INFO_AVAILABLE, 1, 1); if (!flashAvailable.data.u8[0] && bool isFlashAvailable = flashAvailable.data.u8[0] == ANDROID_FLASH_INFO_AVAILABLE_TRUE; if (!isFlashAvailable && validatedParams.flashMode != Parameters::FLASH_MODE_OFF) { validatedParams.flashMode != Parameters::FLASH_MODE_OFF) { ALOGE("%s: Requested flash mode \"%s\" is not supported: " ALOGE("%s: Requested flash mode \"%s\" is not supported: " "No flash on device", __FUNCTION__, "No flash on device", __FUNCTION__, Loading @@ -1642,10 +1643,12 @@ status_t Parameters::set(const String8& paramString) { newParams.get(CameraParameters::KEY_FLASH_MODE)); newParams.get(CameraParameters::KEY_FLASH_MODE)); return BAD_VALUE; return BAD_VALUE; } } // Update in case of override // Update in case of override, but only if flash is supported if (isFlashAvailable) { newParams.set(CameraParameters::KEY_FLASH_MODE, newParams.set(CameraParameters::KEY_FLASH_MODE, flashModeEnumToString(validatedParams.flashMode)); flashModeEnumToString(validatedParams.flashMode)); } } } // WHITE_BALANCE // WHITE_BALANCE if (sceneModeSet) { if (sceneModeSet) { Loading Loading @@ -2386,7 +2389,7 @@ Parameters::Parameters::flashMode_t Parameters::flashModeStringToEnum( const char *flashMode) { const char *flashMode) { return return !flashMode ? !flashMode ? Parameters::FLASH_MODE_INVALID : Parameters::FLASH_MODE_OFF : !strcmp(flashMode, CameraParameters::FLASH_MODE_OFF) ? !strcmp(flashMode, CameraParameters::FLASH_MODE_OFF) ? Parameters::FLASH_MODE_OFF : Parameters::FLASH_MODE_OFF : !strcmp(flashMode, CameraParameters::FLASH_MODE_AUTO) ? !strcmp(flashMode, CameraParameters::FLASH_MODE_AUTO) ? Loading