static void autoexpo_task() { autoexpo_running = 1; if(!lens_info.raw_shutter) goto cleanup; //open menus int bv = RAW2TV(lens_info.raw_shutter) + RAW2AV(lens_info.raw_aperture) - RAW2SV(lens_info.iso_equiv_raw) + RAW2EC(get_ae_value()); if(bv < -200){ //AE_VALUE overflows, set some low values lens_set_rawshutter(60 + 56); lens_set_rawaperture(1); lens_set_rawiso(1); NotifyBox(1000, "AE_VALUE overflows"); goto cleanup; } last_bv = bv; exposure expo = get_exposure(bv, 0); lens_set_rawaperture(AV2RAW(expo.av)); lens_set_rawiso(SV2RAW(expo.sv)); lens_set_rawshutter(TV2RAW(expo.tv)); cleanup: autoexpo_running = 0; }
static void iso_movie_change_setting(int iso, int dgain, int shutter) { lens_set_rawiso(iso); lens_set_rawshutter(shutter); set_display_gain_equiv(dgain); msleep(2000); take_fast_pictures(1); }