};
+static const float bias_map[] = { -2.0,-1.5,1.0,-0.5,0.0,0.5,1.0,1.5,2.0};
+
+
/* TODO */
#define DIS_COMPOSITE_FRAMES 3
ret = cam_driver_set_aperture (fd, value);
break;
case CAM_EXPOSURE_COMPENSATION:
- if (value > 20) value = 20;
- if (value < -20) value = -20;
- bias = value;
- bias = bias / 10;
- if (mfld_cam_settings.ev_compensation != bias &&
+ if (value > 8) value = 8;
+ if (mfld_cam_settings.ev_compensation != value &&
mfld_driver.sensor_type == SENSOR_TYPE_RAW){
+ bias = bias_map[value];
cam_driver_dbg ("set AEBias %f\n",bias);
ret = mfldadvci->AeSetBias (bias);
- mfld_cam_settings.ev_compensation = bias;
+ mfld_cam_settings.ev_compensation = value;
}
break;
case CAM_EXPOSURE_ISO_VALUE:
ret = cam_driver_get_aperture (fd, value);
break;
case CAM_EXPOSURE_COMPENSATION:
- *value = mfld_cam_settings.ev_compensation * 10;
+ *value = mfld_cam_settings.ev_compensation;
break;
case CAM_EXPOSURE_ISO_VALUE:
ret = get_iso_speed (value);
(1 << CAM_CAPTURE_CORRECTION_BPD);
mfld_cam_settings.zoom = 1.0; //Zoom i in feature set 2
- mfld_cam_settings.ev_compensation = 0.0;
+ mfld_cam_settings.ev_compensation = 4;
mfld_cam_settings.exposure = 0; // Auto
mfld_cam_settings.aperture = 0;
mfld_cam_settings.iso_speed = 0;