musicm122

xbox360Controller.h

Aug 20th, 2013
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.10 KB | None | 0 0
  1. #define WIN32_LEAN_AND_MEAN // We don't want the extra stuff like MFC and such
  2. #include <Windows.h>
  3. #include <XInput.h> // XInput API
  4. #pragma comment(lib, "XInput.lib") // Library. If your compiler doesn't support this type of lib include change to the corresponding one
  5.  
  6. struct Vector2
  7. {
  8. float x;
  9. float y;
  10.  
  11. void Vector2::set(float val)
  12. {
  13. this->x = val;
  14. this->y = val;
  15. }
  16. };
  17.  
  18. typedef enum
  19. {
  20. Keyboard_SPACE = 32,
  21. Keyboard_ARROW_LEFT = 37,
  22. Keyboard_ARROW_UP = 38,
  23. Keyboard_ARROW_RIGHT = 39,
  24. Keyboard_ARROW_DOWN = 40
  25. }Keyboard;
  26.  
  27. typedef enum
  28. {
  29. GamePad_Button_DPAD_UP = 0,
  30. GamePad_Button_DPAD_DOWN = 1,
  31. GamePad_Button_DPAD_LEFT = 2,
  32. GamePad_Button_DPAD_RIGHT = 3,
  33. GamePad_Button_START = 4,
  34. GamePad_Button_BACK = 5,
  35. GamePad_Button_LEFT_THUMB = 6,
  36. GamePad_Button_RIGHT_THUMB = 7,
  37. GamePad_Button_LEFT_SHOULDER = 8,
  38. GamePad_Button_RIGHT_SHOULDER = 9,
  39. GamePad_Button_A = 10,
  40. GamePad_Button_B = 11,
  41. GamePad_Button_X = 12,
  42. GamePad_Button_Y = 13,
  43. GamePadButton_Max = 14
  44. }GamePadButton;
  45.  
  46.  
  47. typedef enum
  48. {
  49. GamePadIndex_One = 0,
  50. GamePadIndex_Two = 1,
  51. GamePadIndex_Three =2,
  52. GamePadIndex_Four = 3
  53. }GamePadIndex;
  54.  
  55. // The GamePad State Stuct, were we store the buttons positions
  56. struct GamePadState
  57. {
  58. bool _buttons[GamePadButton_Max];
  59. Vector2 _left_thumbstick;
  60. Vector2 _right_thumbstick;
  61. float _left_trigger;
  62. float _right_trigger;
  63.  
  64. // Just to clear all values to default
  65. void reset()
  66. {
  67. for (int i=0;i<(int)GamePadButton_Max;++i){
  68. _buttons[i] = false;
  69. }
  70. _left_thumbstick.set(0.0f);
  71. _right_thumbstick.set(0.0f);
  72. _left_trigger = _right_trigger = 0.0f;
  73. }
  74. };
  75.  
  76. class XboxController
  77. {
  78. public:
  79. GamePadState State;
  80. XboxController(GamePadIndex player);
  81.  
  82. virtual ~XboxController(void);
  83. bool IsConnected();
  84. void Vibrate(int leftVal = 0,int rightVal = 0);
  85. void Update();
  86.  
  87. private:
  88. XINPUT_STATE _controllerState;
  89. GamePadIndex _playerIndex;
  90. int _controllerNumber;
  91. };
Advertisement
Add Comment
Please, Sign In to add comment