// 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 ./commandsv2/generate_hids.py. DO NOT MODIFY

#include "wpi/commands2/button/CommandNiDsPS4Controller.hpp"

using namespace wpi::cmd;

CommandNiDsPS4Controller::CommandNiDsPS4Controller(int port)
    : CommandGenericHID(port), m_hid{wpi::NiDsPS4Controller(port)} {}

wpi::NiDsPS4Controller& CommandNiDsPS4Controller::GetHID() {
  return m_hid;
}

Trigger CommandNiDsPS4Controller::Square(wpi::EventLoop* loop) const {
  return Button(wpi::NiDsPS4Controller::Button::kSquare, loop);
}

Trigger CommandNiDsPS4Controller::Cross(wpi::EventLoop* loop) const {
  return Button(wpi::NiDsPS4Controller::Button::kCross, loop);
}

Trigger CommandNiDsPS4Controller::Circle(wpi::EventLoop* loop) const {
  return Button(wpi::NiDsPS4Controller::Button::kCircle, loop);
}

Trigger CommandNiDsPS4Controller::Triangle(wpi::EventLoop* loop) const {
  return Button(wpi::NiDsPS4Controller::Button::kTriangle, loop);
}

Trigger CommandNiDsPS4Controller::L1(wpi::EventLoop* loop) const {
  return Button(wpi::NiDsPS4Controller::Button::kL1, loop);
}

Trigger CommandNiDsPS4Controller::R1(wpi::EventLoop* loop) const {
  return Button(wpi::NiDsPS4Controller::Button::kR1, loop);
}

Trigger CommandNiDsPS4Controller::L2(wpi::EventLoop* loop) const {
  return Button(wpi::NiDsPS4Controller::Button::kL2, loop);
}

Trigger CommandNiDsPS4Controller::R2(wpi::EventLoop* loop) const {
  return Button(wpi::NiDsPS4Controller::Button::kR2, loop);
}

Trigger CommandNiDsPS4Controller::Share(wpi::EventLoop* loop) const {
  return Button(wpi::NiDsPS4Controller::Button::kShare, loop);
}

Trigger CommandNiDsPS4Controller::Options(wpi::EventLoop* loop) const {
  return Button(wpi::NiDsPS4Controller::Button::kOptions, loop);
}

Trigger CommandNiDsPS4Controller::L3(wpi::EventLoop* loop) const {
  return Button(wpi::NiDsPS4Controller::Button::kL3, loop);
}

Trigger CommandNiDsPS4Controller::R3(wpi::EventLoop* loop) const {
  return Button(wpi::NiDsPS4Controller::Button::kR3, loop);
}

Trigger CommandNiDsPS4Controller::PS(wpi::EventLoop* loop) const {
  return Button(wpi::NiDsPS4Controller::Button::kPS, loop);
}

Trigger CommandNiDsPS4Controller::Touchpad(wpi::EventLoop* loop) const {
  return Button(wpi::NiDsPS4Controller::Button::kTouchpad, loop);
}

double CommandNiDsPS4Controller::GetLeftX() const {
  return m_hid.GetLeftX();
}

double CommandNiDsPS4Controller::GetLeftY() const {
  return m_hid.GetLeftY();
}

double CommandNiDsPS4Controller::GetRightX() const {
  return m_hid.GetRightX();
}

double CommandNiDsPS4Controller::GetRightY() const {
  return m_hid.GetRightY();
}

double CommandNiDsPS4Controller::GetL2Axis() const {
  return m_hid.GetL2Axis();
}

double CommandNiDsPS4Controller::GetR2Axis() const {
  return m_hid.GetR2Axis();
}
