Esempio n. 1
0
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 ;
	}
};
Esempio n. 2
0
void usb_shoot_module_burst()
{
	static long usb_remote_stack_name = -1;

	switch( logic_module_state )
	{
		case LM_RESET :
			logic_module_state = LM_RELEASE ;
			break ;

		case LM_RELEASE :
			switch ( virtual_remote_state )
			{
				case REMOTE_RELEASE :
					break ;

				case REMOTE_HALF_PRESS :
				case REMOTE_FULL_PRESS:
					usb_remote_stack_name = action_stack_create(&action_stack_standard,AS_SHOOT);
					logic_module_state = LM_HALF_PRESS ;
					break ;

				default :
					debug_error(INVALID_STATE) ;
					break ;
			}
			break ;

		case LM_HALF_PRESS :
			if( action_stack_is_finished(usb_remote_stack_name) )
			{
				logic_module_state = LM_RELEASE ;
			}
			break ;

		default :
			debug_error(INVALID_STATE) ;
			break ;

	}

}
Esempio n. 3
0
int script_is_running()
{
    return !action_stack_is_finished(running_script_stack_name);
}
Esempio n. 4
0
void usb_shoot_module_normal()
{
	static long usb_remote_stack_name = -1;

	if ( conf.synch_enable == 0  )			// handle key presses differently if in sync mode
	{
		switch( logic_module_state )
		{
			case LM_RESET :
				kbd_key_release(KEY_SHOOT_FULL);
				kbd_key_release(KEY_SHOOT_HALF);
				logic_module_state = LM_RELEASE ;
				break ;

			case LM_RELEASE :
				switch ( virtual_remote_state )
				{
					case REMOTE_RELEASE :
						break ;

					case REMOTE_HALF_PRESS :
						kbd_key_press(KEY_SHOOT_HALF);
						logic_module_state = LM_HALF_PRESS ;
						break ;

					case REMOTE_FULL_PRESS:
						kbd_key_press(KEY_SHOOT_HALF);
						kbd_key_press(KEY_SHOOT_FULL);
						logic_module_state = LM_FULL_PRESS ;
						break ;

					default :
						debug_error(INVALID_STATE) ;
						break ;
				}
				break ;

			case LM_HALF_PRESS :
				switch ( virtual_remote_state )
				{
					case REMOTE_RELEASE :
						kbd_key_release(KEY_SHOOT_HALF);
						logic_module_state = LM_RELEASE ;
						break ;

					case REMOTE_HALF_PRESS :
						break ;

					case REMOTE_FULL_PRESS:
						kbd_key_press(KEY_SHOOT_FULL);
						logic_module_state = LM_FULL_PRESS ;
						break ;

					default :
						debug_error(INVALID_STATE) ;
						break ;
				}
				break ;


			case LM_FULL_PRESS :
				switch ( virtual_remote_state )
				{
					case REMOTE_RELEASE :
						kbd_key_release(KEY_SHOOT_FULL);
						kbd_key_release(KEY_SHOOT_HALF);
						logic_module_state = LM_RELEASE ;
						break ;

					case REMOTE_HALF_PRESS:
						kbd_key_release(KEY_SHOOT_FULL);
						logic_module_state = LM_HALF_PRESS ;
						break ;

					case REMOTE_FULL_PRESS:
						break ;

					default :
						debug_error(INVALID_STATE) ;
						break ;
				}
				break ;

			default :
				debug_error(INVALID_STATE) ;
				break ;

		}
	}
	else					// syncable remote mode
	{
		switch( logic_module_state )
		{
			case LM_RESET :
				logic_module_state = LM_RELEASE ;
				break ;

			case LM_RELEASE :
				switch ( virtual_remote_state )
				{
					case REMOTE_HALF_PRESS :
						switch ( switch_type)
						{
							case SW_ONE_PRESS :
								usb_remote_stack_name = action_stack_create(&action_stack_standard,AS_SHOOT);
								usb_sync_wait = 1;
								logic_module_state = LM_HALF_PRESS ;
								break ;

							case SW_TWO_PRESS :
							case SW_RICOH_CA1 :
								kbd_key_press(KEY_SHOOT_HALF);
								logic_module_state = LM_HALF_PRESS ;
								break ;

							default :
								break ;
						}
						break ;

					case REMOTE_RELEASE :
					case REMOTE_FULL_PRESS:
						break ;
					default :
						debug_error(INVALID_STATE) ;
						break ;
				}
				break ;

			case LM_HALF_PRESS :
				switch ( virtual_remote_state )
				{
					case REMOTE_FULL_PRESS:
						switch ( switch_type)
						{
							case SW_ONE_PRESS :
								logic_module_state = LM_FULL_PRESS ;
								break ;

							case SW_TWO_PRESS :
							case SW_RICOH_CA1 :
								usb_sync_wait = 1;
								kbd_key_press(KEY_SHOOT_FULL);
								logic_module_state = LM_FULL_PRESS ;
								break ;

							default :
								break ;
						}
						break ;
					case REMOTE_RELEASE :
						switch ( switch_type)
						{
							case SW_ONE_PRESS :
								if( action_stack_is_finished(usb_remote_stack_name) )
								{
									logic_module_state = LM_RELEASE ;
								}
								break ;

							case SW_TWO_PRESS :
							case SW_RICOH_CA1 :
								kbd_key_release(KEY_SHOOT_HALF);
								logic_module_state = LM_RELEASE ;
								break ;

							default :
								break ;
						}
						break ;

					case REMOTE_HALF_PRESS :
						break ;
					default :
						debug_error(INVALID_STATE) ;
						break ;
				}
				break ;

			case LM_FULL_PRESS :
				switch ( virtual_remote_state )
				{
					case REMOTE_RELEASE :
						switch ( switch_type)
						{
							case SW_ONE_PRESS :
								if( action_stack_is_finished(usb_remote_stack_name) )
								{
									logic_module_state = LM_RELEASE ;
								}
								break ;

							case SW_TWO_PRESS :
							case SW_RICOH_CA1 :
								usb_sync_wait = 0;
								logic_module_state = LM_RELEASE ;
								kbd_key_release(KEY_SHOOT_FULL);
								kbd_key_release(KEY_SHOOT_HALF);
								break ;

							default :
								break ;
						}
						break ;

					case REMOTE_HALF_PRESS :
					case REMOTE_FULL_PRESS:
						break ;

					default :
						debug_error(INVALID_STATE) ;
						break ;
				}
				break ;

			default :
				debug_error(INVALID_STATE) ;
				break ;
		}
	}

};