src/haptic/SDL_syshaptic.h
author Edgar Simo <bobbens@gmail.com>
Tue, 01 Jul 2008 14:21:09 +0000
branchgsoc2008_force_feedback
changeset 2484 666472fd4cb0
parent 2483 9d52368ebcf5
child 2485 67978eea6d10
permissions -rw-r--r--
HapticSetGain checks to see if device supports it. Added HapticSetAutocenter().
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2472
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
     1
/*
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
     2
    SDL - Simple DirectMedia Layer
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
     3
    Copyright (C) 2008 Edgar Simo
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
     4
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
     5
    This library is free software; you can redistribute it and/or
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
     6
    modify it under the terms of the GNU Lesser General Public
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
     7
    License as published by the Free Software Foundation; either
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
     8
    version 2.1 of the License, or (at your option) any later version.
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
     9
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    10
    This library is distributed in the hope that it will be useful,
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    11
    but WITHOUT ANY WARRANTY; without even the implied warranty of
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    12
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    13
    Lesser General Public License for more details.
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    14
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    15
    You should have received a copy of the GNU Lesser General Public
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    16
    License along with this library; if not, write to the Free Software
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    17
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    18
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    19
    Sam Lantinga
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    20
    slouken@libsdl.org
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    21
*/
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    22
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    23
#include "SDL_config.h"
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    24
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    25
#include "SDL_haptic.h"
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    26
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    27
2477
97f75ea43a93 Starting to add infrastructure to handle haptic effects.
Edgar Simo <bobbens@gmail.com>
parents: 2475
diff changeset
    28
struct haptic_effect
97f75ea43a93 Starting to add infrastructure to handle haptic effects.
Edgar Simo <bobbens@gmail.com>
parents: 2475
diff changeset
    29
{
97f75ea43a93 Starting to add infrastructure to handle haptic effects.
Edgar Simo <bobbens@gmail.com>
parents: 2475
diff changeset
    30
   SDL_HapticEffect effect; /* The current event */
97f75ea43a93 Starting to add infrastructure to handle haptic effects.
Edgar Simo <bobbens@gmail.com>
parents: 2475
diff changeset
    31
   struct haptic_hweffect *hweffect; /* The hardware behind the event */
97f75ea43a93 Starting to add infrastructure to handle haptic effects.
Edgar Simo <bobbens@gmail.com>
parents: 2475
diff changeset
    32
};
97f75ea43a93 Starting to add infrastructure to handle haptic effects.
Edgar Simo <bobbens@gmail.com>
parents: 2475
diff changeset
    33
97f75ea43a93 Starting to add infrastructure to handle haptic effects.
Edgar Simo <bobbens@gmail.com>
parents: 2475
diff changeset
    34
/*
97f75ea43a93 Starting to add infrastructure to handle haptic effects.
Edgar Simo <bobbens@gmail.com>
parents: 2475
diff changeset
    35
 * The real SDL_Haptic event.
97f75ea43a93 Starting to add infrastructure to handle haptic effects.
Edgar Simo <bobbens@gmail.com>
parents: 2475
diff changeset
    36
 */
2472
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    37
struct _SDL_Haptic
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    38
{  
2477
97f75ea43a93 Starting to add infrastructure to handle haptic effects.
Edgar Simo <bobbens@gmail.com>
parents: 2475
diff changeset
    39
   Uint8 index; /* Stores index it is attached to */
97f75ea43a93 Starting to add infrastructure to handle haptic effects.
Edgar Simo <bobbens@gmail.com>
parents: 2475
diff changeset
    40
   const char* name; /* Stores the name of the device */
2472
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    41
2477
97f75ea43a93 Starting to add infrastructure to handle haptic effects.
Edgar Simo <bobbens@gmail.com>
parents: 2475
diff changeset
    42
   struct haptic_effect *effects; /* Allocated effects */
97f75ea43a93 Starting to add infrastructure to handle haptic effects.
Edgar Simo <bobbens@gmail.com>
parents: 2475
diff changeset
    43
   int neffects; /* Maximum amount of effects */
97f75ea43a93 Starting to add infrastructure to handle haptic effects.
Edgar Simo <bobbens@gmail.com>
parents: 2475
diff changeset
    44
   unsigned int supported; /* Supported effects */
2472
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    45
2477
97f75ea43a93 Starting to add infrastructure to handle haptic effects.
Edgar Simo <bobbens@gmail.com>
parents: 2475
diff changeset
    46
   struct haptic_hwdata *hwdata; /* Driver dependent */
97f75ea43a93 Starting to add infrastructure to handle haptic effects.
Edgar Simo <bobbens@gmail.com>
parents: 2475
diff changeset
    47
   int ref_count; /* Count for multiple opens */
2472
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    48
};
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    49
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    50
extern int SDL_SYS_HapticInit(void);
2475
4b874e3a3a2c Some code cleanup.
Edgar Simo <bobbens@gmail.com>
parents: 2472
diff changeset
    51
extern const char * SDL_SYS_HapticName(int index);
4b874e3a3a2c Some code cleanup.
Edgar Simo <bobbens@gmail.com>
parents: 2472
diff changeset
    52
extern int SDL_SYS_HapticOpen(SDL_Haptic * haptic);
4b874e3a3a2c Some code cleanup.
Edgar Simo <bobbens@gmail.com>
parents: 2472
diff changeset
    53
extern void SDL_SYS_HapticClose(SDL_Haptic * haptic);
4b874e3a3a2c Some code cleanup.
Edgar Simo <bobbens@gmail.com>
parents: 2472
diff changeset
    54
extern void SDL_SYS_HapticQuit(void);
2479
b9eb2cfe16cd Added some preliminary support for haptic effect control.
Edgar Simo <bobbens@gmail.com>
parents: 2477
diff changeset
    55
extern int SDL_SYS_HapticNewEffect(SDL_Haptic * haptic,
2480
b883974445fc Some more error reporting.
Edgar Simo <bobbens@gmail.com>
parents: 2479
diff changeset
    56
      struct haptic_effect * effect, SDL_HapticEffect * base);
2479
b9eb2cfe16cd Added some preliminary support for haptic effect control.
Edgar Simo <bobbens@gmail.com>
parents: 2477
diff changeset
    57
extern int SDL_SYS_HapticRunEffect(SDL_Haptic * haptic,
b9eb2cfe16cd Added some preliminary support for haptic effect control.
Edgar Simo <bobbens@gmail.com>
parents: 2477
diff changeset
    58
      struct haptic_effect * effect);
b9eb2cfe16cd Added some preliminary support for haptic effect control.
Edgar Simo <bobbens@gmail.com>
parents: 2477
diff changeset
    59
extern void SDL_SYS_HapticDestroyEffect(SDL_Haptic * haptic,
b9eb2cfe16cd Added some preliminary support for haptic effect control.
Edgar Simo <bobbens@gmail.com>
parents: 2477
diff changeset
    60
      struct haptic_effect * effect);
2483
9d52368ebcf5 Setting effects memory to 0.
Edgar Simo <bobbens@gmail.com>
parents: 2480
diff changeset
    61
extern int SDL_SYS_HapticSetGain(SDL_Haptic * haptic, int gain);
2484
666472fd4cb0 HapticSetGain checks to see if device supports it.
Edgar Simo <bobbens@gmail.com>
parents: 2483
diff changeset
    62
extern int SDL_SYS_HapticSetAutocenter(SDL_Haptic * haptic, int autocenter);
2472
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
    63
2479
b9eb2cfe16cd Added some preliminary support for haptic effect control.
Edgar Simo <bobbens@gmail.com>
parents: 2477
diff changeset
    64