// Copyright (c) FIRST and other WPILib contributors.
// Open Source Software; you can modify and/or share it under the terms of
// the WPILib BSD license file in the root directory of this project.

// THIS FILE WAS AUTO-GENERATED BY ./wpilibc/generate_hids.py. DO NOT MODIFY

#include "wpi/simulation/NiDsXboxControllerSim.hpp"

#include "wpi/driverstation/NiDsXboxController.hpp"

using namespace wpi;
using namespace wpi::sim;

NiDsXboxControllerSim::NiDsXboxControllerSim(const NiDsXboxController& joystick)
    : GenericHIDSim{joystick} {
  SetAxesMaximumIndex(6);
  SetButtonsMaximumIndex(10);
  SetPOVsMaximumIndex(1);
}

NiDsXboxControllerSim::NiDsXboxControllerSim(int port) : GenericHIDSim{port} {
  SetAxesMaximumIndex(6);
  SetButtonsMaximumIndex(10);
  SetPOVsMaximumIndex(1);
}

void NiDsXboxControllerSim::SetLeftX(double value) {
  SetRawAxis(NiDsXboxController::Axis::kLeftX, value);
}

void NiDsXboxControllerSim::SetRightX(double value) {
  SetRawAxis(NiDsXboxController::Axis::kRightX, value);
}

void NiDsXboxControllerSim::SetLeftY(double value) {
  SetRawAxis(NiDsXboxController::Axis::kLeftY, value);
}

void NiDsXboxControllerSim::SetRightY(double value) {
  SetRawAxis(NiDsXboxController::Axis::kRightY, value);
}

void NiDsXboxControllerSim::SetLeftTriggerAxis(double value) {
  SetRawAxis(NiDsXboxController::Axis::kLeftTrigger, value);
}

void NiDsXboxControllerSim::SetRightTriggerAxis(double value) {
  SetRawAxis(NiDsXboxController::Axis::kRightTrigger, value);
}

void NiDsXboxControllerSim::SetAButton(bool value) {
  SetRawButton(NiDsXboxController::Button::kA, value);
}

void NiDsXboxControllerSim::SetBButton(bool value) {
  SetRawButton(NiDsXboxController::Button::kB, value);
}

void NiDsXboxControllerSim::SetXButton(bool value) {
  SetRawButton(NiDsXboxController::Button::kX, value);
}

void NiDsXboxControllerSim::SetYButton(bool value) {
  SetRawButton(NiDsXboxController::Button::kY, value);
}

void NiDsXboxControllerSim::SetLeftBumperButton(bool value) {
  SetRawButton(NiDsXboxController::Button::kLeftBumper, value);
}

void NiDsXboxControllerSim::SetRightBumperButton(bool value) {
  SetRawButton(NiDsXboxController::Button::kRightBumper, value);
}

void NiDsXboxControllerSim::SetBackButton(bool value) {
  SetRawButton(NiDsXboxController::Button::kBack, value);
}

void NiDsXboxControllerSim::SetStartButton(bool value) {
  SetRawButton(NiDsXboxController::Button::kStart, value);
}

void NiDsXboxControllerSim::SetLeftStickButton(bool value) {
  SetRawButton(NiDsXboxController::Button::kLeftStick, value);
}

void NiDsXboxControllerSim::SetRightStickButton(bool value) {
  SetRawButton(NiDsXboxController::Button::kRightStick, value);
}
