note description: "Information and control of force feedback devices" author: "Louis Marchand" date: "Sat, 28 Feb 2015 19:20:47 +0000" revision: "2.0" deferred class interface GAME_HAPTIC feature -- Query is_open: BOOLEAN -- Is Current currently usable is_constant_effect_supported: BOOLEAN -- Is Current supported constant effect require is_open: is_open is_periodic_sine_effect_supported: BOOLEAN -- Is Current supported periodic sine effect -- __ __ __ __ -- / \ / \ / \ / -- / \__/ \__/ \__/ require is_open: is_open is_periodic_triangle_effect_supported: BOOLEAN -- Is Current supported periodic triangle effect -- /\ /\ /\ /\ /\ -- / \ / \ / \ / \ / -- / \/ \/ \/ \/ require 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. -- /| /| /| /| /| /| /| -- / | / | / | / | / | / | / | -- / |/ |/ |/ |/ |/ |/ | require is_open: is_open is_periodic_saw_tooth_down_effect_supported: BOOLEAN -- Is Current supported periodic effect of the type -- sawtooth with the openning at the top. -- \ |\ |\ |\ |\ |\ |\ | -- \ | \ | \ | \ | \ | \ | \ | -- \| \| \| \| \| \| \| require is_open: is_open is_linear_ramp_effect_supported: BOOLEAN -- Is Current supported linear ramp effect require is_open: is_open is_conditionnal_spring_effect_supported: BOOLEAN -- Is Current supported conditionnal effect base on axis position require is_open: is_open is_conditionnal_damper_effect_supported: BOOLEAN -- Is Current supported conditionnal effect base on axis velocities require is_open: is_open is_conditionnal_inertia_effect_supported: BOOLEAN -- Is Current supported conditionnal effect base on axis acceleration require is_open: is_open is_conditionnal_friction_effect_supported: BOOLEAN -- Is Current supported conditionnal effect base on axis movement require is_open: is_open is_left_right_effect_supported: BOOLEAN -- Is Current supported left/right effect -- Used in lots of recent console controller require is_open: is_open is_custom_effect_supported: BOOLEAN -- Is Current supported custom effect require is_open: is_open is_gain_control_supported: BOOLEAN -- Is Current supported gain control require is_open: is_open is_auto_center_supported: BOOLEAN -- Is Current supported the auto center feature require is_open: is_open is_status_query_supported: BOOLEAN -- Is Current supported the query of effect status require is_open: is_open is_pause_supported: BOOLEAN -- Is Current supported the pause of an effect require is_open: is_open is_rumble_supported: BOOLEAN -- Can Current be used as a simple rumble playback require is_open: is_open is_paused: BOOLEAN -- Has Current presently stop with a pause. is_rumble: BOOLEAN -- Is Current initialized as a rumble playback axes_count: INTEGER_32 -- The number of axes of Current require 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 require 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 require is_open: is_open is_effect_supported (a_effect: GAME_HAPTIC_EFFECT): BOOLEAN -- Is a_effect can be compiled by Current require is_open feature -- Access open -- Make Current usable require not_open: not is_open ensure is_open: not has_error implies is_open close -- Make Current not usable require is_open: is_open ensure is_close: not is_open pause -- Mommentaly stop the playing effect. Use resume to restart it -- where it was when paused. require is_open: is_open pause_supported: is_pause_supported not_paused: not is_paused ensure is_paused: not has_error implies is_paused resume -- Restart an effect that has been pause before. require is_open: is_open pause_supported: is_pause_supported is_paused: is_paused ensure in_unpaused: not has_error implies not is_paused initialize_rumble -- Initialized a rumble playback into Current require is_open: is_open rumble_supported: is_rumble_supported not_already_rumble: not is_rumble ensure is_rumble_activated: not has_error implies is_rumble 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 require 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) require 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 require is_open: is_open rumble_supported: is_rumble_supported is_rumble_device: is_rumble gain: INTEGER_32 assign set_gain -- The intensity of Current require gain_control_supported: is_gain_control_supported set_gain (a_gain: INTEGER_32) -- Assign to gain the value of a_gain require is_open: is_open gain_control_supported: is_gain_control_supported ensure is_assign: not has_error implies gain = a_gain stop_all_effects -- Stop every effect on Current require is_open: is_open compiled_effect_count: INTEGER_32 -- Number of compiled_effects in Current compiled_effects: CHAIN_INDEXABLE_ITERATOR [GAME_HAPTIC_EFFECT_COMPILED] -- Every compiled effect into Current 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 require current_valid: is_open effect_valid: a_effect.exists effect_supported: is_effect_supported (a_effect) ensure 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) last_compiled_effect: GAME_HAPTIC_EFFECT_COMPILED -- Last compiled effect that has been compiled with compile require element_exist: compiled_effect_count > 0 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. invariant is_haptic_enabled: Game_library.is_haptic_enable end -- class GAME_HAPTIC
Generated by ISE EiffelStudio