robot-rust 0.2.1

The robot-rust project, bindings for wpilib, ctre, and rev in rust.
// 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

#pragma once

#include "frc/simulation/GenericHIDSim.h"

namespace frc {

class PS4Controller;

namespace sim {

/**
 * Class to control a simulated PS4 controller.
 */
class PS4ControllerSim : public GenericHIDSim {
 public:
  /**
   * Constructs from a PS4Controller object.
   *
   * @param joystick controller to simulate
   */
  explicit PS4ControllerSim(const PS4Controller& joystick);

  /**
   * Constructs from a joystick port number.
   *
   * @param port port number
   */
  explicit PS4ControllerSim(int port);

  /**
   * Change the left X value of the controller's joystick.
   *
   * @param value the new value
   */
  void SetLeftX(double value);

  /**
   * Change the left Y value of the controller's joystick.
   *
   * @param value the new value
   */
  void SetLeftY(double value);

  /**
   * Change the right X value of the controller's joystick.
   *
   * @param value the new value
   */
  void SetRightX(double value);

  /**
   * Change the right Y value of the controller's joystick.
   *
   * @param value the new value
   */
  void SetRightY(double value);

  /**
   * Change the value of the left trigger 2 axis on the controller.
   *
   * @param value the new value
   */
  void SetL2Axis(double value);

  /**
   * Change the value of the right trigger 2 axis on the controller.
   *
   * @param value the new value
   */
  void SetR2Axis(double value);

  /**
   * Change the value of the square button on the controller.
   *
   * @param value the new value
   */
  void SetSquareButton(bool value);

  /**
   * Change the value of the cross button on the controller.
   *
   * @param value the new value
   */
  void SetCrossButton(bool value);

  /**
   * Change the value of the circle button on the controller.
   *
   * @param value the new value
   */
  void SetCircleButton(bool value);

  /**
   * Change the value of the triangle button on the controller.
   *
   * @param value the new value
   */
  void SetTriangleButton(bool value);

  /**
   * Change the value of the left trigger 1 button on the controller.
   *
   * @param value the new value
   */
  void SetL1Button(bool value);

  /**
   * Change the value of the right trigger 1 button on the controller.
   *
   * @param value the new value
   */
  void SetR1Button(bool value);

  /**
   * Change the value of the left trigger 2 button on the controller.
   *
   * @param value the new value
   */
  void SetL2Button(bool value);

  /**
   * Change the value of the right trigger 2 button on the controller.
   *
   * @param value the new value
   */
  void SetR2Button(bool value);

  /**
   * Change the value of the share button on the controller.
   *
   * @param value the new value
   */
  void SetShareButton(bool value);

  /**
   * Change the value of the options button on the controller.
   *
   * @param value the new value
   */
  void SetOptionsButton(bool value);

  /**
   * Change the value of the L3 (left stick) button on the controller.
   *
   * @param value the new value
   */
  void SetL3Button(bool value);

  /**
   * Change the value of the R3 (right stick) button on the controller.
   *
   * @param value the new value
   */
  void SetR3Button(bool value);

  /**
   * Change the value of the PlayStation button on the controller.
   *
   * @param value the new value
   */
  void SetPSButton(bool value);

  /**
   * Change the value of the touchpad button on the controller.
   *
   * @param value the new value
   */
  void SetTouchpadButton(bool value);

  /**
   * Change the value of the touchpad button on the controller.
   *
   * @param value the new value
   * @deprecated Use SetTouchpadButton instead. This function is deprecated for
   * removal to make function names consistent to allow the HID classes to be
   * automatically generated.
   */
  [[deprecated("Use SetTouchpadButton instead")]]
  void SetTouchpad(bool value);

};

}  // namespace sim
}  // namespace frc