comparison include/SDL_haptic.h @ 2486:24dd8b8669fa gsoc2008_force_feedback

Added SDL_HAPTIC_CUSTOM (not supported on linux). Exposed SDL_HapticEffectSupported().
author Edgar Simo <bobbens@gmail.com>
date Tue, 01 Jul 2008 16:19:54 +0000
parents 67978eea6d10
children 4c8e25ef2d97
comparison
equal deleted inserted replaced
2485:67978eea6d10 2486:24dd8b8669fa
51 #define SDL_HAPTIC_RAMP (1<<2) 51 #define SDL_HAPTIC_RAMP (1<<2)
52 #define SDL_HAPTIC_SPRING (1<<3) 52 #define SDL_HAPTIC_SPRING (1<<3)
53 #define SDL_HAPTIC_FRICTION (1<<4) 53 #define SDL_HAPTIC_FRICTION (1<<4)
54 #define SDL_HAPTIC_DAMPER (1<<5) 54 #define SDL_HAPTIC_DAMPER (1<<5)
55 #define SDL_HAPTIC_INERTIA (1<<6) 55 #define SDL_HAPTIC_INERTIA (1<<6)
56 #define SDL_HAPTIC_GAIN (1<<7) 56 #define SDL_HAPTIC_CUSTOM (1<<7)
57 #define SDL_HAPTIC_AUTOCENTER (1<<8) 57 #define SDL_HAPTIC_GAIN (1<<8)
58 58 #define SDL_HAPTIC_AUTOCENTER (1<<9)
59
60
61 /*
62 * Different waveforms a SDL_HAPTIC_PERIODIC effect can have.
63 */
59 typedef enum SDL_waveform { 64 typedef enum SDL_waveform {
60 SDL_WAVEFORM_SINE, 65 SDL_WAVEFORM_SINE,
61 SDL_WAVEFORM_SQUARE, 66 SDL_WAVEFORM_SQUARE,
62 SDL_WAVEFORM_TRIANGLE, 67 SDL_WAVEFORM_TRIANGLE,
63 SDL_WAVEFORM_SAWTOOTHUP, 68 SDL_WAVEFORM_SAWTOOTHUP,
64 SDL_WAVEFORM_SAWTOOTHDOWN 69 SDL_WAVEFORM_SAWTOOTHDOWN,
70 SDL_WAVEFORM_CUSTOM
65 } SDL_waveform; 71 } SDL_waveform;
66 72
67 73
68 /* 74 /*
69 * All values max at 32767 (0x7fff). Signed values also can be negative. 75 * All values max at 32767 (0x7fff). Signed values also can be negative.
151 Uint16 left_sat; /* Level when joystick is to the left */ 157 Uint16 left_sat; /* Level when joystick is to the left */
152 Sint16 right_coeff; /* How fast to increase the force towards the right */ 158 Sint16 right_coeff; /* How fast to increase the force towards the right */
153 Sint16 left_coeff; /* How fast to increase the force towards the left */ 159 Sint16 left_coeff; /* How fast to increase the force towards the left */
154 Uint16 deadband; /* Size of the dead zone */ 160 Uint16 deadband; /* Size of the dead zone */
155 Sint16 center; /* Position of the dead zone */ 161 Sint16 center; /* Position of the dead zone */
156
157 } SDL_HapticCondition; 162 } SDL_HapticCondition;
158 typedef struct SDL_HapticRamp { 163 typedef struct SDL_HapticRamp {
159 /* Header */ 164 /* Header */
160 Uint16 type; /* SDL_HAPTIC_RAMP */ 165 Uint16 type; /* SDL_HAPTIC_RAMP */
161 Uint16 direction; 166 Uint16 direction;
175 /* Envelope */ 180 /* Envelope */
176 Uint16 attack_length; 181 Uint16 attack_length;
177 Uint16 attack_level; 182 Uint16 attack_level;
178 Uint16 fade_length; 183 Uint16 fade_length;
179 Uint16 fade_level; 184 Uint16 fade_level;
180
181 } SDL_HapticRamp; 185 } SDL_HapticRamp;
182 186
183 typedef union SDL_HapticEffect { 187 typedef union SDL_HapticEffect {
184 /* Common for all force feedback effects */ 188 /* Common for all force feedback effects */
185 Uint16 type; /* Effect type */ 189 Uint16 type; /* Effect type */
229 * Example: (SDL_HapticQueryEffects(haptic) & SDL_HAPTIC_CONSTANT) 233 * Example: (SDL_HapticQueryEffects(haptic) & SDL_HAPTIC_CONSTANT)
230 */ 234 */
231 extern DECLSPEC unsigned int SDL_HapticQueryEffects(SDL_Haptic * haptic); 235 extern DECLSPEC unsigned int SDL_HapticQueryEffects(SDL_Haptic * haptic);
232 236
233 /* 237 /*
238 * Checks to see if effect is supported by haptic.
239 *
240 * Returns SDL_TRUE if effect is supported, SDL_FALSE if it isn't and -1
241 * on error.
242 */
243 extern DECLSPEC int SDL_HapticEffectSupported(SDL_Haptic * haptic, SDL_HapticEffect * effect);
244
245 /*
234 * Creates a new haptic effect on the device. 246 * Creates a new haptic effect on the device.
235 * 247 *
236 * Returns the id of the effect on success, -1 on failure. 248 * Returns the id of the effect on success, -1 on failure.
237 */ 249 */
238 extern DECLSPEC int SDL_HapticNewEffect(SDL_Haptic * haptic, SDL_HapticEffect * effect); 250 extern DECLSPEC int SDL_HapticNewEffect(SDL_Haptic * haptic, SDL_HapticEffect * effect);