set_wb_mode (int wb_mode)
{
- switch (wb_mode) {
- case CAM_AWB_MODE_AUTO:
- mfldadvci->AwbSetMode (advci_awb_mode_auto);
- break;
- case CAM_AWB_MODE_DAYLIGHT:
- mfldadvci->AwbSetMode (advci_awb_mode_manual);
- mfldadvci->AwbSetLightSource (advci_awb_light_source_clear_sky);
- break;
- case CAM_AWB_MODE_CLOUDY:
- mfldadvci->AwbSetMode (advci_awb_mode_manual);
- mfldadvci->AwbSetLightSource (advci_awb_light_source_cloudiness);
- break;
- case CAM_AWB_MODE_SUNSET:
- mfldadvci->AwbSetMode (advci_awb_mode_manual);
- mfldadvci->AwbSetLightSource (advci_awb_light_source_shadow_area);
- break;
- case CAM_AWB_MODE_TUNGSTEN:
- mfldadvci->AwbSetMode (advci_awb_mode_manual);
- mfldadvci->AwbSetLightSource (advci_awb_light_source_filament_lamp);
- break;
- case CAM_AWB_MODE_FLUORESCENT:
- mfldadvci->AwbSetMode (advci_awb_mode_manual);
- mfldadvci->AwbSetLightSource (advci_awb_light_source_fluorlamp_w);
- break;
- default:
- cam_driver_dbg ("Not support awb mode\n");
- return CAM_ERR_UNSUPP;
+ if (mfld_driver.sensor_type == SENSOR_TYPE_RAW) {
+ switch (wb_mode) {
+ case CAM_AWB_MODE_AUTO:
+ mfldadvci->AwbSetMode (advci_awb_mode_auto);
+ break;
+ case CAM_AWB_MODE_DAYLIGHT:
+ mfldadvci->AwbSetMode (advci_awb_mode_manual);
+ mfldadvci->AwbSetLightSource (advci_awb_light_source_clear_sky);
+ break;
+ case CAM_AWB_MODE_CLOUDY:
+ mfldadvci->AwbSetMode (advci_awb_mode_manual);
+ mfldadvci->AwbSetLightSource (advci_awb_light_source_cloudiness);
+ break;
+ case CAM_AWB_MODE_SUNSET:
+ mfldadvci->AwbSetMode (advci_awb_mode_manual);
+ mfldadvci->AwbSetLightSource (advci_awb_light_source_shadow_area);
+ break;
+ case CAM_AWB_MODE_TUNGSTEN:
+ mfldadvci->AwbSetMode (advci_awb_mode_manual);
+ mfldadvci->AwbSetLightSource (advci_awb_light_source_filament_lamp);
+ break;
+ case CAM_AWB_MODE_FLUORESCENT:
+ mfldadvci->AwbSetMode (advci_awb_mode_manual);
+ mfldadvci->AwbSetLightSource (advci_awb_light_source_fluorlamp_w);
+ break;
+ default:
+ cam_driver_dbg ("Not support awb mode\n");
+ return CAM_ERR_UNSUPP;
+ }
}
mfld_cam_settings.wb_mode = wb_mode;
-
- return 0;
+ return CAM_ERR_NONE;
}
cam_err_t
advci_awb_light_source ls;
advci_awb_mode mode;
- mfldadvci->AwbGetMode (&mode);
+ if (mfld_driver.sensor_type != SENSOR_TYPE_RAW) {
+ *wb_mode = CAM_AWB_MODE_AUTO;
+ return CAM_ERR_NONE;
+ }
+ mfldadvci->AwbGetMode (&mode);
if (mode == advci_awb_mode_auto) {
*wb_mode = CAM_AWB_MODE_AUTO;
return CAM_ERR_NONE;
*wb_mode = CAM_AWB_MODE_DAYLIGHT;
break;
}
+
return CAM_ERR_NONE;
}
{
advci_ae_exposure_program scene;
- switch (mode) {
- case CAM_GENERAL_SCENE_MODE_PORTRAIT:
- scene = advci_ae_exposure_program_portrait;
- break;
- case CAM_GENERAL_SCENE_MODE_LANDSCAPE:
- scene = advci_ae_exposure_program_landscape;
- break;
- case CAM_GENERAL_SCENE_MODE_SPORT:
- scene = advci_ae_exposure_program_sports;
- break;
- case CAM_GENERAL_SCENE_MODE_NIGHT:
- scene = advci_ae_exposure_program_night;
- break;
- case CAM_GENERAL_SCENE_MODE_AUTO:
- scene = advci_ae_exposure_program_auto;
- break;
- case CAM_GENERAL_SCENE_MODE_FIREWORKS:
- scene = advci_ae_exposure_program_fireworks;
- break;
- default:
- cam_driver_dbg ("%s Not supported Scene Mode %d\n", __func__, mode);
- break;
+ if (mfld_driver.sensor_type == SENSOR_TYPE_RAW) {
+ switch (mode) {
+ case CAM_GENERAL_SCENE_MODE_PORTRAIT:
+ scene = advci_ae_exposure_program_portrait;
+ break;
+ case CAM_GENERAL_SCENE_MODE_LANDSCAPE:
+ scene = advci_ae_exposure_program_landscape;
+ break;
+ case CAM_GENERAL_SCENE_MODE_SPORT:
+ scene = advci_ae_exposure_program_sports;
+ break;
+ case CAM_GENERAL_SCENE_MODE_NIGHT:
+ scene = advci_ae_exposure_program_night;
+ break;
+ case CAM_GENERAL_SCENE_MODE_AUTO:
+ scene = advci_ae_exposure_program_auto;
+ break;
+ case CAM_GENERAL_SCENE_MODE_FIREWORKS:
+ scene = advci_ae_exposure_program_fireworks;
+ break;
+ default:
+ cam_driver_dbg ("%s Not supported Scene Mode %d\n", __func__, mode);
+ break;
+ }
+ mfldadvci->AeSetExposureProgram (scene);
}
- mfldadvci->AeSetExposureProgram (scene);
-
mfld_cam_settings.scene_mode = mode;
return CAM_ERR_NONE;
}
static cam_err_t
set_iso_speed (int iso)
{
- cam_err_t ret;
- mfld_cam_settings.iso_speed = iso;
- ret = mfldadvci->AeSetIso(mfld_cam_settings.iso_speed);
- return ret;
+ cam_err_t ret = CAM_ERR_NONE;
+ mfld_cam_settings.iso_speed = iso;
+ if (mfld_driver.sensor_type == SENSOR_TYPE_RAW) {
+ ret = mfldadvci->AeSetIso(mfld_cam_settings.iso_speed);
+ }
+ return ret;
}
static cam_err_t
static cam_err_t
set_flicker_mode (int mode)
{
-
- /* Convert camera genreral flicker mode to AE flicker mode */
- switch (mode) {
- case CAM_GENERAL_FLICKER_REDUCTION_MODE_OFF:
- mfldadvci->AeSetFlickerMode (advci_ae_flicker_mode_off);
- break;
- case CAM_GENERAL_FLICKER_REDUCTION_MODE_50HZ:
- mfldadvci->AeSetFlickerMode (advci_ae_flicker_mode_50hz);
- break;
- case CAM_GENERAL_FLICKER_REDUCTION_MODE_60HZ:
- mfldadvci->AeSetFlickerMode (advci_ae_flicker_mode_60hz);
- break;
- case CAM_GENERAL_FLICKER_REDUCTION_MODE_AUTO:
- mfldadvci->AeSetFlickerMode (advci_ae_flicker_mode_auto);
- break;
- default:
- cam_driver_dbg ("Not supported flicker mode\n");
- return CAM_ERR_UNSUPP;
+ if (mfld_driver.sensor_type == SENSOR_TYPE_RAW) {
+ /* Convert camera genreral flicker mode to AE flicker mode */
+ switch (mode) {
+ case CAM_GENERAL_FLICKER_REDUCTION_MODE_OFF:
+ mfldadvci->AeSetFlickerMode (advci_ae_flicker_mode_off);
+ break;
+ case CAM_GENERAL_FLICKER_REDUCTION_MODE_50HZ:
+ mfldadvci->AeSetFlickerMode (advci_ae_flicker_mode_50hz);
+ break;
+ case CAM_GENERAL_FLICKER_REDUCTION_MODE_60HZ:
+ mfldadvci->AeSetFlickerMode (advci_ae_flicker_mode_60hz);
+ break;
+ case CAM_GENERAL_FLICKER_REDUCTION_MODE_AUTO:
+ mfldadvci->AeSetFlickerMode (advci_ae_flicker_mode_auto);
+ break;
+ default:
+ cam_driver_dbg ("Not supported flicker mode\n");
+ return CAM_ERR_UNSUPP;
+ }
}
return CAM_ERR_NONE;
}
static cam_err_t
get_flicker_mode (int *mode)
{
- int ret = 0;
+ int ret = CAM_ERR_NONE;
advci_ae_flicker_mode flicker_mode;
+ if (mfld_driver.sensor_type != SENSOR_TYPE_RAW) {
+ *mode = CAM_GENERAL_FLICKER_REDUCTION_MODE_AUTO;
+ return ret;
+ }
mfldadvci->AeGetFlickerMode (&flicker_mode);
/* Convert AE flicker mode to camera general flicker mode */
advci_af_status af_status;
gboolean do_read = FALSE;
+ if (mfld_driver.sensor_type != SENSOR_TYPE_RAW) {
+ return 0;
+ }
+
if (mfld_driver.focus_done >= FOCUS_REALLY_DONE) {
mfld_driver.focus_done = 0;
do_read = TRUE;
mfld_driver.thread = 0;
}
mfld_driver.g_3a_started = 0;
- mfldadvci->uninit ();
+ if (mfld_driver.sensor_type == SENSOR_TYPE_RAW)
+ mfldadvci->uninit ();
return;
}
void
mfldcam_3a_start (void)
{
- if (!mfld_driver.g_3a_started) {
- mfld_driver.g_3a_started = 1;
- if (pthread_create (&mfld_driver.thread, NULL, mfldcam_3a_process,
- NULL) != 0) {
- mfld_driver.g_3a_started = 0;
- cam_driver_dbg ("Create thread failed %s\n", __func__);;
+
+ if (mfld_driver.sensor_type == SENSOR_TYPE_RAW){
+ if (!mfld_driver.g_3a_started) {
+ mfld_driver.g_3a_started = 1;
+ if (pthread_create (&mfld_driver.thread, NULL, mfldcam_3a_process,
+ NULL) != 0) {
+ mfld_driver.g_3a_started = 0;
+ cam_driver_dbg ("Create thread failed %s\n", __func__);;
+ }
}
}
}
void
mfldcam_3a_stop (void)
{
- if (mfld_driver.g_3a_started)
- pthread_cancel (mfld_driver.thread);
- mfld_driver.g_3a_started = 0;
+
+ if (mfld_driver.sensor_type == SENSOR_TYPE_RAW){
+ if (mfld_driver.g_3a_started)
+ pthread_cancel (mfld_driver.thread);
+ mfld_driver.g_3a_started = 0;
+ }
}
static cam_err_t
mfld_driver.first_frame = 0;
}
/* Still AF start */
- if (mfld_driver.start_still_af) {
+ if ((mfld_driver.start_still_af) && (mfld_driver.sensor_type == SENSOR_TYPE_RAW)) {
if (mfld_driver.af_enabled && mfld_driver.still_af_count > 0)
mfldadvci->af_stop ();
mfld_driver.focus_done = 0;
struct atomisp_dis_vector *dvs_vector;
cam_driver_dbg ("Begin cam_dis_get_statices\n");
- mfldadvci->dis_read_statistics (); //read_dis_stats_from_xmem();
+ if (mfld_driver.sensor_type == SENSOR_TYPE_RAW) {
+ mfldadvci->dis_read_statistics (); //read_dis_stats_from_xmem();
- cam_driver_dbg ("Begin cam_dis_still_process\n");
+ cam_driver_dbg ("Begin cam_dis_still_process\n");
- if (mfld_driver.mode == advci_isp_mode_video)
- dvs_vector = &mfld_driver.dvs_vector;
- else
- dvs_vector = NULL;
- // TODO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
- // mfldadvci->dis_process (dvs_vector); /* dis_vector only valid in video mode */
+ if (mfld_driver.mode == advci_isp_mode_video)
+ dvs_vector = &mfld_driver.dvs_vector;
+ else
+ dvs_vector = NULL;
+ // TODO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
+ // mfldadvci->dis_process (dvs_vector); /* dis_vector only valid in video mode */
- if (dis_enabled) {
- mfldadvci->dis_calc_still (&vectors[frame_cnt], frame_cnt);
- cam_copy_v4l2buf_to_user (&bufs[frame_cnt], buffer);
- }
+ if (dis_enabled) {
+ mfldadvci->dis_calc_still (&vectors[frame_cnt], frame_cnt);
+ cam_copy_v4l2buf_to_user (&bufs[frame_cnt], buffer);
+ }
- cam_driver_dbg ("Update DIS results\n");
- mfldadvci->update_dis_results();
+ cam_driver_dbg ("Update DIS results\n");
+ mfldadvci->update_dis_results();
+ }
}
static cam_err_t
{
advci_ae_exposure_program mode;
- mfldadvci->AeGetExposureProgram(&mode);
+ if (mfld_driver.sensor_type == SENSOR_TYPE_RAW) {
- /* Convert AE flicker mode to camera general flicker mode */
- switch (mode) {
- case advci_ae_exposure_program_auto:
- *expmode = CAM_GENERAL_SCENE_MODE_AUTO;
- break;
- case advci_ae_exposure_program_portrait:
- *expmode = CAM_GENERAL_SCENE_MODE_PORTRAIT;
- break;
- case advci_ae_exposure_program_sports:
- *expmode = CAM_GENERAL_SCENE_MODE_SPORT;
- break;
- case advci_ae_exposure_program_landscape:
- *expmode = CAM_GENERAL_SCENE_MODE_LANDSCAPE;
- break;
- case advci_ae_exposure_program_night:
- *expmode = CAM_GENERAL_SCENE_MODE_NIGHT;
- break;
- case advci_ae_exposure_program_fireworks:
- *expmode = CAM_GENERAL_SCENE_MODE_FIREWORKS;
- break;
- default:
- cam_driver_dbg ("Not supported exposure mode\n");
- return CAM_ERR_UNSUPP;
+ mfldadvci->AeGetExposureProgram(&mode);
+
+ /* Convert AE flicker mode to camera general flicker mode */
+ switch (mode) {
+ case advci_ae_exposure_program_auto:
+ *expmode = CAM_GENERAL_SCENE_MODE_AUTO;
+ break;
+ case advci_ae_exposure_program_portrait:
+ *expmode = CAM_GENERAL_SCENE_MODE_PORTRAIT;
+ break;
+ case advci_ae_exposure_program_sports:
+ *expmode = CAM_GENERAL_SCENE_MODE_SPORT;
+ break;
+ case advci_ae_exposure_program_landscape:
+ *expmode = CAM_GENERAL_SCENE_MODE_LANDSCAPE;
+ break;
+ case advci_ae_exposure_program_night:
+ *expmode = CAM_GENERAL_SCENE_MODE_NIGHT;
+ break;
+ case advci_ae_exposure_program_fireworks:
+ *expmode = CAM_GENERAL_SCENE_MODE_FIREWORKS;
+ break;
+ default:
+ cam_driver_dbg ("Not supported exposure mode\n");
+ return CAM_ERR_UNSUPP;
+ }
}
+ else {
+ *expmode = CAM_GENERAL_SCENE_MODE_AUTO;
+ }
return CAM_ERR_NONE;
}
{
cam_flash_mode_t ci_mode;
- mfldadvci->AeGetFlashMode(&ci_mode);
-
- switch(ci_mode)
- {
- case advci_ae_flash_mode_auto:
- *mode = CAM_LIGHT_FLASH_MODE_AUTO;
- break;
- case advci_ae_flash_mode_off:
- *mode = CAM_LIGHT_FLASH_MODE_OFF;
- break;
- case advci_ae_flash_mode_on:
- *mode = CAM_LIGHT_FLASH_MODE_ON;
- break;
- case advci_ae_flash_mode_day_sync:
- *mode = CAM_LIGHT_FLASH_MODE_AUTO;
- break;
- case advci_ae_flash_mode_slow_sync:
- *mode = CAM_LIGHT_FLASH_MODE_AUTO;
- break;
- default:
- *mode = CAM_LIGHT_FLASH_MODE_AUTO;
- return CAM_ERR_3A;
+ if (mfld_driver.sensor_type == SENSOR_TYPE_RAW) {
+ mfldadvci->AeGetFlashMode(&ci_mode);
+ switch(ci_mode)
+ {
+ case advci_ae_flash_mode_auto:
+ *mode = CAM_LIGHT_FLASH_MODE_AUTO;
+ break;
+ case advci_ae_flash_mode_off:
+ *mode = CAM_LIGHT_FLASH_MODE_OFF;
+ break;
+ case advci_ae_flash_mode_on:
+ *mode = CAM_LIGHT_FLASH_MODE_ON;
+ break;
+ case advci_ae_flash_mode_day_sync:
+ *mode = CAM_LIGHT_FLASH_MODE_AUTO;
+ break;
+ case advci_ae_flash_mode_slow_sync:
+ *mode = CAM_LIGHT_FLASH_MODE_AUTO;
+ break;
+ default:
+ *mode = CAM_LIGHT_FLASH_MODE_AUTO;
+ return CAM_ERR_3A;
+ }
}
+ else
+ *mode = CAM_LIGHT_FLASH_MODE_OFF;
+
return CAM_ERR_NONE;
}
cam_err_t set_ae_flash_mode(int fd, cam_flash_mode_t mode)
{
advci_ae_flash_mode flash_mode;
- switch(mode)
- {
- case CAM_LIGHT_FLASH_MODE_AUTO:
- flash_mode = advci_ae_flash_mode_auto;
- break;
- case CAM_LIGHT_FLASH_MODE_OFF:
- flash_mode = advci_ae_flash_mode_off;
- break;
- case CAM_LIGHT_FLASH_MODE_ON:
- flash_mode = advci_ae_flash_mode_on;
- break;
- default:
- flash_mode = advci_ae_flash_mode_auto;
- break;
- }
+ if (mfld_driver.sensor_type == SENSOR_TYPE_RAW) {
+ switch(mode)
+ {
+ case CAM_LIGHT_FLASH_MODE_AUTO:
+ flash_mode = advci_ae_flash_mode_auto;
+ break;
+ case CAM_LIGHT_FLASH_MODE_OFF:
+ flash_mode = advci_ae_flash_mode_off;
+ break;
+ case CAM_LIGHT_FLASH_MODE_ON:
+ flash_mode = advci_ae_flash_mode_on;
+ break;
+ default:
+ flash_mode = advci_ae_flash_mode_auto;
+ break;
+ }
- mfldadvci->AeSetFlashMode(flash_mode);
+ mfldadvci->AeSetFlashMode(flash_mode);
+ }
return CAM_ERR_NONE;
}