blob: 95685d677b8eba83ccdaa35013334fd4a44718af [file] [log] [blame]
James Kuszmaulb13e13f2023-11-22 20:44:04 -08001// Copyright (c) FIRST and other WPILib contributors.
2// Open Source Software; you can modify and/or share it under the terms of
3// the WPILib BSD license file in the root directory of this project.
4
5#include "frc/PS5Controller.h"
6
7#include <hal/FRCUsageReporting.h>
8
9#include "frc/event/BooleanEvent.h"
10
11using namespace frc;
12
13PS5Controller::PS5Controller(int port) : GenericHID(port) {
14 // HAL_Report(HALUsageReporting::kResourceType_PS5Controller, port + 1);
15}
16
17double PS5Controller::GetLeftX() const {
18 return GetRawAxis(Axis::kLeftX);
19}
20
21double PS5Controller::GetRightX() const {
22 return GetRawAxis(Axis::kRightX);
23}
24
25double PS5Controller::GetLeftY() const {
26 return GetRawAxis(Axis::kLeftY);
27}
28
29double PS5Controller::GetRightY() const {
30 return GetRawAxis(Axis::kRightY);
31}
32
33double PS5Controller::GetL2Axis() const {
34 return GetRawAxis(Axis::kL2);
35}
36
37double PS5Controller::GetR2Axis() const {
38 return GetRawAxis(Axis::kR2);
39}
40
41bool PS5Controller::GetSquareButton() const {
42 return GetRawButton(Button::kSquare);
43}
44
45bool PS5Controller::GetSquareButtonPressed() {
46 return GetRawButtonPressed(Button::kSquare);
47}
48
49bool PS5Controller::GetSquareButtonReleased() {
50 return GetRawButtonReleased(Button::kSquare);
51}
52
53BooleanEvent PS5Controller::Square(EventLoop* loop) const {
54 return BooleanEvent(loop, [this]() { return this->GetSquareButton(); });
55}
56
57bool PS5Controller::GetCrossButton() const {
58 return GetRawButton(Button::kCross);
59}
60
61bool PS5Controller::GetCrossButtonPressed() {
62 return GetRawButtonPressed(Button::kCross);
63}
64
65bool PS5Controller::GetCrossButtonReleased() {
66 return GetRawButtonReleased(Button::kCross);
67}
68
69BooleanEvent PS5Controller::Cross(EventLoop* loop) const {
70 return BooleanEvent(loop, [this]() { return this->GetCrossButton(); });
71}
72
73bool PS5Controller::GetCircleButton() const {
74 return GetRawButton(Button::kCircle);
75}
76
77bool PS5Controller::GetCircleButtonPressed() {
78 return GetRawButtonPressed(Button::kCircle);
79}
80
81bool PS5Controller::GetCircleButtonReleased() {
82 return GetRawButtonReleased(Button::kCircle);
83}
84
85BooleanEvent PS5Controller::Circle(EventLoop* loop) const {
86 return BooleanEvent(loop, [this]() { return this->GetCircleButton(); });
87}
88
89bool PS5Controller::GetTriangleButton() const {
90 return GetRawButton(Button::kTriangle);
91}
92
93bool PS5Controller::GetTriangleButtonPressed() {
94 return GetRawButtonPressed(Button::kTriangle);
95}
96
97bool PS5Controller::GetTriangleButtonReleased() {
98 return GetRawButtonReleased(Button::kTriangle);
99}
100
101BooleanEvent PS5Controller::Triangle(EventLoop* loop) const {
102 return BooleanEvent(loop, [this]() { return this->GetTriangleButton(); });
103}
104
105bool PS5Controller::GetL1Button() const {
106 return GetRawButton(Button::kL1);
107}
108
109bool PS5Controller::GetL1ButtonPressed() {
110 return GetRawButtonPressed(Button::kL1);
111}
112
113bool PS5Controller::GetL1ButtonReleased() {
114 return GetRawButtonReleased(Button::kL1);
115}
116
117BooleanEvent PS5Controller::L1(EventLoop* loop) const {
118 return BooleanEvent(loop, [this]() { return this->GetL1Button(); });
119}
120
121bool PS5Controller::GetR1Button() const {
122 return GetRawButton(Button::kR1);
123}
124
125bool PS5Controller::GetR1ButtonPressed() {
126 return GetRawButtonPressed(Button::kR1);
127}
128
129bool PS5Controller::GetR1ButtonReleased() {
130 return GetRawButtonReleased(Button::kR1);
131}
132
133BooleanEvent PS5Controller::R1(EventLoop* loop) const {
134 return BooleanEvent(loop, [this]() { return this->GetR1Button(); });
135}
136
137bool PS5Controller::GetL2Button() const {
138 return GetRawButton(Button::kL2);
139}
140
141bool PS5Controller::GetL2ButtonPressed() {
142 return GetRawButtonPressed(Button::kL2);
143}
144
145bool PS5Controller::GetL2ButtonReleased() {
146 return GetRawButtonReleased(Button::kL2);
147}
148
149BooleanEvent PS5Controller::L2(EventLoop* loop) const {
150 return BooleanEvent(loop, [this]() { return this->GetL2Button(); });
151}
152
153bool PS5Controller::GetR2Button() const {
154 return GetRawButton(Button::kR2);
155}
156
157bool PS5Controller::GetR2ButtonPressed() {
158 return GetRawButtonPressed(Button::kR2);
159}
160
161bool PS5Controller::GetR2ButtonReleased() {
162 return GetRawButtonReleased(Button::kR2);
163}
164
165BooleanEvent PS5Controller::R2(EventLoop* loop) const {
166 return BooleanEvent(loop, [this]() { return this->GetR2Button(); });
167}
168
169bool PS5Controller::GetCreateButton() const {
170 return GetRawButton(Button::kCreate);
171}
172
173bool PS5Controller::GetCreateButtonPressed() {
174 return GetRawButtonPressed(Button::kCreate);
175}
176
177bool PS5Controller::GetCreateButtonReleased() {
178 return GetRawButtonReleased(Button::kCreate);
179}
180
181BooleanEvent PS5Controller::Create(EventLoop* loop) const {
182 return BooleanEvent(loop, [this]() { return this->GetCreateButton(); });
183}
184
185bool PS5Controller::GetOptionsButton() const {
186 return GetRawButton(Button::kOptions);
187}
188
189bool PS5Controller::GetOptionsButtonPressed() {
190 return GetRawButtonPressed(Button::kOptions);
191}
192
193bool PS5Controller::GetOptionsButtonReleased() {
194 return GetRawButtonReleased(Button::kOptions);
195}
196
197BooleanEvent PS5Controller::Options(EventLoop* loop) const {
198 return BooleanEvent(loop, [this]() { return this->GetOptionsButton(); });
199}
200
201bool PS5Controller::GetL3Button() const {
202 return GetRawButton(Button::kL3);
203}
204
205bool PS5Controller::GetL3ButtonPressed() {
206 return GetRawButtonPressed(Button::kL3);
207}
208
209bool PS5Controller::GetL3ButtonReleased() {
210 return GetRawButtonReleased(Button::kL3);
211}
212
213BooleanEvent PS5Controller::L3(EventLoop* loop) const {
214 return BooleanEvent(loop, [this]() { return this->GetL3Button(); });
215}
216
217bool PS5Controller::GetR3Button() const {
218 return GetRawButton(Button::kR3);
219}
220
221bool PS5Controller::GetR3ButtonPressed() {
222 return GetRawButtonPressed(Button::kR3);
223}
224
225bool PS5Controller::GetR3ButtonReleased() {
226 return GetRawButtonReleased(Button::kR3);
227}
228
229BooleanEvent PS5Controller::R3(EventLoop* loop) const {
230 return BooleanEvent(loop, [this]() { return this->GetR3Button(); });
231}
232
233bool PS5Controller::GetPSButton() const {
234 return GetRawButton(Button::kPS);
235}
236
237bool PS5Controller::GetPSButtonPressed() {
238 return GetRawButtonPressed(Button::kPS);
239}
240
241bool PS5Controller::GetPSButtonReleased() {
242 return GetRawButtonReleased(Button::kPS);
243}
244
245BooleanEvent PS5Controller::PS(EventLoop* loop) const {
246 return BooleanEvent(loop, [this]() { return this->GetPSButton(); });
247}
248
249bool PS5Controller::GetTouchpad() const {
250 return GetRawButton(Button::kTouchpad);
251}
252
253bool PS5Controller::GetTouchpadPressed() {
254 return GetRawButtonPressed(Button::kTouchpad);
255}
256
257bool PS5Controller::GetTouchpadReleased() {
258 return GetRawButtonReleased(Button::kTouchpad);
259}
260
261BooleanEvent PS5Controller::Touchpad(EventLoop* loop) const {
262 return BooleanEvent(loop, [this]() { return this->GetTouchpad(); });
263}