Beispiel #1
0
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);
}