1 /* Title: USB Joystick library
3 Written by Puck2099 (puck2099@gmail.com), (c) 2006.
4 <http://www.gp32wip.com>
6 If you use this library or a part of it, please, let it know.
8 This library is free software; you can redistribute it and/or
9 modify it under the terms of the GNU Lesser General Public
10 License as published by the Free Software Foundation; either
11 version 2.1 of the License, or (at your option) any later version.
13 This library is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 Lesser General Public License for more details.
18 You should have received a copy of the GNU Lesser General Public
19 License along with this library; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
27 Enumeration: Axes values
28 This enumeration contains shortcuts to the values used on axes.
32 JOYDOWN - Joystick Down
33 JOYLEFT - Joystick Left
34 JOYRIGHT - Joystick Right
48 Contains all Joystick needed information.
51 fd - File descriptor used.
52 name - Joystick's name.
53 device - /dev/input/jsX device.
54 numbuttons - Joystick's buttons.
55 numaxes - Joystick's axes.
56 numhats - Joystick's hats.
57 statebuttons - Current state of each button.
58 stateaxes - Current state of each direction.
75 Opens a USB joystick and fills its information.
79 joynumber - Joystick's identifier (0 reserved for GP2X's builtin Joystick).
83 Filled usbjoy structure.
85 struct usbjoy * joy_open (int joynumber);
91 Returns Joystick's name.
95 joy - Selected joystick.
99 Joystick's name or NULL if <usbjoy> struct is empty.
101 char * joy_name (struct usbjoy * joy);
107 Returns Joystick's device.
111 joy - Selected joystick.
115 Joystick's device or NULL if <usbjoy> struct is empty.
117 char * joy_device (struct usbjoy * joy);
120 Function: joy_buttons
122 Returns Joystick's buttons number.
126 joy - Selected joystick.
130 Joystick's buttons or 0 if <usbjoy> struct is empty.
132 int joy_buttons (struct usbjoy * joy);
137 Returns Joystick's axes number.
141 joy - Selected joystick.
145 Joystick's axes or 0 if <usbjoy> struct is empty.
147 int joy_axes (struct usbjoy * joy);
153 Updates Joystick's internal information (<statebuttons> and <stateaxes> fields).
157 joy - Selected joystick.
161 0 - No events registered (no need to update).
162 1 - Events registered (a button or axe has been pushed).
163 -1 - Error: <usbjoy> struct is empty.
165 int joy_update (struct usbjoy * joy);
169 Function: joy_getbutton
171 Returns Joystick's button information.
175 button - Button which value you want to know (from 0 to 31).
176 joy - Selected joystick.
180 0 - Button NOT pushed.
182 -1 - Error: <usbjoy> struct is empty.
184 int joy_getbutton (int button, struct usbjoy * joy);
190 Returns Joystick's axes information.
194 axe - Axe which value you want to know (see <Axes values>).
195 joy - Selected joystick.
199 0 - Direction NOT pushed.
200 1 - Direction pushed.
201 -1 - Error: <usbjoy> struct is empty.
203 int joy_getaxe (int axe, struct usbjoy * joy);
208 Closes selected joystick's file descriptor and detroys it's fields.
212 joy - Selected joystick.
216 0 - Joystick successfully closed.
217 -1 - Error: <usbjoy> struct is empty.
219 int joy_close (struct usbjoy * joy);