SDL_joystick.h
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:5k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

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