1555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/*
2555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  Simple DirectMedia Layer
3555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org>
4555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
5555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  This software is provided 'as-is', without any express or implied
6555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  warranty.  In no event will the authors be held liable for any damages
7555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  arising from the use of this software.
8555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
9555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  Permission is granted to anyone to use this software for any purpose,
10555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  including commercial applications, and to alter it and redistribute it
11555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  freely, subject to the following restrictions:
12555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
13555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  1. The origin of this software must not be misrepresented; you must not
14555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot     claim that you wrote the original software. If you use this software
15555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot     in a product, an acknowledgment in the product documentation would be
16555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot     appreciated but is not required.
17555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  2. Altered source versions must be plainly marked as such, and must not be
18555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot     misrepresented as being the original software.
19555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  3. This notice may not be removed or altered from any source distribution.
20555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot*/
21555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
22555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
23555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  \file SDL_joystick.h
24555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
25555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Include file for SDL joystick event handling
26555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
27555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot * The term "device_index" identifies currently plugged in joystick devices between 0 and SDL_NumJoysticks, with the exact joystick
28555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *   behind a device_index changing as joysticks are plugged and unplugged.
29555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
30555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot * The term "instance_id" is the current instantiation of a joystick device in the system, if the joystick is removed and then re-inserted
31555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *   then it will get a new instance_id, instance_id's are monotonically increasing identifiers of a joystick plugged in.
32555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
33555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot * The term JoystickGUID is a stable 128-bit identifier for a joystick device that does not change over time, it identifies class of
34555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *   the device (a X360 wired controller for example). This identifier is platform dependent.
35555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
36555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
37555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
38555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
39555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifndef _SDL_joystick_h
40555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define _SDL_joystick_h
41555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
42555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include "SDL_stdinc.h"
43555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include "SDL_error.h"
44555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
45555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include "begin_code.h"
46555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* Set up for C function definitions, even when using C++ */
47555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifdef __cplusplus
48555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern "C" {
49555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
50555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
51555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
52555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  \file SDL_joystick.h
53555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
54555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  In order to use these functions, SDL_Init() must have been called
55555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  with the ::SDL_INIT_JOYSTICK flag.  This causes SDL to scan the system
56555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  for joysticks, and load appropriate drivers.
57555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
58555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  If you would like to receive joystick updates while the application
59555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  is in the background, you should set the following hint before calling
60555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  SDL_Init(): SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS
61555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
62555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
63555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* The joystick structure used to identify an SDL joystick */
64555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotstruct _SDL_Joystick;
65555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robottypedef struct _SDL_Joystick SDL_Joystick;
66555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
67555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* A structure that encodes the stable unique id for a joystick device */
68555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robottypedef struct {
69555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    Uint8 data[16];
70555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot} SDL_JoystickGUID;
71555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
72555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robottypedef Sint32 SDL_JoystickID;
73555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
74555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
75555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* Function prototypes */
76555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
77555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Count the number of joysticks attached to the system right now
78555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
79555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_NumJoysticks(void);
80555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
81555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
82555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Get the implementation dependent name of a joystick.
83555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  This can be called before any joysticks are opened.
84555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  If no name can be found, this function returns NULL.
85555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
86555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC const char *SDLCALL SDL_JoystickNameForIndex(int device_index);
87555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
88555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
89555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Open a joystick for use.
90555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  The index passed as an argument refers tothe N'th joystick on the system.
91555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  This index is the value which will identify this joystick in future joystick
92555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  events.
93555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
94555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  \return A joystick identifier, or NULL if an error occurred.
95555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
96555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC SDL_Joystick *SDLCALL SDL_JoystickOpen(int device_index);
97555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
98555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
99555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Return the name for this currently opened joystick.
100555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  If no name can be found, this function returns NULL.
101555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
102555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC const char *SDLCALL SDL_JoystickName(SDL_Joystick * joystick);
103555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
104555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
105555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Return the GUID for the joystick at this index
106555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
107555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetDeviceGUID(int device_index);
108555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
109555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
110555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Return the GUID for this opened joystick
111555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
112555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetGUID(SDL_Joystick * joystick);
113555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
114555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
115555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Return a string representation for this guid. pszGUID must point to at least 33 bytes
116555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  (32 for the string plus a NULL terminator).
117555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
118555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC void SDLCALL SDL_JoystickGetGUIDString(SDL_JoystickGUID guid, char *pszGUID, int cbGUID);
119555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
120555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
121555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  convert a string into a joystick formatted guid
122555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
123555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetGUIDFromString(const char *pchGUID);
124555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
125555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
126555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Returns SDL_TRUE if the joystick has been opened and currently connected, or SDL_FALSE if it has not.
127555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
128555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC SDL_bool SDLCALL SDL_JoystickGetAttached(SDL_Joystick * joystick);
129555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
130555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
131555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Get the instance ID of an opened joystick or -1 if the joystick is invalid.
132555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
133555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC SDL_JoystickID SDLCALL SDL_JoystickInstanceID(SDL_Joystick * joystick);
134555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
135555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
136555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Get the number of general axis controls on a joystick.
137555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
138555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_JoystickNumAxes(SDL_Joystick * joystick);
139555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
140555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
141555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Get the number of trackballs on a joystick.
142555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
143555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Joystick trackballs have only relative motion events associated
144555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  with them and their state cannot be polled.
145555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
146555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_JoystickNumBalls(SDL_Joystick * joystick);
147555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
148555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
149555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Get the number of POV hats on a joystick.
150555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
151555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_JoystickNumHats(SDL_Joystick * joystick);
152555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
153555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
154555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Get the number of buttons on a joystick.
155555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
156555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_JoystickNumButtons(SDL_Joystick * joystick);
157555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
158555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
159555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Update the current state of the open joysticks.
160555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
161555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  This is called automatically by the event loop if any joystick
162555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  events are enabled.
163555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
164555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC void SDLCALL SDL_JoystickUpdate(void);
165555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
166555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
167555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Enable/disable joystick event polling.
168555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
169555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  If joystick events are disabled, you must call SDL_JoystickUpdate()
170555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  yourself and check the state of the joystick when you want joystick
171555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  information.
172555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
173555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  The state can be one of ::SDL_QUERY, ::SDL_ENABLE or ::SDL_IGNORE.
174555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
175555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_JoystickEventState(int state);
176555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
177555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
178555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Get the current state of an axis control on a joystick.
179555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
180555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  The state is a value ranging from -32768 to 32767.
181555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
182555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  The axis indices start at index 0.
183555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
184555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC Sint16 SDLCALL SDL_JoystickGetAxis(SDL_Joystick * joystick,
185555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot                                                   int axis);
186555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
187555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
188555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  \name Hat positions
189555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
190555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* @{ */
191555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_HAT_CENTERED    0x00
192555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_HAT_UP      0x01
193555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_HAT_RIGHT       0x02
194555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_HAT_DOWN        0x04
195555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_HAT_LEFT        0x08
196555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_HAT_RIGHTUP     (SDL_HAT_RIGHT|SDL_HAT_UP)
197555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_HAT_RIGHTDOWN   (SDL_HAT_RIGHT|SDL_HAT_DOWN)
198555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_HAT_LEFTUP      (SDL_HAT_LEFT|SDL_HAT_UP)
199555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_HAT_LEFTDOWN    (SDL_HAT_LEFT|SDL_HAT_DOWN)
200555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* @} */
201555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
202555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
203555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Get the current state of a POV hat on a joystick.
204555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
205555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  The hat indices start at index 0.
206555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
207555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  \return The return value is one of the following positions:
208555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *           - ::SDL_HAT_CENTERED
209555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *           - ::SDL_HAT_UP
210555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *           - ::SDL_HAT_RIGHT
211555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *           - ::SDL_HAT_DOWN
212555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *           - ::SDL_HAT_LEFT
213555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *           - ::SDL_HAT_RIGHTUP
214555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *           - ::SDL_HAT_RIGHTDOWN
215555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *           - ::SDL_HAT_LEFTUP
216555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *           - ::SDL_HAT_LEFTDOWN
217555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
218555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC Uint8 SDLCALL SDL_JoystickGetHat(SDL_Joystick * joystick,
219555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot                                                 int hat);
220555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
221555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
222555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Get the ball axis change since the last poll.
223555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
224555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  \return 0, or -1 if you passed it invalid parameters.
225555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
226555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  The ball indices start at index 0.
227555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
228555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_JoystickGetBall(SDL_Joystick * joystick,
229555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot                                                int ball, int *dx, int *dy);
230555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
231555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
232555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Get the current state of a button on a joystick.
233555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
234555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  The button indices start at index 0.
235555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
236555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC Uint8 SDLCALL SDL_JoystickGetButton(SDL_Joystick * joystick,
237555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot                                                    int button);
238555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
239555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
240555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Close a joystick previously opened with SDL_JoystickOpen().
241555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
242555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC void SDLCALL SDL_JoystickClose(SDL_Joystick * joystick);
243555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
244555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
245555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* Ends C function definitions when using C++ */
246555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifdef __cplusplus
247555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot}
248555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
249555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include "close_code.h"
250555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
251555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif /* _SDL_joystick_h */
252555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
253555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* vi: set ts=4 sw=4 expandtab: */
254