Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. /*
  2.     SDL - Simple DirectMedia Layer
  3.     Copyright (C) 1997-2004 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@libsdl.org
  21. */
  22.  
  23. #ifdef SAVE_RCSID
  24. static char rcsid =
  25.  "@(#) $Id: SDL_joystick.h,v 1.6 2004/01/04 16:49:07 slouken 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 SDLCALL 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 * SDLCALL 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 * SDLCALL SDLCALL 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 SDLCALL SDL_JoystickOpened(int device_index);
  77.  
  78. /*
  79.  * Get the device index of an opened joystick.
  80.  */
  81. extern DECLSPEC int SDLCALL SDL_JoystickIndex(SDL_Joystick *joystick);
  82.  
  83. /*
  84.  * Get the number of general axis controls on a joystick
  85.  */
  86. extern DECLSPEC int SDLCALL 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 SDLCALL SDL_JoystickNumBalls(SDL_Joystick *joystick);
  94.  
  95. /*
  96.  * Get the number of POV hats on a joystick
  97.  */
  98. extern DECLSPEC int SDLCALL SDL_JoystickNumHats(SDL_Joystick *joystick);
  99.  
  100. /*
  101.  * Get the number of buttons on a joystick
  102.  */
  103. extern DECLSPEC int SDLCALL 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 SDLCALL 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 SDLCALL 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 SDLCALL 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 SDLCALL 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 SDLCALL 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 SDLCALL SDL_JoystickGetButton(SDL_Joystick *joystick, int button);
  158.  
  159. /*
  160.  * Close a joystick previously opened with SDL_JoystickOpen()
  161.  */
  162. extern DECLSPEC void SDLCALL 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 */
  172.