| /*----------------------------------------------------------------------------*/ |
| /* Copyright (c) FIRST 2016-2017. All Rights Reserved. */ |
| /* Open Source Software - may be modified and shared by FRC teams. The code */ |
| /* must be accompanied by the FIRST BSD license file in the root directory of */ |
| /* the project. */ |
| /*----------------------------------------------------------------------------*/ |
| |
| #pragma once |
| |
| #include "ErrorBase.h" |
| #include "GamepadBase.h" |
| |
| namespace frc { |
| |
| class DriverStation; |
| |
| /** |
| * Handle input from Xbox 360 or Xbox One controllers connected to the Driver |
| * Station. |
| * |
| * This class handles Xbox input that comes from the Driver Station. Each time a |
| * value is requested the most recent value is returend. There is a single class |
| * instance for each controller and the mapping of ports to hardware buttons |
| * depends on the code in the Driver Station. |
| */ |
| class XboxController : public GamepadBase, public ErrorBase { |
| public: |
| explicit XboxController(int port); |
| virtual ~XboxController() = default; |
| |
| XboxController(const XboxController&) = delete; |
| XboxController& operator=(const XboxController&) = delete; |
| |
| double GetX(JoystickHand hand) const override; |
| double GetY(JoystickHand hand) const override; |
| |
| bool GetBumper(JoystickHand hand) const override; |
| bool GetStickButton(JoystickHand hand) const override; |
| |
| virtual double GetTriggerAxis(JoystickHand hand) const; |
| |
| bool GetAButton() const; |
| bool GetBButton() const; |
| bool GetXButton() const; |
| bool GetYButton() const; |
| bool GetBackButton() const; |
| bool GetStartButton() const; |
| |
| private: |
| DriverStation& m_ds; |
| }; |
| |
| } // namespace frc |