void msm_stop(void) { wait_for_camera(); SleepTask(RELEASE_WAIT); send_to_intercom(IC_SET_TV_VAL, msm_tv_return); send_to_intercom(IC_SET_AV_VAL, msm_av_return); send_to_intercom(IC_SET_AE, msm_ae_return); enqueue_action(msm_reset); }
int shutter_release() { wait_for_camera(); lock_sutter (); int result = press_button(IC_BUTTON_FULL_SHUTTER); if (DPData.drive == DRIVE_MODE_TIMER) SleepTask(SELF_TIMER_MS); wait_for_shutter(); return result; }
int shutter_release_bulb(int time) { static int first = true; int button; long delay; int shutter_lag, mirror_lag; if (first) { first = false; shutter_lag = SHUTTER_LAG_1ST; mirror_lag = MIRROR_LAG_1ST; } else { shutter_lag = SHUTTER_LAG_2ND; mirror_lag = MIRROR_LAG_2ND; } if (DPData.drive == DRIVE_MODE_TIMER) { button = IC_BUTTON_FULL_SHUTTER; delay = time + shutter_lag + mirror_lag; } else { button = IC_BUTTON_HALF_SHUTTER; delay = time + shutter_lag; } wait_for_camera(); lock_sutter (); press_button(button); SleepTask (delay); press_button(button); wait_for_shutter(); return 0; }