note
	description: "A GAME_HAPTIC_EFFECT that play on a constant strength."
	author: "Louis Marchand"
	date: "Mon, 02 Mar 2015 20:24:45 +0000"
	revision: "2.0"

class 
	GAME_HAPTIC_CONSTANT_EFFECT

inherit
	GAME_HAPTIC_EFFECT_INFINITE_LENGTH
		redefine
			make
		end

	GAME_HAPTIC_EFFECT_ENVELOPE
		redefine
			make
		end

create 
	make

feature -- Initialization

	make
			-- Initialization of Current
		do
			Precursor
			set_type ({GAME_SDL_EXTERNAL}.sdl_haptic_constant.as_natural_16)
		end
	
feature -- Access

	direction: GAME_HAPTIC_DIRECTION assign set_direction
			-- The orientation that the force of Current come from
		require
			exists: exists
		do
			create Result.make_by_pointer ({GAME_SDL_EXTERNAL}.get_sdl_haptic_constant_direction (specific_item))
		end

	set_direction (a_direction: GAME_HAPTIC_DIRECTION)
			-- assign direction with the values of a_direction
		require
			exists: exists
		do
			direction.copy (a_direction)
		ensure
			is_assign: direction ~ a_direction
		end

	length: NATURAL_32 assign set_length
			-- Duration of Current (in millisecond)
		do
			Result := {GAME_SDL_EXTERNAL}.get_sdl_haptic_constant_length (specific_item)
		end

	set_length (a_length: NATURAL_32)
			-- Assign length with the value of a_length
		do
			{GAME_SDL_EXTERNAL}.set_sdl_haptic_constant_length (specific_item, a_length)
		end

	delay: NATURAL_16 assign set_delay
			-- delay before starting Current (in millisecond)
		do
			Result := {GAME_SDL_EXTERNAL}.get_sdl_haptic_constant_delay (specific_item)
		end

	set_delay (a_delay: NATURAL_16)
			-- Assign delay with the value of a_delay
		do
			{GAME_SDL_EXTERNAL}.set_sdl_haptic_constant_delay (specific_item, a_delay)
		end

	interval: NATURAL_16 assign set_interval
			-- how soon before effect can be triggered again (in millisecond)
		do
			Result := {GAME_SDL_EXTERNAL}.get_sdl_haptic_constant_interval (specific_item)
		end

	set_interval (a_interval: NATURAL_16)
			-- Assign interval with the value of a_interval
		do
			{GAME_SDL_EXTERNAL}.set_sdl_haptic_constant_interval (specific_item, a_interval)
		end

	level: INTEGER_16 assign set_level
			-- Strength of Current
		require
			exists: exists
		do
			Result := {GAME_SDL_EXTERNAL}.get_sdl_haptic_constant_level (specific_item)
		end

	set_level (a_level: INTEGER_16)
			-- Assign level with the value of a_level
		require
			exists: exists
			level_valid: a_level <= 32767
		do
			{GAME_SDL_EXTERNAL}.set_sdl_haptic_constant_level (specific_item, a_level)
		ensure
			is_assign: level = a_level
		end

	fade_in_level: NATURAL_16 assign set_fade_in_level
			-- level at the start of the fade in
		do
			Result := {GAME_SDL_EXTERNAL}.get_sdl_haptic_constant_attack_level (specific_item)
		end

	set_fade_in_level (a_fade_in_level: NATURAL_16)
			-- Assign fade_in_level with the value of a_fade_in_level
		do
			{GAME_SDL_EXTERNAL}.set_sdl_haptic_constant_attack_level (specific_item, a_fade_in_level)
		end

	fade_in_length: NATURAL_16 assign set_fade_in_length
			-- length of the fade in
		do
			Result := {GAME_SDL_EXTERNAL}.get_sdl_haptic_constant_attack_length (specific_item)
		end

	set_fade_in_length (a_fade_in_length: NATURAL_16)
			-- Assign fade_in_length with the value of a_fade_in_length
		do
			{GAME_SDL_EXTERNAL}.set_sdl_haptic_constant_attack_length (specific_item, a_fade_in_length)
		end

	fade_out_level: NATURAL_16 assign set_fade_out_level
			-- level at the start of the fade out
		do
			Result := {GAME_SDL_EXTERNAL}.get_sdl_haptic_constant_fade_level (specific_item)
		end

	set_fade_out_level (a_fade_out_level: NATURAL_16)
			-- Assign fade_out_level with the value of a_fade_out_level
		do
			{GAME_SDL_EXTERNAL}.set_sdl_haptic_constant_fade_level (specific_item, a_fade_out_level)
		end

	fade_out_length: NATURAL_16 assign set_fade_out_length
			-- length of the fade out
		do
			Result := {GAME_SDL_EXTERNAL}.get_sdl_haptic_constant_fade_length (specific_item)
		end

	set_fade_out_length (a_fade_out_length: NATURAL_16)
			-- Assign fade_out_length with the value of a_fade_out_length
		do
			{GAME_SDL_EXTERNAL}.set_sdl_haptic_constant_fade_length (specific_item, a_fade_out_length)
		end
	
feature {NONE} -- Implementation

	specific_item: POINTER
			-- Internal pointer that is specific to a certain type of Current
			-- Note that item only point to a C union.
		do
			Result := {GAME_SDL_EXTERNAL}.get_sdl_haptic_effect_constant (item)
		end
	
end -- class GAME_HAPTIC_CONSTANT_EFFECT

Generated by ISE EiffelStudio