blob: 441ecf0c79da6afaed69721e3b7606f9fa750cca [file] [log] [blame]
/*----------------------------------------------------------------------------*/
/* 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. */
/*----------------------------------------------------------------------------*/
#include "XboxController.h"
#include "DriverStation.h"
using namespace frc;
/**
* Construct an instance of an Xbox controller.
*
* The joystick index is the USB port on the Driver Station.
*
* @param port The port on the Driver Station that the joystick is plugged into
* (0-5).
*/
XboxController::XboxController(int port)
: GamepadBase(port), m_ds(DriverStation::GetInstance()) {}
/**
* Get the X axis value of the controller.
*
* @param hand Side of controller whose value should be returned.
*/
double XboxController::GetX(JoystickHand hand) const {
if (hand == kLeftHand) {
return GetRawAxis(0);
} else {
return GetRawAxis(4);
}
}
/**
* Get the Y axis value of the controller.
*
* @param hand Side of controller whose value should be returned.
*/
double XboxController::GetY(JoystickHand hand) const {
if (hand == kLeftHand) {
return GetRawAxis(1);
} else {
return GetRawAxis(5);
}
}
/**
* Read the value of the bumper button on the controller.
*
* @param hand Side of controller whose value should be returned.
*/
bool XboxController::GetBumper(JoystickHand hand) const {
if (hand == kLeftHand) {
return GetRawButton(5);
} else {
return GetRawButton(6);
}
}
/**
* Read the value of the stick button on the controller.
*
* @param hand Side of controller whose value should be returned.
* @return The state of the button.
*/
bool XboxController::GetStickButton(JoystickHand hand) const {
if (hand == kLeftHand) {
return GetRawButton(9);
} else {
return GetRawButton(10);
}
}
/**
* Get the trigger axis value of the controller.
*
* @param hand Side of controller whose value should be returned.
*/
double XboxController::GetTriggerAxis(JoystickHand hand) const {
if (hand == kLeftHand) {
return GetRawAxis(2);
} else {
return GetRawAxis(3);
}
}
/**
* Read the value of the A button on the controller.
*
* @param hand Side of controller whose value should be returned.
* @return The state of the button.
*/
bool XboxController::GetAButton() const { return GetRawButton(1); }
/**
* Read the value of the B button on the controller.
*
* @param hand Side of controller whose value should be returned.
* @return The state of the button.
*/
bool XboxController::GetBButton() const { return GetRawButton(2); }
/**
* Read the value of the X button on the controller.
*
* @param hand Side of controller whose value should be returned.
* @return The state of the button.
*/
bool XboxController::GetXButton() const { return GetRawButton(3); }
/**
* Read the value of the Y button on the controller.
*
* @param hand Side of controller whose value should be returned.
* @return The state of the button.
*/
bool XboxController::GetYButton() const { return GetRawButton(4); }
/**
* Read the value of the back button on the controller.
*
* @param hand Side of controller whose value should be returned.
* @return The state of the button.
*/
bool XboxController::GetBackButton() const { return GetRawButton(7); }
/**
* Read the value of the start button on the controller.
*
* @param hand Side of controller whose value should be returned.
* @return The state of the button.
*/
bool XboxController::GetStartButton() const { return GetRawButton(8); }