note description: "An haptic device uniquely identified with an index." author: "Louis Marchand" date: "Mon, 02 Mar 2015 14:20:07 +0000" revision: "2.0" class interface GAME_HAPTIC_DEVICE create {GAME_LIBRARY_CONTROLLER} make (a_index: INTEGER_32) -- Initialization of Current using a_index as internal index. require is_haptic_enabled: Game_library.is_haptic_enable is_index_valid: a_index < {GAME_SDL_EXTERNAL}.sdl_numhaptics is_haptic_not_already_open: not {GAME_SDL_EXTERNAL}.sdl_hapticopened (a_index) feature -- Access close -- Make Current not usable -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open ensure -- from GAME_HAPTIC is_close: not is_open compile (a_effect: GAME_HAPTIC_EFFECT) -- Create a new compiled effect and store it in the compiled_effects -- list. You can get ot quicker by using last_compiled_effect -- (from GAME_HAPTIC) require -- from GAME_HAPTIC current_valid: is_open effect_valid: a_effect.exists effect_supported: is_effect_supported (a_effect) ensure -- from GAME_HAPTIC is_count_valid: not has_error implies (compiled_effect_count = compiled_effect_count + 1) is_count_not_null: not has_error implies (compiled_effect_count > 0) last_compiled_valid: not has_error implies (last_compiled_effect.is_open and last_compiled_effect.haptic = Current and last_compiled_effect.effect = a_effect) compiled_effect_count: INTEGER_32 -- Number of compiled_effects in Current -- (from GAME_HAPTIC) compiled_effects: CHAIN_INDEXABLE_ITERATOR [GAME_HAPTIC_EFFECT_COMPILED] -- Every compiled effect into Current -- (from GAME_HAPTIC) gain: INTEGER_32 assign set_gain -- The intensity of Current -- (from GAME_HAPTIC) require -- from GAME_HAPTIC gain_control_supported: is_gain_control_supported Game_library: GAME_LIBRARY_CONTROLLER -- The main controller of the game library -- (from GAME_LIBRARY_SHARED) generating_type: TYPE [detachable GAME_HAPTIC_DEVICE] -- Type of current object -- (type of which it is a direct instance) -- (from ANY) ensure -- from ANY generating_type_not_void: Result /= Void generator: STRING_8 -- Name of current object's generating class -- (base class of the type of which it is a direct instance) -- (from ANY) ensure -- from ANY generator_not_void: Result /= Void generator_not_empty: not Result.is_empty has_error: BOOLEAN -- Is the library has generate an error -- (from GAME_ERROR_MANAGER) initialize_rumble -- Initialized a rumble playback into Current -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open rumble_supported: is_rumble_supported not_already_rumble: not is_rumble ensure -- from GAME_HAPTIC is_rumble_activated: not has_error implies is_rumble last_compiled_effect: GAME_HAPTIC_EFFECT_COMPILED -- Last compiled effect that has been compiled with compile -- (from GAME_HAPTIC) require -- from GAME_HAPTIC element_exist: compiled_effect_count > 0 last_error: READABLE_STRING_GENERAL -- The last error generate by the library -- (from GAME_SDL_ANY) open -- Make Current usable -- (from GAME_HAPTIC) require -- from GAME_HAPTIC not_open: not is_open ensure -- from GAME_HAPTIC is_open: not has_error implies is_open pause -- Mommentaly stop the playing effect. Use resume to restart it -- where it was when paused. -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open pause_supported: is_pause_supported not_paused: not is_paused ensure -- from GAME_HAPTIC is_paused: not has_error implies is_paused resume -- Restart an effect that has been pause before. -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open pause_supported: is_pause_supported is_paused: is_paused ensure -- from GAME_HAPTIC in_unpaused: not has_error implies not is_paused rumble_play (a_strength: REAL_32; a_length: NATURAL_32) -- Start a rumble playback with a magnitude of a_strength -- and a duration a_length in millisecond -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open rumble_supported: is_rumble_supported is_rumble_device: is_rumble strength_is_valid: a_strength >= 0.to_real and a_strength <= 1.to_real rumble_play_infinite_length (a_strength: REAL_32) -- Start a rumble playbacki with a magnitude of a_strength -- and never stop (use rumble_stop to stop) -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open rumble_supported: is_rumble_supported is_rumble_device: is_rumble strength_is_valid: a_strength >= 0.to_real and a_strength <= 1.to_real rumble_stop -- Stop a rumble playback -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open rumble_supported: is_rumble_supported is_rumble_device: is_rumble set_gain (a_gain: INTEGER_32) -- Assign to gain the value of a_gain -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open gain_control_supported: is_gain_control_supported ensure -- from GAME_HAPTIC is_assign: not has_error implies gain = a_gain stop_all_effects -- Stop every effect on Current -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open feature -- Comparison frozen deep_equal (a: detachable ANY; b: like arg #1): BOOLEAN -- Are a and b either both void -- or attached to isomorphic object structures? -- (from ANY) ensure -- from ANY instance_free: class shallow_implies_deep: standard_equal (a, b) implies Result both_or_none_void: (a = Void) implies (Result = (b = Void)) same_type: (Result and (a /= Void)) implies (b /= Void and then a.same_type (b)) symmetric: Result implies deep_equal (b, a) frozen equal (a: detachable ANY; b: like arg #1): BOOLEAN -- Are a and b either both void or attached -- to objects considered equal? -- (from ANY) ensure -- from ANY instance_free: class definition: Result = (a = Void and b = Void) or else ((a /= Void and b /= Void) and then a.is_equal (b)) frozen is_deep_equal alias "≡≡≡" (other: GAME_HAPTIC_DEVICE): BOOLEAN -- Are Current and other attached to isomorphic object structures? -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY shallow_implies_deep: standard_is_equal (other) implies Result same_type: Result implies same_type (other) symmetric: Result implies other.is_deep_equal (Current) is_equal (other: GAME_HAPTIC_DEVICE): BOOLEAN -- Is other attached to an object considered -- equal to current object? -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY symmetric: Result implies other ~ Current consistent: standard_is_equal (other) implies Result frozen standard_equal (a: detachable ANY; b: like arg #1): BOOLEAN -- Are a and b either both void or attached to -- field-by-field identical objects of the same type? -- Always uses default object comparison criterion. -- (from ANY) ensure -- from ANY instance_free: class definition: Result = (a = Void and b = Void) or else ((a /= Void and b /= Void) and then a.standard_is_equal (b)) frozen standard_is_equal alias "≜" (other: GAME_HAPTIC_DEVICE): BOOLEAN -- Is other attached to an object of the same type -- as current object, and field-by-field identical to it? -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY same_type: Result implies same_type (other) symmetric: Result implies other.standard_is_equal (Current) feature -- Status report conforms_to (other: ANY): BOOLEAN -- Does type of current object conform to type -- of other (as per Eiffel: The Language, chapter 13)? -- (from ANY) require -- from ANY other_not_void: other /= Void same_type (other: ANY): BOOLEAN -- Is type of current object identical to type of other? -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY definition: Result = (conforms_to (other) and other.conforms_to (Current)) feature -- Duplication copy (other: GAME_HAPTIC_DEVICE) -- Update current object using fields of object attached -- to other, so as to yield equal objects. -- (from ANY) require -- from ANY other_not_void: other /= Void type_identity: same_type (other) ensure -- from ANY is_equal: Current ~ other frozen deep_copy (other: GAME_HAPTIC_DEVICE) -- Effect equivalent to that of: -- copy (other . deep_twin) -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY deep_equal: deep_equal (Current, other) frozen deep_twin: GAME_HAPTIC_DEVICE -- New object structure recursively duplicated from Current. -- (from ANY) ensure -- from ANY deep_twin_not_void: Result /= Void deep_equal: deep_equal (Current, Result) frozen standard_copy (other: GAME_HAPTIC_DEVICE) -- Copy every field of other onto corresponding field -- of current object. -- (from ANY) require -- from ANY other_not_void: other /= Void type_identity: same_type (other) ensure -- from ANY is_standard_equal: standard_is_equal (other) frozen standard_twin: GAME_HAPTIC_DEVICE -- New object field-by-field identical to other. -- Always uses default copying semantics. -- (from ANY) ensure -- from ANY standard_twin_not_void: Result /= Void equal: standard_equal (Result, Current) frozen twin: GAME_HAPTIC_DEVICE -- New object equal to Current -- twin calls copy; to change copying/twinning semantics, redefine copy. -- (from ANY) ensure -- from ANY twin_not_void: Result /= Void is_equal: Result ~ Current feature -- Basic operations frozen default: detachable GAME_HAPTIC_DEVICE -- Default value of object's type -- (from ANY) frozen default_pointer: POINTER -- Default value of type POINTER -- (Avoid the need to write p.default for -- some p of type POINTER.) -- (from ANY) ensure -- from ANY instance_free: class default_rescue -- Process exception for routines with no Rescue clause. -- (Default: do nothing.) -- (from ANY) frozen do_nothing -- Execute a null action. -- (from ANY) ensure -- from ANY instance_free: class feature -- Implementation dispose -- Action to be executed just before garbage collection -- reclaims an object. -- Effect it in descendants to perform specific dispose -- actions. Those actions should only take care of freeing -- external resources; they should not perform remote calls -- on other objects since these may also be dead and reclaimed. -- (from GAME_HAPTIC) feature -- Output Io: STD_FILES -- Handle to standard file setup -- (from ANY) ensure -- from ANY instance_free: class io_not_void: Result /= Void out: STRING_8 -- New string containing terse printable representation -- of current object -- (from ANY) ensure -- from ANY out_not_void: Result /= Void print (o: detachable ANY) -- Write terse external representation of o -- on standard output. -- (from ANY) ensure -- from ANY instance_free: class frozen tagged_out: STRING_8 -- New string containing terse printable representation -- of current object -- (from ANY) ensure -- from ANY tagged_out_not_void: Result /= Void feature -- Platform Operating_environment: OPERATING_ENVIRONMENT -- Objects available from the operating system -- (from ANY) ensure -- from ANY instance_free: class operating_environment_not_void: Result /= Void feature -- Query axes_count: INTEGER_32 -- The number of axes of Current -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open index: INTEGER_32 -- The unique identifier of Current is_auto_center_supported: BOOLEAN -- Is Current supported the auto center feature -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open is_conditionnal_damper_effect_supported: BOOLEAN -- Is Current supported conditionnal effect base on axis velocities -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open is_conditionnal_friction_effect_supported: BOOLEAN -- Is Current supported conditionnal effect base on axis movement -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open is_conditionnal_inertia_effect_supported: BOOLEAN -- Is Current supported conditionnal effect base on axis acceleration -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open is_conditionnal_spring_effect_supported: BOOLEAN -- Is Current supported conditionnal effect base on axis position -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open is_constant_effect_supported: BOOLEAN -- Is Current supported constant effect -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open is_custom_effect_supported: BOOLEAN -- Is Current supported custom effect -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open is_effect_supported (a_effect: GAME_HAPTIC_EFFECT): BOOLEAN -- Is a_effect can be compiled by Current -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open is_gain_control_supported: BOOLEAN -- Is Current supported gain control -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open is_left_right_effect_supported: BOOLEAN -- Is Current supported left/right effect -- Used in lots of recent console controller -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open is_linear_ramp_effect_supported: BOOLEAN -- Is Current supported linear ramp effect -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open is_open: BOOLEAN -- Is Current currently usable -- (from GAME_HAPTIC) is_pause_supported: BOOLEAN -- Is Current supported the pause of an effect -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open is_paused: BOOLEAN -- Has Current presently stop with a pause. -- (from GAME_HAPTIC) is_periodic_saw_tooth_down_effect_supported: BOOLEAN -- Is Current supported periodic effect of the type -- sawtooth with the openning at the top. -- \ |\ |\ |\ |\ |\ |\ | -- \ | \ | \ | \ | \ | \ | \ | -- \| \| \| \| \| \| \| -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open is_periodic_saw_tooth_up_effect_supported: BOOLEAN -- Is Current supported periodic effect of the type -- sawtooth with the openning at the bottom. -- /| /| /| /| /| /| /| -- / | / | / | / | / | / | / | -- / |/ |/ |/ |/ |/ |/ | -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open is_periodic_sine_effect_supported: BOOLEAN -- Is Current supported periodic sine effect -- __ __ __ __ -- / \ / \ / \ / -- / \__/ \__/ \__/ -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open is_periodic_triangle_effect_supported: BOOLEAN -- Is Current supported periodic triangle effect -- /\ /\ /\ /\ /\ -- / \ / \ / \ / \ / -- / \/ \/ \/ \/ -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open is_rumble: BOOLEAN -- Is Current initialized as a rumble playback -- (from GAME_HAPTIC) is_rumble_supported: BOOLEAN -- Can Current be used as a simple rumble playback -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open is_status_query_supported: BOOLEAN -- Is Current supported the query of effect status -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open maximum_effect_compiled: INTEGER_32 -- The maximum number of effect that Current can compiled and store -- Note that on some system, tis information is not given, so this -- may be a simple approximation -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open maximum_effect_playing: INTEGER_32 -- The maximum number of effect that Current can play at the same time -- Note that on some system, tis information is not given, so this -- may be a simple approximation -- (from GAME_HAPTIC) require -- from GAME_HAPTIC is_open: is_open name: READABLE_STRING_GENERAL -- A text to identified Current invariant -- from GAME_HAPTIC is_haptic_enabled: Game_library.is_haptic_enable -- from ANY reflexive_equality: standard_is_equal (Current) reflexive_conformance: conforms_to (Current) end -- class GAME_HAPTIC_DEVICE
Generated by ISE EiffelStudio