// 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. #include "frc/PS5Controller.h" #include #include "frc/event/BooleanEvent.h" using namespace frc; PS5Controller::PS5Controller(int port) : GenericHID(port) { // HAL_Report(HALUsageReporting::kResourceType_PS5Controller, port + 1); } double PS5Controller::GetLeftX() const { return GetRawAxis(Axis::kLeftX); } double PS5Controller::GetRightX() const { return GetRawAxis(Axis::kRightX); } double PS5Controller::GetLeftY() const { return GetRawAxis(Axis::kLeftY); } double PS5Controller::GetRightY() const { return GetRawAxis(Axis::kRightY); } double PS5Controller::GetL2Axis() const { return GetRawAxis(Axis::kL2); } double PS5Controller::GetR2Axis() const { return GetRawAxis(Axis::kR2); } bool PS5Controller::GetSquareButton() const { return GetRawButton(Button::kSquare); } bool PS5Controller::GetSquareButtonPressed() { return GetRawButtonPressed(Button::kSquare); } bool PS5Controller::GetSquareButtonReleased() { return GetRawButtonReleased(Button::kSquare); } BooleanEvent PS5Controller::Square(EventLoop* loop) const { return BooleanEvent(loop, [this]() { return this->GetSquareButton(); }); } bool PS5Controller::GetCrossButton() const { return GetRawButton(Button::kCross); } bool PS5Controller::GetCrossButtonPressed() { return GetRawButtonPressed(Button::kCross); } bool PS5Controller::GetCrossButtonReleased() { return GetRawButtonReleased(Button::kCross); } BooleanEvent PS5Controller::Cross(EventLoop* loop) const { return BooleanEvent(loop, [this]() { return this->GetCrossButton(); }); } bool PS5Controller::GetCircleButton() const { return GetRawButton(Button::kCircle); } bool PS5Controller::GetCircleButtonPressed() { return GetRawButtonPressed(Button::kCircle); } bool PS5Controller::GetCircleButtonReleased() { return GetRawButtonReleased(Button::kCircle); } BooleanEvent PS5Controller::Circle(EventLoop* loop) const { return BooleanEvent(loop, [this]() { return this->GetCircleButton(); }); } bool PS5Controller::GetTriangleButton() const { return GetRawButton(Button::kTriangle); } bool PS5Controller::GetTriangleButtonPressed() { return GetRawButtonPressed(Button::kTriangle); } bool PS5Controller::GetTriangleButtonReleased() { return GetRawButtonReleased(Button::kTriangle); } BooleanEvent PS5Controller::Triangle(EventLoop* loop) const { return BooleanEvent(loop, [this]() { return this->GetTriangleButton(); }); } bool PS5Controller::GetL1Button() const { return GetRawButton(Button::kL1); } bool PS5Controller::GetL1ButtonPressed() { return GetRawButtonPressed(Button::kL1); } bool PS5Controller::GetL1ButtonReleased() { return GetRawButtonReleased(Button::kL1); } BooleanEvent PS5Controller::L1(EventLoop* loop) const { return BooleanEvent(loop, [this]() { return this->GetL1Button(); }); } bool PS5Controller::GetR1Button() const { return GetRawButton(Button::kR1); } bool PS5Controller::GetR1ButtonPressed() { return GetRawButtonPressed(Button::kR1); } bool PS5Controller::GetR1ButtonReleased() { return GetRawButtonReleased(Button::kR1); } BooleanEvent PS5Controller::R1(EventLoop* loop) const { return BooleanEvent(loop, [this]() { return this->GetR1Button(); }); } bool PS5Controller::GetL2Button() const { return GetRawButton(Button::kL2); } bool PS5Controller::GetL2ButtonPressed() { return GetRawButtonPressed(Button::kL2); } bool PS5Controller::GetL2ButtonReleased() { return GetRawButtonReleased(Button::kL2); } BooleanEvent PS5Controller::L2(EventLoop* loop) const { return BooleanEvent(loop, [this]() { return this->GetL2Button(); }); } bool PS5Controller::GetR2Button() const { return GetRawButton(Button::kR2); } bool PS5Controller::GetR2ButtonPressed() { return GetRawButtonPressed(Button::kR2); } bool PS5Controller::GetR2ButtonReleased() { return GetRawButtonReleased(Button::kR2); } BooleanEvent PS5Controller::R2(EventLoop* loop) const { return BooleanEvent(loop, [this]() { return this->GetR2Button(); }); } bool PS5Controller::GetCreateButton() const { return GetRawButton(Button::kCreate); } bool PS5Controller::GetCreateButtonPressed() { return GetRawButtonPressed(Button::kCreate); } bool PS5Controller::GetCreateButtonReleased() { return GetRawButtonReleased(Button::kCreate); } BooleanEvent PS5Controller::Create(EventLoop* loop) const { return BooleanEvent(loop, [this]() { return this->GetCreateButton(); }); } bool PS5Controller::GetOptionsButton() const { return GetRawButton(Button::kOptions); } bool PS5Controller::GetOptionsButtonPressed() { return GetRawButtonPressed(Button::kOptions); } bool PS5Controller::GetOptionsButtonReleased() { return GetRawButtonReleased(Button::kOptions); } BooleanEvent PS5Controller::Options(EventLoop* loop) const { return BooleanEvent(loop, [this]() { return this->GetOptionsButton(); }); } bool PS5Controller::GetL3Button() const { return GetRawButton(Button::kL3); } bool PS5Controller::GetL3ButtonPressed() { return GetRawButtonPressed(Button::kL3); } bool PS5Controller::GetL3ButtonReleased() { return GetRawButtonReleased(Button::kL3); } BooleanEvent PS5Controller::L3(EventLoop* loop) const { return BooleanEvent(loop, [this]() { return this->GetL3Button(); }); } bool PS5Controller::GetR3Button() const { return GetRawButton(Button::kR3); } bool PS5Controller::GetR3ButtonPressed() { return GetRawButtonPressed(Button::kR3); } bool PS5Controller::GetR3ButtonReleased() { return GetRawButtonReleased(Button::kR3); } BooleanEvent PS5Controller::R3(EventLoop* loop) const { return BooleanEvent(loop, [this]() { return this->GetR3Button(); }); } bool PS5Controller::GetPSButton() const { return GetRawButton(Button::kPS); } bool PS5Controller::GetPSButtonPressed() { return GetRawButtonPressed(Button::kPS); } bool PS5Controller::GetPSButtonReleased() { return GetRawButtonReleased(Button::kPS); } BooleanEvent PS5Controller::PS(EventLoop* loop) const { return BooleanEvent(loop, [this]() { return this->GetPSButton(); }); } bool PS5Controller::GetTouchpad() const { return GetRawButton(Button::kTouchpad); } bool PS5Controller::GetTouchpadPressed() { return GetRawButtonPressed(Button::kTouchpad); } bool PS5Controller::GetTouchpadReleased() { return GetRawButtonReleased(Button::kTouchpad); } BooleanEvent PS5Controller::Touchpad(EventLoop* loop) const { return BooleanEvent(loop, [this]() { return this->GetTouchpad(); }); }