pc_joystick_map.h 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. /*************************************************************************/
  2. /* pc_joystick_map.h */
  3. /*************************************************************************/
  4. /* This file is part of: */
  5. /* GODOT ENGINE */
  6. /* http://www.godotengine.org */
  7. /*************************************************************************/
  8. /* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
  9. /* */
  10. /* Permission is hereby granted, free of charge, to any person obtaining */
  11. /* a copy of this software and associated documentation files (the */
  12. /* "Software"), to deal in the Software without restriction, including */
  13. /* without limitation the rights to use, copy, modify, merge, publish, */
  14. /* distribute, sublicense, and/or sell copies of the Software, and to */
  15. /* permit persons to whom the Software is furnished to do so, subject to */
  16. /* the following conditions: */
  17. /* */
  18. /* The above copyright notice and this permission notice shall be */
  19. /* included in all copies or substantial portions of the Software. */
  20. /* */
  21. /* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
  22. /* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
  23. /* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
  24. /* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
  25. /* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
  26. /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
  27. /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
  28. /*************************************************************************/
  29. #ifndef PC_JOYSTICK_MAP_H
  30. #define PC_JOYSTICK_MAP_H
  31. #include "input_event.h"
  32. static const int _pc_joystick_button_remap[JOY_BUTTON_MAX]={
  33. JOY_SELECT,
  34. JOY_L3,
  35. JOY_R3,
  36. JOY_START,
  37. JOY_DPAD_UP,
  38. JOY_DPAD_RIGHT,
  39. JOY_DPAD_DOWN,
  40. JOY_DPAD_LEFT,
  41. JOY_L2,
  42. JOY_R2,
  43. JOY_L,
  44. JOY_R,
  45. JOY_SNES_X,
  46. JOY_SNES_A,
  47. JOY_SNES_B,
  48. JOY_SNES_Y,
  49. // JOY_HOME = 16
  50. };
  51. static int _pc_joystick_get_native_button(int p_pc_button) {
  52. if (p_pc_button<0 || p_pc_button>=JOY_BUTTON_MAX)
  53. return p_pc_button;
  54. return _pc_joystick_button_remap[p_pc_button];
  55. }
  56. static const int _pc_joystick_axis_remap[JOY_AXIS_MAX]={
  57. JOY_ANALOG_0_X,
  58. JOY_ANALOG_0_Y,
  59. JOY_ANALOG_1_X,
  60. JOY_ANALOG_1_Y,
  61. JOY_ANALOG_2_X,
  62. JOY_ANALOG_2_Y,
  63. JOY_AXIS_6,
  64. JOY_AXIS_7
  65. };
  66. static int _pc_joystick_get_native_axis(int p_pc_axis) {
  67. if (p_pc_axis<0 || p_pc_axis>=JOY_BUTTON_MAX)
  68. return p_pc_axis;
  69. return _pc_joystick_axis_remap[p_pc_axis];
  70. }
  71. #endif // PC_JOYSTICK_MAP_H