Camera3: Add scene mode selection value to metadata

Add ANDROID_CONTROL_SCENE_MODE to metadata

Bug: 14059883
Change-Id: I9b866e6bcf5fe184c0eb8fa9bbb1c1f1145b3b61
diff --git a/camera/QCamera2/HAL3/QCamera3HWI.cpp b/camera/QCamera2/HAL3/QCamera3HWI.cpp
index 36b7dc5..be38802 100644
--- a/camera/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/camera/QCamera2/HAL3/QCamera3HWI.cpp
@@ -2535,6 +2535,18 @@
             ALOGV("%s: urgent Metadata : ANDROID_CONTROL_MODE", __func__);
             break;
         }
+        case CAM_INTF_PARM_BESTSHOT_MODE: {
+            uint8_t *sceneMode =
+                (uint8_t *)POINTER_OF(CAM_INTF_PARM_BESTSHOT_MODE, metadata);
+            uint8_t fwkSceneMode =
+                (uint8_t)lookupFwkName(SCENE_MODES_MAP,
+                sizeof(SCENE_MODES_MAP)/
+                sizeof(SCENE_MODES_MAP[0]), *sceneMode);
+            camMetadata.update(ANDROID_CONTROL_SCENE_MODE,
+                 &fwkSceneMode, 1);
+            ALOGV("%s: urgent Metadata : ANDROID_CONTROL_SCENE_MODE", __func__);
+            break;
+        }
         default:
             ALOGV("%s: Normal Metadata %d, do not process",
               __func__, curr_entry);
diff --git a/camera/QCamera2/stack/common/cam_intf.h b/camera/QCamera2/stack/common/cam_intf.h
index 3de809f..283ad89 100644
--- a/camera/QCamera2/stack/common/cam_intf.h
+++ b/camera/QCamera2/stack/common/cam_intf.h
@@ -456,7 +456,7 @@
     INCLUDE(CAM_INTF_PARM_VIDEO_HDR,                	int32_t,                     1);
 
     /* HAL3 external control */
-    INCLUDE(CAM_INTF_PARM_BESTSHOT_MODE,                int32_t,                     1);
+    INCLUDE(CAM_INTF_PARM_BESTSHOT_MODE,                uint8_t,                     1);
     INCLUDE(CAM_INTF_PARM_REDEYE_REDUCTION,             int32_t,                     1);
     INCLUDE(CAM_INTF_PARM_EV,                       	int32_t,                     1);
     INCLUDE(CAM_INTF_PARM_EV_STEP,                  	cam_rational_type_t,         1);