Logo Search packages:      
Sourcecode: pcsxr version File versions  Download package

Classes | Defines | Typedefs | Functions

SDL_haptic.h File Reference

The SDL Haptic subsystem allows you to control haptic (force feedback) devices. More...

#include "SDL_stdinc.h"
#include "SDL_error.h"
#include "SDL_joystick.h"
#include "begin_code.h"
#include "close_code.h"
Include dependency graph for SDL_haptic.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  SDL_HapticCondition
 A structure containing a template for a Condition effect. More...
struct  SDL_HapticConstant
 A structure containing a template for a Constant effect. More...
struct  SDL_HapticCustom
 A structure containing a template for the SDL_HAPTIC_CUSTOM effect. More...
struct  SDL_HapticDirection
 Structure that represents a haptic direction. More...
union  SDL_HapticEffect
 The generic template for any haptic effect. More...
struct  SDL_HapticPeriodic
 A structure containing a template for a Periodic effect. More...
struct  SDL_HapticRamp
 A structure containing a template for a Ramp effect. More...

Defines

#define SDL_HAPTIC_AUTOCENTER   (1<<13)
 Device can set autocenter.
#define SDL_HAPTIC_GAIN   (1<<12)
 Device can set global gain.
#define SDL_HAPTIC_INFINITY   4294967295U
 Used to play a device an infinite number of times.
#define SDL_HAPTIC_PAUSE   (1<<15)
 Device can be paused.
#define SDL_HAPTIC_STATUS   (1<<14)
 Device can be queried for effect status.
Haptic effects
#define SDL_HAPTIC_CONSTANT   (1<<0)
 Constant effect supported.
#define SDL_HAPTIC_SINE   (1<<1)
 Sine wave effect supported.
#define SDL_HAPTIC_SQUARE   (1<<2)
 Square wave effect supported.
#define SDL_HAPTIC_TRIANGLE   (1<<3)
 Triangle wave effect supported.
#define SDL_HAPTIC_SAWTOOTHUP   (1<<4)
 Sawtoothup wave effect supported.
#define SDL_HAPTIC_SAWTOOTHDOWN   (1<<5)
 Sawtoothdown wave effect supported.
#define SDL_HAPTIC_RAMP   (1<<6)
 Ramp effect supported.
#define SDL_HAPTIC_SPRING   (1<<7)
 Spring effect supported - uses axes position.
#define SDL_HAPTIC_DAMPER   (1<<8)
 Damper effect supported - uses axes velocity.
#define SDL_HAPTIC_INERTIA   (1<<9)
 Inertia effect supported - uses axes acceleration.
#define SDL_HAPTIC_FRICTION   (1<<10)
 Friction effect supported - uses axes movement.
#define SDL_HAPTIC_CUSTOM   (1<<11)
 Custom effect is supported.
Direction encodings
#define SDL_HAPTIC_POLAR   0
 Uses polar coordinates for the direction.
#define SDL_HAPTIC_CARTESIAN   1
 Uses cartesian coordinates for the direction.
#define SDL_HAPTIC_SPHERICAL   2
 Uses spherical coordinates for the direction.

Typedefs

typedef struct _SDL_Haptic SDL_Haptic
 The haptic structure used to identify an SDL haptic.
typedef struct SDL_HapticCondition SDL_HapticCondition
 A structure containing a template for a Condition effect.
typedef struct SDL_HapticConstant SDL_HapticConstant
 A structure containing a template for a Constant effect.
typedef struct SDL_HapticCustom SDL_HapticCustom
 A structure containing a template for the SDL_HAPTIC_CUSTOM effect.
typedef struct SDL_HapticDirection SDL_HapticDirection
 Structure that represents a haptic direction.
typedef union SDL_HapticEffect SDL_HapticEffect
 The generic template for any haptic effect.
typedef struct SDL_HapticPeriodic SDL_HapticPeriodic
 A structure containing a template for a Periodic effect.
typedef struct SDL_HapticRamp SDL_HapticRamp
 A structure containing a template for a Ramp effect.

Functions

DECLSPEC void SDLCALL SDL_HapticClose (SDL_Haptic *haptic)
 Closes a Haptic device previously opened with SDL_HapticOpen().
DECLSPEC void SDLCALL SDL_HapticDestroyEffect (SDL_Haptic *haptic, int effect)
 Destroys a haptic effect on the device.
DECLSPEC int SDLCALL SDL_HapticEffectSupported (SDL_Haptic *haptic, SDL_HapticEffect *effect)
 Checks to see if effect is supported by haptic.
DECLSPEC int SDLCALL SDL_HapticGetEffectStatus (SDL_Haptic *haptic, int effect)
 Gets the status of the current effect on the haptic device.
DECLSPEC int SDLCALL SDL_HapticIndex (SDL_Haptic *haptic)
 Gets the index of a haptic device.
