atom isp strobe light control added.
[adaptation/intel_mfld/gst-plugins-atomisp.git] / gst-libs / atomisphal / gstv4l2mfldadvci.c
index 5e2d5b7..48596ae 100644 (file)
@@ -52,11 +52,6 @@ static void wrapper_default_void (void)
   return;
 }
 
-static void wrapper_default_int (int a)
-{
-  return;
-}
-
 static int wrapper_default_int_void (void)
 {
   return 0;
@@ -155,11 +150,13 @@ wrapper_default_AwbGetLightSource(advci_awb_light_source *ls)
 static ci_adv_Err
 wrapper_default_int_int (int i)
 {
+ return 0;
 }
 
 static ci_adv_Err
 wrapper_default_intp (int *p)
 {
+ return 0;
 }
 
 static int
@@ -315,6 +312,11 @@ wrapper_default_is_flash_needed(gboolean *useflash)
 {
 
 }
+static gboolean
+wrapper_default_af_assist_light_needed(void)
+{
+return FALSE;
+}
 
 static ci_adv_Err wrapper_default_AeSetManualIso(int sensitivity)
 {
@@ -350,13 +352,6 @@ lib_3a_void (void)
   return;
 }
 
-static void
-lib_3a_int (int a)
-{
-  cam_lib_3a_dbg("%s:%d\n", __func__, __LINE__);
-  return;
-}
-
 static int
 lib_3a_int_void (void)
 {
@@ -440,7 +435,7 @@ static void
 lib_3a_AeGetExposureProgram(advci_ae_exposure_program *program)
 {
   cam_lib_3a_dbg("%s:%d\n", __func__, __LINE__);
-  ci_adv_ae_get_exposure_program(program);
+  ci_adv_ae_get_exposure_program((ia_3a_ae_exposure_program *)program);
 }
 
 static void
@@ -516,7 +511,7 @@ static int
 lib_3a_isp_set_fd (int fd, const char *sensor_id)
 {
   int sensor_type;
-  advci_window window;
+  ia_3a_window window;
 
   cam_lib_3a_dbg("%s:%d\n", __func__, __LINE__);
   if (ci_adv_init(sensor_id, fd, NULL) == 0) {
@@ -596,19 +591,19 @@ static void lib_3a_AfGetStillAfStatus(advci_af_status *status)
 static gboolean lib_3a_af_is_complete(void)
 {
 
-  ia_3a_af_status status;
+  advci_af_status status;
   gboolean completed = FALSE;
 
   lib_3a_AfGetStillAfStatus(&status);
 
-  if (status == ia_3a_af_status_error) {
+  if (status == advci_af_status_error) {
     cam_lib_3a_dbg("==== still AF failed \n");
     completed = TRUE;
   }
-   else if (status == ia_3a_af_status_success) {
+   else if (status == advci_af_status_success) {
     cam_lib_3a_dbg("==== still AF success");
     completed = TRUE;
-  } else if (status == ia_3a_af_status_cancelled) {
+  } else if (status == advci_af_status_cancelled) {
     cam_lib_3a_dbg("==== still AF cancelled \n");
     completed = TRUE;
   }
@@ -701,14 +696,14 @@ static void
 lib_3a_AfGetMeteringMode(advci_af_metering_mode *mode)
 {
   cam_lib_3a_dbg("%s:%d\n", __func__, __LINE__);
-  ci_adv_af_get_metering_mode(mode);
+  ci_adv_af_get_metering_mode((ia_3a_af_metering_mode *)mode);
 }
 
 static void
 lib_3a_Ae_Af_GetWindow(advci_window *window)
 {
   cam_lib_3a_dbg("%s:%d\n", __func__, __LINE__);
-  ia_3a_ae_get_window(window);
+  ia_3a_ae_get_window((ia_3a_window *)window);
 }
 
 static void
@@ -718,8 +713,8 @@ lib_3a_Ae_Af_SetWindow( advci_window *window)
       __func__, window->x_left,window->x_right,
       window->y_top , window->y_bottom, window->weight);
 
-  ci_adv_ae_set_window(window);
-  ci_adv_af_set_windows(1, window);
+  ci_adv_ae_set_window((ia_3a_window *)window);
+  ci_adv_af_set_windows(1, (ia_3a_window *)window);
 }
 
 static void
@@ -760,7 +755,7 @@ static void
 lib_3a_AeAfAwb_process( struct timeval *frame_timestamp)
 {
   int status;
-  //cam_lib_3a_dbg("%s:%d\n", __func__, __LINE__);
+  // cam_lib_3a_dbg("%s:%d\n", __func__, __LINE__);
   status =  ci_adv_process_frame(TRUE,frame_timestamp);
 }
 static void
@@ -804,7 +799,7 @@ lib_3a_AwbGetImageEffect(advci_image_effect *effect)
 static void
 lib_ae_is_flash_needed(gboolean *useflash)
 {
-  ci_adv_ae_is_flash_necessary(useflash);
+  ci_adv_ae_is_flash_necessary((_Bool *)useflash);
   cam_lib_3a_dbg("%s:%d useflash: %d\n", __func__, __LINE__, *useflash);
 
 }
@@ -844,7 +839,7 @@ lib_3a_AeGetManualIso(int *sensitivity)
 static void
 lib_3a_GetMakerNote(advci_mknote_mode mknMode, advci_mknote *note)
 {
-    note = ci_adv_get_maker_note(mknMode);
+    note = (advci_mknote *)ci_adv_get_maker_note((ia_3a_mknote_mode)mknMode);
 }
 
 static void
@@ -852,7 +847,7 @@ lib_3a_PutMakerNote(advci_mknote *mknData)
 {
     if (mknData != NULL)
     {
-        ci_adv_put_maker_note(mknData);
+        ci_adv_put_maker_note((ia_3a_mknote *)mknData);
     }
 }
 
@@ -862,6 +857,15 @@ lib_3a_ResetMakerNote(void)
     ci_adv_reset_maker_note();
 }
 
+static gboolean
+lib_3a_af_assist_light_needed(void)
+{
+  bool bNeed = FALSE;
+  ci_adv_err ret = ci_adv_af_need_assist_light(&bNeed);
+  cam_lib_3a_dbg("%s:%d assist_light_needed: %d\n", __func__, __LINE__, bNeed);
+
+  return bNeed;
+}
 
 void
 lib_3a_link_functions_init (GstV4l2MFLDAdvCI *mfldadvci)
@@ -882,6 +886,7 @@ lib_3a_link_functions_init (GstV4l2MFLDAdvCI *mfldadvci)
   mfldadvci->ae_calc_with_flash = lib_3a_calc_with_flash;
 
   mfldadvci->ae_is_flash_needed = lib_ae_is_flash_needed;
+  mfldadvci->af_assist_light_needed = lib_3a_af_assist_light_needed;
 
   mfldadvci->ae_apply_results = lib_3a_ae;
 
@@ -968,6 +973,7 @@ wrapper_default_link_functions_init (GstV4l2MFLDAdvCI *mfldadvci)
   mfldadvci->ae_calc_with_flash = wrapper_default_calc_with_flash;
 
   mfldadvci->ae_is_flash_needed = wrapper_default_is_flash_needed;
+  mfldadvci->af_assist_light_needed = wrapper_default_af_assist_light_needed;
 
   mfldadvci->ae_apply_results = wrapper_default_ae;