include/SDL_joystick.h

/* [<][>][^][v][top]
[bottom][index][help] */

FUNCTIONS

This source file includes following functions.

   1 /*
   2     SDL - Simple DirectMedia Layer
   3     Copyright (C) 1997, 1998, 1999, 2000, 2001  Sam Lantinga
   4 
   5     This library is free software; you can redistribute it and/or
   6     modify it under the terms of the GNU Library General Public
   7     License as published by the Free Software Foundation; either
   8     version 2 of the License, or (at your option) any later version.
   9 
  10     This library is distributed in the hope that it will be useful,
  11     but WITHOUT ANY WARRANTY; without even the implied warranty of
  12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13     Library General Public License for more details.
  14 
  15     You should have received a copy of the GNU Library General Public
  16     License along with this library; if not, write to the Free
  17     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  18 
  19     Sam Lantinga
  20     slouken@devolution.com
  21 */
  22 
  23 #ifdef SAVE_RCSID
  24 static char rcsid =
  25  "@(#) $Id: SDL_joystick.h,v 1.1.2.15 2001/02/17 01:45:30 hercules Exp $";
  26 #endif
  27 
  28 /* Include file for SDL joystick event handling */
  29 
  30 #ifndef _SDL_joystick_h
  31 #define _SDL_joystick_h
  32 
  33 #include "SDL_types.h"
  34 
  35 #include "begin_code.h"
  36 /* Set up for C function definitions, even when using C++ */
  37 #ifdef __cplusplus
  38 extern "C" {
  39 #endif
  40 
  41 /* In order to use these functions, SDL_Init() must have been called
  42    with the SDL_INIT_JOYSTICK flag.  This causes SDL to scan the system
  43    for joysticks, and load appropriate drivers.
  44 */
  45 
  46 /* The joystick structure used to identify an SDL joystick */
  47 struct _SDL_Joystick;
  48 typedef struct _SDL_Joystick SDL_Joystick;
  49 
  50 
  51 /* Function prototypes */
  52 /*
  53  * Count the number of joysticks attached to the system
  54  */
  55 extern DECLSPEC int SDL_NumJoysticks(void);
  56 
  57 /*
  58  * Get the implementation dependent name of a joystick.
  59  * This can be called before any joysticks are opened.
  60  * If no name can be found, this function returns NULL.
  61  */
  62 extern DECLSPEC const char *SDL_JoystickName(int device_index);
  63 
  64 /*
  65  * Open a joystick for use - the index passed as an argument refers to
  66  * the N'th joystick on the system.  This index is the value which will
  67  * identify this joystick in future joystick events.
  68  *
  69  * This function returns a joystick identifier, or NULL if an error occurred.
  70  */
  71 extern DECLSPEC SDL_Joystick *SDL_JoystickOpen(int device_index);
  72 
  73 /*
  74  * Returns 1 if the joystick has been opened, or 0 if it has not.
  75  */
  76 extern DECLSPEC int SDL_JoystickOpened(int device_index);
  77 
  78 /*
  79  * Get the device index of an opened joystick.
  80  */
  81 extern DECLSPEC int SDL_JoystickIndex(SDL_Joystick *joystick);
  82 
  83 /*
  84  * Get the number of general axis controls on a joystick
  85  */
  86 extern DECLSPEC int SDL_JoystickNumAxes(SDL_Joystick *joystick);
  87 
  88 /*
  89  * Get the number of trackballs on a joystick
  90  * Joystick trackballs have only relative motion events associated
  91  * with them and their state cannot be polled.
  92  */
  93 extern DECLSPEC int SDL_JoystickNumBalls(SDL_Joystick *joystick);
  94 
  95 /*
  96  * Get the number of POV hats on a joystick
  97  */
  98 extern DECLSPEC int SDL_JoystickNumHats(SDL_Joystick *joystick);
  99 
 100 /*
 101  * Get the number of buttons on a joystick
 102  */
 103 extern DECLSPEC int SDL_JoystickNumButtons(SDL_Joystick *joystick);
 104 
 105 /*
 106  * Update the current state of the open joysticks.
 107  * This is called automatically by the event loop if any joystick
 108  * events are enabled.
 109  */
 110 extern DECLSPEC void SDL_JoystickUpdate(void);
 111 
 112 /*
 113  * Enable/disable joystick event polling.
 114  * If joystick events are disabled, you must call SDL_JoystickUpdate()
 115  * yourself and check the state of the joystick when you want joystick
 116  * information.
 117  * The state can be one of SDL_QUERY, SDL_ENABLE or SDL_IGNORE.
 118  */
 119 extern DECLSPEC int SDL_JoystickEventState(int state);
 120 
 121 /*
 122  * Get the current state of an axis control on a joystick
 123  * The state is a value ranging from -32768 to 32767.
 124  * The axis indices start at index 0.
 125  */
 126 extern DECLSPEC Sint16 SDL_JoystickGetAxis(SDL_Joystick *joystick, int axis);
 127 
 128 /*
 129  * Get the current state of a POV hat on a joystick
 130  * The return value is one of the following positions:
 131  */
 132 #define SDL_HAT_CENTERED        0x00
 133 #define SDL_HAT_UP              0x01
 134 #define SDL_HAT_RIGHT           0x02
 135 #define SDL_HAT_DOWN            0x04
 136 #define SDL_HAT_LEFT            0x08
 137 #define SDL_HAT_RIGHTUP         (SDL_HAT_RIGHT|SDL_HAT_UP)
 138 #define SDL_HAT_RIGHTDOWN       (SDL_HAT_RIGHT|SDL_HAT_DOWN)
 139 #define SDL_HAT_LEFTUP          (SDL_HAT_LEFT|SDL_HAT_UP)
 140 #define SDL_HAT_LEFTDOWN        (SDL_HAT_LEFT|SDL_HAT_DOWN)
 141 /*
 142  * The hat indices start at index 0.
 143  */
 144 extern DECLSPEC Uint8 SDL_JoystickGetHat(SDL_Joystick *joystick, int hat);
 145 
 146 /*
 147  * Get the ball axis change since the last poll
 148  * This returns 0, or -1 if you passed it invalid parameters.
 149  * The ball indices start at index 0.
 150  */
 151 extern DECLSPEC int SDL_JoystickGetBall(SDL_Joystick *joystick, int ball, int *dx, int *dy);
 152 
 153 /*
 154  * Get the current state of a button on a joystick
 155  * The button indices start at index 0.
 156  */
 157 extern DECLSPEC Uint8 SDL_JoystickGetButton(SDL_Joystick *joystick, int button);
 158 
 159 /*
 160  * Close a joystick previously opened with SDL_JoystickOpen()
 161  */
 162 extern DECLSPEC void SDL_JoystickClose(SDL_Joystick *joystick);
 163 
 164 
 165 /* Ends C function definitions when using C++ */
 166 #ifdef __cplusplus
 167 }
 168 #endif
 169 #include "close_code.h"
 170 
 171 #endif /* _SDL_joystick_h */

/* [<][>][^][v][top][bottom][index][help] */