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 ; } };
// load the edge overlay from a file void load_edge_overlay(const char* fn) { FILE *fd; int zoom; get_viewport_size(); ensure_allocate_imagebuffer( ); fd = fopen(fn,"rb"); if( fd != NULL ) { int ret = fread(edgebuf->ptr,edgebuf->ptrLen,1,fd); int ret2 = fread (&zoom,sizeof(zoom),1,fd); fclose(fd); if( (ret == 1) && (ret2 == 1) ) { fsm_state = EDGE_FROZEN; // switch to "edge overlay frozen"-mode if (conf.edge_overlay_zoom) { shooting_set_zoom(zoom); } } } }
static int luaCB_set_zoom( lua_State* L ) { shooting_set_zoom(luaL_checknumber( L, 1 )); return 0; }