Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Latest commit

 

History

History
208 lines (177 loc) · 5.97 KB

SDL_joystick.h

File metadata and controls

208 lines (177 loc) · 5.97 KB
 
Apr 26, 2001
Apr 26, 2001
1
/*
Apr 8, 2011
Apr 8, 2011
2
3
Simple DirectMedia Layer
Copyright (C) 1997-2011 Sam Lantinga <slouken@libsdl.org>
Apr 26, 2001
Apr 26, 2001
4
Apr 8, 2011
Apr 8, 2011
5
6
7
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Apr 26, 2001
Apr 26, 2001
8
Apr 8, 2011
Apr 8, 2011
9
10
11
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
Apr 26, 2001
Apr 26, 2001
12
Apr 8, 2011
Apr 8, 2011
13
14
15
16
17
18
19
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
Apr 26, 2001
Apr 26, 2001
20
21
*/
Jul 10, 2006
Jul 10, 2006
22
/**
Oct 19, 2009
Oct 19, 2009
23
24
25
* \file SDL_joystick.h
*
* Include file for SDL joystick event handling
Jul 10, 2006
Jul 10, 2006
26
*/
Apr 26, 2001
Apr 26, 2001
27
28
29
30
#ifndef _SDL_joystick_h
#define _SDL_joystick_h
Feb 10, 2006
Feb 10, 2006
31
#include "SDL_stdinc.h"
Feb 10, 2006
Feb 10, 2006
32
#include "SDL_error.h"
Apr 26, 2001
Apr 26, 2001
33
34
35
36
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
Jul 10, 2006
Jul 10, 2006
37
/* *INDENT-OFF* */
Apr 26, 2001
Apr 26, 2001
38
extern "C" {
Jul 10, 2006
Jul 10, 2006
39
/* *INDENT-ON* */
Apr 26, 2001
Apr 26, 2001
40
41
#endif
Oct 19, 2009
Oct 19, 2009
42
43
44
45
46
47
48
/**
* \file SDL_joystick.h
*
* In order to use these functions, SDL_Init() must have been called
* with the ::SDL_INIT_JOYSTICK flag. This causes SDL to scan the system
* for joysticks, and load appropriate drivers.
*/
Apr 26, 2001
Apr 26, 2001
49
50
51
52
53
54
55
/* The joystick structure used to identify an SDL joystick */
struct _SDL_Joystick;
typedef struct _SDL_Joystick SDL_Joystick;
/* Function prototypes */
Oct 19, 2009
Oct 19, 2009
56
57
/**
* Count the number of joysticks attached to the system
Apr 26, 2001
Apr 26, 2001
58
*/
Apr 11, 2002
Apr 11, 2002
59
extern DECLSPEC int SDLCALL SDL_NumJoysticks(void);
Apr 26, 2001
Apr 26, 2001
60
Oct 19, 2009
Oct 19, 2009
61
62
63
64
/**
* Get the implementation dependent name of a joystick.
* This can be called before any joysticks are opened.
* If no name can be found, this function returns NULL.
Apr 26, 2001
Apr 26, 2001
65
*/
Jul 10, 2006
Jul 10, 2006
66
extern DECLSPEC const char *SDLCALL SDL_JoystickName(int device_index);
Apr 26, 2001
Apr 26, 2001
67
Oct 19, 2009
Oct 19, 2009
68
69
70
71
72
73
74
/**
* Open a joystick for use.
* The index passed as an argument refers tothe N'th joystick on the system.
* This index is the value which will identify this joystick in future joystick
* events.
*
* \return A joystick identifier, or NULL if an error occurred.
Apr 26, 2001
Apr 26, 2001
75
*/
Jul 10, 2006
Jul 10, 2006
76
extern DECLSPEC SDL_Joystick *SDLCALL SDL_JoystickOpen(int device_index);
Apr 26, 2001
Apr 26, 2001
77
Oct 19, 2009
Oct 19, 2009
78
79
/**
* Returns 1 if the joystick has been opened, or 0 if it has not.
Apr 26, 2001
Apr 26, 2001
80
*/
Apr 11, 2002
Apr 11, 2002
81
extern DECLSPEC int SDLCALL SDL_JoystickOpened(int device_index);
Apr 26, 2001
Apr 26, 2001
82
Oct 19, 2009
Oct 19, 2009
83
84
/**
* Get the device index of an opened joystick.
Apr 26, 2001
Apr 26, 2001
85
*/
Jul 10, 2006
Jul 10, 2006
86
extern DECLSPEC int SDLCALL SDL_JoystickIndex(SDL_Joystick * joystick);
Apr 26, 2001
Apr 26, 2001
87
Oct 19, 2009
Oct 19, 2009
88
89
/**
* Get the number of general axis controls on a joystick.
Apr 26, 2001
Apr 26, 2001
90
*/
Jul 10, 2006
Jul 10, 2006
91
extern DECLSPEC int SDLCALL SDL_JoystickNumAxes(SDL_Joystick * joystick);
Apr 26, 2001
Apr 26, 2001
92
Oct 19, 2009
Oct 19, 2009
93
94
95
96
97
/**
* Get the number of trackballs on a joystick.
*
* Joystick trackballs have only relative motion events associated
* with them and their state cannot be polled.
Apr 26, 2001
Apr 26, 2001
98
*/
Jul 10, 2006
Jul 10, 2006
99
extern DECLSPEC int SDLCALL SDL_JoystickNumBalls(SDL_Joystick * joystick);
Apr 26, 2001
Apr 26, 2001
100
Oct 19, 2009
Oct 19, 2009
101
102
/**
* Get the number of POV hats on a joystick.
Apr 26, 2001
Apr 26, 2001
103
*/
Jul 10, 2006
Jul 10, 2006
104
extern DECLSPEC int SDLCALL SDL_JoystickNumHats(SDL_Joystick * joystick);
Apr 26, 2001
Apr 26, 2001
105
Oct 19, 2009
Oct 19, 2009
106
107
/**
* Get the number of buttons on a joystick.
Apr 26, 2001
Apr 26, 2001
108
*/
Jul 10, 2006
Jul 10, 2006
109
extern DECLSPEC int SDLCALL SDL_JoystickNumButtons(SDL_Joystick * joystick);
Apr 26, 2001
Apr 26, 2001
110
Oct 19, 2009
Oct 19, 2009
111
112
113
114
115
/**
* Update the current state of the open joysticks.
*
* This is called automatically by the event loop if any joystick
* events are enabled.
Apr 26, 2001
Apr 26, 2001
116
*/
Apr 11, 2002
Apr 11, 2002
117
extern DECLSPEC void SDLCALL SDL_JoystickUpdate(void);
Apr 26, 2001
Apr 26, 2001
118
Oct 19, 2009
Oct 19, 2009
119
120
121
122
123
124
125
126
/**
* Enable/disable joystick event polling.
*
* If joystick events are disabled, you must call SDL_JoystickUpdate()
* yourself and check the state of the joystick when you want joystick
* information.
*
* The state can be one of ::SDL_QUERY, ::SDL_ENABLE or ::SDL_IGNORE.
Apr 26, 2001
Apr 26, 2001
127
*/
Apr 11, 2002
Apr 11, 2002
128
extern DECLSPEC int SDLCALL SDL_JoystickEventState(int state);
Apr 26, 2001
Apr 26, 2001
129
Oct 19, 2009
Oct 19, 2009
130
131
132
133
134
135
/**
* Get the current state of an axis control on a joystick.
*
* The state is a value ranging from -32768 to 32767.
*
* The axis indices start at index 0.
Apr 26, 2001
Apr 26, 2001
136
*/
Jul 10, 2006
Jul 10, 2006
137
138
extern DECLSPEC Sint16 SDLCALL SDL_JoystickGetAxis(SDL_Joystick * joystick,
int axis);
Apr 26, 2001
Apr 26, 2001
139
Oct 19, 2009
Oct 19, 2009
140
141
/**
* \name Hat positions
Apr 26, 2001
Apr 26, 2001
142
*/
Oct 19, 2009
Oct 19, 2009
143
/*@{*/
Apr 26, 2001
Apr 26, 2001
144
145
146
147
148
149
150
151
152
#define SDL_HAT_CENTERED 0x00
#define SDL_HAT_UP 0x01
#define SDL_HAT_RIGHT 0x02
#define SDL_HAT_DOWN 0x04
#define SDL_HAT_LEFT 0x08
#define SDL_HAT_RIGHTUP (SDL_HAT_RIGHT|SDL_HAT_UP)
#define SDL_HAT_RIGHTDOWN (SDL_HAT_RIGHT|SDL_HAT_DOWN)
#define SDL_HAT_LEFTUP (SDL_HAT_LEFT|SDL_HAT_UP)
#define SDL_HAT_LEFTDOWN (SDL_HAT_LEFT|SDL_HAT_DOWN)
Oct 19, 2009
Oct 19, 2009
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
/*@}*/
/**
* Get the current state of a POV hat on a joystick.
*
* The hat indices start at index 0.
*
* \return The return value is one of the following positions:
* - ::SDL_HAT_CENTERED
* - ::SDL_HAT_UP
* - ::SDL_HAT_RIGHT
* - ::SDL_HAT_DOWN
* - ::SDL_HAT_LEFT
* - ::SDL_HAT_RIGHTUP
* - ::SDL_HAT_RIGHTDOWN
* - ::SDL_HAT_LEFTUP
* - ::SDL_HAT_LEFTDOWN
Apr 26, 2001
Apr 26, 2001
170
*/
Jul 10, 2006
Jul 10, 2006
171
172
extern DECLSPEC Uint8 SDLCALL SDL_JoystickGetHat(SDL_Joystick * joystick,
int hat);
Apr 26, 2001
Apr 26, 2001
173
Oct 19, 2009
Oct 19, 2009
174
175
176
177
178
179
/**
* Get the ball axis change since the last poll.
*
* \return 0, or -1 if you passed it invalid parameters.
*
* The ball indices start at index 0.
Apr 26, 2001
Apr 26, 2001
180
*/
Jul 10, 2006
Jul 10, 2006
181
182
extern DECLSPEC int SDLCALL SDL_JoystickGetBall(SDL_Joystick * joystick,
int ball, int *dx, int *dy);
Apr 26, 2001
Apr 26, 2001
183
Oct 19, 2009
Oct 19, 2009
184
185
186
187
/**
* Get the current state of a button on a joystick.
*
* The button indices start at index 0.
Apr 26, 2001
Apr 26, 2001
188
*/
Jul 10, 2006
Jul 10, 2006
189
190
extern DECLSPEC Uint8 SDLCALL SDL_JoystickGetButton(SDL_Joystick * joystick,
int button);
Apr 26, 2001
Apr 26, 2001
191
Oct 19, 2009
Oct 19, 2009
192
193
/**
* Close a joystick previously opened with SDL_JoystickOpen().
Apr 26, 2001
Apr 26, 2001
194
*/
Jul 10, 2006
Jul 10, 2006
195
extern DECLSPEC void SDLCALL SDL_JoystickClose(SDL_Joystick * joystick);
Apr 26, 2001
Apr 26, 2001
196
197
198
199
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
Jul 10, 2006
Jul 10, 2006
200
/* *INDENT-OFF* */
Apr 26, 2001
Apr 26, 2001
201
}
Jul 10, 2006
Jul 10, 2006
202
/* *INDENT-ON* */
Apr 26, 2001
Apr 26, 2001
203
204
205
206
#endif
#include "close_code.h"
#endif /* _SDL_joystick_h */
Jul 10, 2006
Jul 10, 2006
207
208
/* vi: set ts=4 sw=4 expandtab: */