Camera3: Report correct flash mode and flash state
Report flash state unavailable if there is no flash on camera.
Report correct enum for flash mode.
Bug: 13681666
Bug: 13083390
Change-Id: Ifa5efe6a104616b6e6301e9ac604ef63453f5c89
diff --git a/camera/QCamera2/HAL3/QCamera3HWI.cpp b/camera/QCamera2/HAL3/QCamera3HWI.cpp
index d7229ff..c46221d 100644
--- a/camera/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/camera/QCamera2/HAL3/QCamera3HWI.cpp
@@ -2066,15 +2066,21 @@
break;
}
case CAM_INTF_META_FLASH_STATE: {
- uint8_t *flashState =
- (uint8_t *)POINTER_OF(CAM_INTF_META_FLASH_STATE, metadata);
- camMetadata.update(ANDROID_FLASH_STATE, flashState, 1);
+ uint8_t flashState =
+ *((uint8_t *)POINTER_OF(CAM_INTF_META_FLASH_STATE, metadata));
+ if (!gCamCapability[mCameraId]->flash_available) {
+ flashState = ANDROID_FLASH_STATE_UNAVAILABLE;
+ }
+ camMetadata.update(ANDROID_FLASH_STATE, &flashState, 1);
break;
}
case CAM_INTF_META_FLASH_MODE:{
- uint8_t *flashMode = (uint8_t*)
- POINTER_OF(CAM_INTF_META_FLASH_MODE, metadata);
- camMetadata.update(ANDROID_FLASH_MODE, flashMode, 1);
+ uint8_t flashMode = *((uint8_t*)
+ POINTER_OF(CAM_INTF_META_FLASH_MODE, metadata));
+ uint8_t fwk_flashMode = lookupFwkName(FLASH_MODES_MAP,
+ sizeof(FLASH_MODES_MAP),
+ flashMode);
+ camMetadata.update(ANDROID_FLASH_MODE, &fwk_flashMode, 1);
break;
}
case CAM_INTF_META_HOTPIXEL_MODE: {