Added SDL_HAPTIC_CUSTOM (not supported on linux). gsoc2008_force_feedback
authorEdgar Simo <bobbens@gmail.com>
Tue, 01 Jul 2008 16:19:54 +0000
branchgsoc2008_force_feedback
changeset 2486 24dd8b8669fa
parent 2485 67978eea6d10
child 2487 4c8e25ef2d97
Added SDL_HAPTIC_CUSTOM (not supported on linux). Exposed SDL_HapticEffectSupported().
include/SDL_haptic.h
src/haptic/SDL_haptic.c
src/haptic/linux/SDL_syshaptic.c
--- a/include/SDL_haptic.h	Tue Jul 01 14:31:04 2008 +0000
+++ b/include/SDL_haptic.h	Tue Jul 01 16:19:54 2008 +0000
@@ -53,15 +53,21 @@
 #define SDL_HAPTIC_FRICTION   (1<<4)
 #define SDL_HAPTIC_DAMPER     (1<<5)
 #define SDL_HAPTIC_INERTIA    (1<<6)
-#define SDL_HAPTIC_GAIN       (1<<7)
-#define SDL_HAPTIC_AUTOCENTER (1<<8)
+#define SDL_HAPTIC_CUSTOM     (1<<7)
+#define SDL_HAPTIC_GAIN       (1<<8)
+#define SDL_HAPTIC_AUTOCENTER (1<<9)
 
+
+/*
+ * Different waveforms a SDL_HAPTIC_PERIODIC effect can have.
+ */
 typedef enum SDL_waveform {
    SDL_WAVEFORM_SINE,
    SDL_WAVEFORM_SQUARE,
    SDL_WAVEFORM_TRIANGLE,
    SDL_WAVEFORM_SAWTOOTHUP,
-   SDL_WAVEFORM_SAWTOOTHDOWN
+   SDL_WAVEFORM_SAWTOOTHDOWN,
+   SDL_WAVEFORM_CUSTOM
 } SDL_waveform;
 
 
@@ -153,7 +159,6 @@
    Sint16 left_coeff; /* How fast to increase the force towards the left */
    Uint16 deadband; /* Size of the dead zone */
    Sint16 center; /* Position of the dead zone */
-
 } SDL_HapticCondition;
 typedef struct SDL_HapticRamp {
    /* Header */
@@ -177,7 +182,6 @@
    Uint16 attack_level;
    Uint16 fade_length;
    Uint16 fade_level;
-
 } SDL_HapticRamp;
 
 typedef union SDL_HapticEffect {
@@ -231,6 +235,14 @@
 extern DECLSPEC unsigned int SDL_HapticQueryEffects(SDL_Haptic * haptic);
 
 /*
+ * Checks to see if effect is supported by haptic.
+ *
+ * Returns SDL_TRUE if effect is supported, SDL_FALSE if it isn't and -1
+ * on error.
+ */
+extern DECLSPEC int SDL_HapticEffectSupported(SDL_Haptic * haptic, SDL_HapticEffect * effect);
+
+/*
  * Creates a new haptic effect on the device.
  *
  * Returns the id of the effect on success, -1 on failure.
--- a/src/haptic/SDL_haptic.c	Tue Jul 01 14:31:04 2008 +0000
+++ b/src/haptic/SDL_haptic.c	Tue Jul 01 16:19:54 2008 +0000
@@ -228,6 +228,9 @@
    return haptic->supported;
 }
 
+/*
+ * Checks to see if the device can support the effect.
+ */
 int
 SDL_HapticEffectSupported(SDL_Haptic * haptic, SDL_HapticEffect * effect)
 {
--- a/src/haptic/linux/SDL_syshaptic.c	Tue Jul 01 14:31:04 2008 +0000
+++ b/src/haptic/linux/SDL_syshaptic.c	Tue Jul 01 16:19:54 2008 +0000
@@ -94,6 +94,7 @@
    EV_TEST(FF_FRICTION,   SDL_HAPTIC_FRICTION);
    EV_TEST(FF_DAMPER,     SDL_HAPTIC_DAMPER);
    EV_TEST(FF_INERTIA,    SDL_HAPTIC_INERTIA);
+   EV_TEST(FF_CUSTOM,     SDL_HAPTIC_CUSTOM);
    EV_TEST(FF_GAIN,       SDL_HAPTIC_GAIN);
    EV_TEST(FF_AUTOCENTER, SDL_HAPTIC_AUTOCENTER);