

support ps4
@debf6ff20416178cd07171a28308e1ad872faf09
--- p9n_interface/include/p9n_interface/ps4_dualshock4.hpp
+++ p9n_interface/include/p9n_interface/ps4_dualshock4.hpp
... | ... | @@ -16,5 +16,31 @@ |
16 | 16 |
|
17 | 17 |
namespace p9n_interface |
18 | 18 |
{ |
19 |
-// TODO: Implement it |
|
19 |
+enum class BUTTONS_DUALSHOCK4 |
|
20 |
+{ |
|
21 |
+ CROSS = 0, |
|
22 |
+ CIRCLE, |
|
23 |
+ TRIANGLE, |
|
24 |
+ SQUARE, |
|
25 |
+ L1, |
|
26 |
+ R1, |
|
27 |
+ L2, |
|
28 |
+ R2, |
|
29 |
+ SELECT, |
|
30 |
+ START, |
|
31 |
+ PS |
|
32 |
+}; |
|
33 |
+ |
|
34 |
+enum class AXES_DUALSHOCK4 |
|
35 |
+{ |
|
36 |
+ STICK_LX = 0, |
|
37 |
+ STICK_LY, |
|
38 |
+ L2, |
|
39 |
+ STICK_RX, |
|
40 |
+ STICK_RY, |
|
41 |
+ R2, |
|
42 |
+ DPAD_X, |
|
43 |
+ DPAD_Y, |
|
44 |
+}; |
|
45 |
+ |
|
20 | 46 |
} // namespace p9n_interface |
--- p9n_interface/src/p9n_interface.cpp
+++ p9n_interface/src/p9n_interface.cpp
... | ... | @@ -122,7 +122,53 @@ |
122 | 122 |
break; |
123 | 123 |
} |
124 | 124 |
case HW_TYPE::DUALSHOCK4: |
125 |
- throw std::runtime_error("DualShock4 not supported yet."); |
|
125 |
+ { |
|
126 |
+ using BTN_IDX = BUTTONS_DUALSHOCK4; |
|
127 |
+ using AXES_IDX = AXES_DUALSHOCK4; |
|
128 |
+ |
|
129 |
+ this->btn_idx_->cross = |
|
130 |
+ static_cast<size_t>(BTN_IDX::CROSS); |
|
131 |
+ this->btn_idx_->circle = |
|
132 |
+ static_cast<size_t>(BTN_IDX::CIRCLE); |
|
133 |
+ this->btn_idx_->triangle = |
|
134 |
+ static_cast<size_t>(BTN_IDX::TRIANGLE); |
|
135 |
+ this->btn_idx_->square = |
|
136 |
+ static_cast<size_t>(BTN_IDX::SQUARE); |
|
137 |
+ |
|
138 |
+ this->btn_idx_->L1 = |
|
139 |
+ static_cast<size_t>(BTN_IDX::L1); |
|
140 |
+ this->btn_idx_->R1 = |
|
141 |
+ static_cast<size_t>(BTN_IDX::R1); |
|
142 |
+ this->btn_idx_->L2 = |
|
143 |
+ static_cast<size_t>(BTN_IDX::L2); |
|
144 |
+ this->btn_idx_->R2 = |
|
145 |
+ static_cast<size_t>(BTN_IDX::R2); |
|
146 |
+ |
|
147 |
+ this->btn_idx_->select = |
|
148 |
+ static_cast<size_t>(BTN_IDX::SELECT); |
|
149 |
+ this->btn_idx_->start = |
|
150 |
+ static_cast<size_t>(BTN_IDX::START); |
|
151 |
+ this->btn_idx_->PS = |
|
152 |
+ static_cast<size_t>(BTN_IDX::PS); |
|
153 |
+ |
|
154 |
+ this->axes_idx_->stick_lx = |
|
155 |
+ static_cast<size_t>(AXES_IDX::STICK_LX); |
|
156 |
+ this->axes_idx_->stick_ly = |
|
157 |
+ static_cast<size_t>(AXES_IDX::STICK_LY); |
|
158 |
+ this->axes_idx_->stick_rx = |
|
159 |
+ static_cast<size_t>(AXES_IDX::STICK_RX); |
|
160 |
+ this->axes_idx_->stick_ry = |
|
161 |
+ static_cast<size_t>(AXES_IDX::STICK_RY); |
|
162 |
+ this->axes_idx_->R2_analog = |
|
163 |
+ static_cast<size_t>(AXES_IDX::R2); |
|
164 |
+ this->axes_idx_->L2_analog = |
|
165 |
+ static_cast<size_t>(AXES_IDX::L2); |
|
166 |
+ this->axes_idx_->d_pad_x = |
|
167 |
+ static_cast<size_t>(AXES_IDX::DPAD_X); |
|
168 |
+ this->axes_idx_->d_pad_y = |
|
169 |
+ static_cast<size_t>(AXES_IDX::DPAD_Y); |
|
170 |
+ break; |
|
171 |
+ } |
|
126 | 172 |
case HW_TYPE::DUALSENSE: |
127 | 173 |
{ |
128 | 174 |
using BTN_IDX = BUTTONS_DUALSENSE; |
... | ... | @@ -348,6 +394,8 @@ |
348 | 394 |
return 0.0; |
349 | 395 |
} |
350 | 396 |
case HW_TYPE::DUALSHOCK4: |
397 |
+ return this->joy_->axes.at( |
|
398 |
+ this->axes_idx_->d_pad_x); |
|
351 | 399 |
case HW_TYPE::DUALSENSE: |
352 | 400 |
return this->joy_->axes.at( |
353 | 401 |
this->axes_idx_->d_pad_x); |
... | ... | @@ -371,6 +419,8 @@ |
371 | 419 |
return 0.0; |
372 | 420 |
} |
373 | 421 |
case HW_TYPE::DUALSHOCK4: |
422 |
+ return this->joy_->axes.at( |
|
423 |
+ this->axes_idx_->d_pad_y); |
|
374 | 424 |
case HW_TYPE::DUALSENSE: |
375 | 425 |
return this->joy_->axes.at( |
376 | 426 |
this->axes_idx_->d_pad_y); |
... | ... | @@ -434,4 +484,4 @@ |
434 | 484 |
} |
435 | 485 |
|
436 | 486 |
|
437 |
-} // namespace p9n_interface |
|
487 |
+} // namespace p9n_interfaceDualShock4 |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?