annotate src/haptic/SDL_syshaptic.h @ 2479:b9eb2cfe16cd gsoc2008_force_feedback

Added some preliminary support for haptic effect control.
author Edgar Simo <bobbens@gmail.com>
date Mon, 30 Jun 2008 21:38:29 +0000
parents 97f75ea43a93
children b883974445fc
rev   line source
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,
b9eb2cfe16cd Added some preliminary support for haptic effect control.
Edgar Simo <bobbens@gmail.com>
parents: 2477
diff changeset
56 struct haptic_effect * effect);
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);
2472
3f73c88c9abb First commit of the SDL_haptic subsystem.
Edgar Simo <bobbens@gmail.com>
parents:
diff changeset
61
2479
b9eb2cfe16cd Added some preliminary support for haptic effect control.
Edgar Simo <bobbens@gmail.com>
parents: 2477
diff changeset
62