void usb_shoot_module_zoom() { static long usb_remote_stack_name = -1; switch( logic_module_state ) { case LM_RESET : logic_module_state = LM_RELEASE ; break ; case LM_RELEASE : switch( get_usb_power(LM_PULSE_COUNT) ) { case ZOOM_STEP_OUT : shooting_set_zoom_rel(1) ; break ; case ZOOM_STEP_IN : shooting_set_zoom_rel(-1) ; break ; case ZOOM_SHOOT : logic_module_state = LM_FULL_PRESS ; usb_remote_stack_name = action_stack_create(&action_stack_standard,AS_SHOOT); break ; case ZOOM_FULL_OUT : shooting_set_zoom(zoom_points) ; break ; case ZOOM_FULL_IN : shooting_set_zoom(0) ; break ; default : break ; } break ; case LM_FULL_PRESS : if( action_stack_is_finished(usb_remote_stack_name) ) { logic_module_state = LM_RELEASE ; } break ; default : break ; } };
static int luaCB_set_zoom_rel( lua_State* L ) { shooting_set_zoom_rel(luaL_checknumber( L, 1 )); return 0; }