DECLSPEC const char *SDLCALL SDL_HapticName (int device_index)
 Get the implementation dependent name of a Haptic device.
DECLSPEC int SDLCALL SDL_HapticNewEffect (SDL_Haptic *haptic, SDL_HapticEffect *effect)
 Creates a new haptic effect on the device.
DECLSPEC int SDLCALL SDL_HapticNumAxes (SDL_Haptic *haptic)
 Gets the number of haptic axes the device has.
DECLSPEC int SDLCALL SDL_HapticNumEffects (SDL_Haptic *haptic)
 Returns the number of effects a haptic device can store.
DECLSPEC int SDLCALL SDL_HapticNumEffectsPlaying (SDL_Haptic *haptic)
 Returns the number of effects a haptic device can play at the same time.
DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpen (int device_index)
 Opens a Haptic device for usage.
DECLSPEC int SDLCALL SDL_HapticOpened (int device_index)
 Checks if the haptic device at index has been opened.
DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpenFromJoystick (SDL_Joystick *joystick)
 Opens a Haptic device for usage from a Joystick device.
DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpenFromMouse (void)
 Tries to open a haptic device from the current mouse.
DECLSPEC int SDLCALL SDL_HapticPause (SDL_Haptic *haptic)
 Pauses a haptic device.
DECLSPEC unsigned int SDLCALL SDL_HapticQuery (SDL_Haptic *haptic)
 Gets the haptic devices supported features in bitwise matter.
DECLSPEC int SDLCALL SDL_HapticRunEffect (SDL_Haptic *haptic, int effect, Uint32 iterations)
 Runs the haptic effect on it's assosciated haptic device.
DECLSPEC int SDLCALL SDL_HapticSetAutocenter (SDL_Haptic *haptic, int autocenter)
 Sets the global autocenter of the device.
DECLSPEC int SDLCALL SDL_HapticSetGain (SDL_Haptic *haptic, int gain)
 Sets the global gain of the device.
DECLSPEC int SDLCALL SDL_HapticStopAll (SDL_Haptic *haptic)
 Stops all the currently playing effects on a haptic device.
DECLSPEC int SDLCALL SDL_HapticStopEffect (SDL_Haptic *haptic, int effect)
 Stops the haptic effect on it's assosciated haptic device.
DECLSPEC int SDLCALL SDL_HapticUnpause (SDL_Haptic *haptic)
 Unpauses a haptic device.
DECLSPEC int SDLCALL SDL_HapticUpdateEffect (SDL_Haptic *haptic, int effect, SDL_HapticEffect *data)
 Updates the properties of an effect.
DECLSPEC int SDLCALL SDL_JoystickIsHaptic (SDL_Joystick *joystick)
 Checks to see if a joystick has haptic features.
DECLSPEC int SDLCALL SDL_MouseIsHaptic (void)
 Gets whether or not the current mouse has haptic capabilities.
DECLSPEC int SDLCALL SDL_NumHaptics (void)
 Count the number of joysticks attached to the system.

Detailed Description

The SDL Haptic subsystem allows you to control haptic (force feedback) devices.

The basic usage is as follows:

Example:
 int test_haptic( SDL_Joystick * joystick ) {
    SDL_Haptic *haptic;
    SDL_HapticEffect effect;
    int effect_id;

    // Open the device
    haptic = SDL_HapticOpenFromJoystick( joystick );
    if (haptic == NULL) return -1; // Most likely joystick isn't haptic

    // See if it can do sine waves
    if ((SDL_HapticQuery(haptic) & SDL_HAPTIC_SINE)==0) {
       SDL_HapticClose(haptic); // No sine effect
       return -1;
    }

    // Create the effect
    memset( &effect, 0, sizeof(SDL_HapticEffect) ); // 0 is safe default
    effect.type = SDL_HAPTIC_SINE;
    effect.periodic.direction.type = SDL_HAPTIC_POLAR; // Polar coordinates
    effect.periodic.direction.dir[0] = 18000; // Force comes from south
    effect.periodic.period = 1000; // 1000 ms
    effect.periodic.magnitude = 20000; // 20000/32767 strength
    effect.periodic.length = 5000; // 5 seconds long
    effect.periodic.attack_length = 1000; // Takes 1 second to get max strength
    effect.periodic.fade_length = 1000; // Takes 1 second to fade away

    // Upload the effect
    effect_id = SDL_HapticNewEffect( haptic, &effect );

    // Test the effect
    SDL_HapticRunEffect( haptic, effect_id, 1 );
    SDL_Delay( 5000); // Wait for the effect to finish

    // We destroy the effect, although closing the device also does this
    SDL_HapticDestroyEffect( haptic, effect_id );

    // Close the device
    SDL_HapticClose(haptic);

    return 0; // Success
 }
Author:
Edgar Simo Serra

Definition in file SDL_haptic.h.


Generated by  Doxygen 1.6.0   Back to index