summaryrefslogtreecommitdiff
path: root/src/input_common/drivers/joycon.cpp
diff options
context:
space:
mode:
authorGravatar german772022-12-26 11:11:01 -0600
committerGravatar Narr the Reg2023-01-19 18:05:22 -0600
commit527dad70976a158e94defc51707347e064a31099 (patch)
treed9e9e68799d0c051e8e6a8a2dda7170ea911831d /src/input_common/drivers/joycon.cpp
parentAddress review comments (diff)
downloadyuzu-527dad70976a158e94defc51707347e064a31099.tar.gz
yuzu-527dad70976a158e94defc51707347e064a31099.tar.xz
yuzu-527dad70976a158e94defc51707347e064a31099.zip
input_common: Use DriverResult on all engines
Diffstat (limited to 'src/input_common/drivers/joycon.cpp')
-rw-r--r--src/input_common/drivers/joycon.cpp41
1 files changed, 19 insertions, 22 deletions
diff --git a/src/input_common/drivers/joycon.cpp b/src/input_common/drivers/joycon.cpp
index 696a6db39..cf54f1b53 100644
--- a/src/input_common/drivers/joycon.cpp
+++ b/src/input_common/drivers/joycon.cpp
@@ -233,8 +233,8 @@ bool Joycons::IsVibrationEnabled(const PadIdentifier& identifier) {
233 return handle->IsVibrationEnabled(); 233 return handle->IsVibrationEnabled();
234} 234}
235 235
236Common::Input::VibrationError Joycons::SetVibration( 236Common::Input::DriverResult Joycons::SetVibration(const PadIdentifier& identifier,
237 const PadIdentifier& identifier, const Common::Input::VibrationStatus& vibration) { 237 const Common::Input::VibrationStatus& vibration) {
238 const Joycon::VibrationValue native_vibration{ 238 const Joycon::VibrationValue native_vibration{
239 .low_amplitude = vibration.low_amplitude, 239 .low_amplitude = vibration.low_amplitude,
240 .low_frequency = vibration.low_frequency, 240 .low_frequency = vibration.low_frequency,
@@ -243,32 +243,31 @@ Common::Input::VibrationError Joycons::SetVibration(
243 }; 243 };
244 auto handle = GetHandle(identifier); 244 auto handle = GetHandle(identifier);
245 if (handle == nullptr) { 245 if (handle == nullptr) {
246 return Common::Input::VibrationError::InvalidHandle; 246 return Common::Input::DriverResult::InvalidHandle;
247 } 247 }
248 248
249 handle->SetVibration(native_vibration); 249 handle->SetVibration(native_vibration);
250 return Common::Input::VibrationError::None; 250 return Common::Input::DriverResult::Success;
251} 251}
252 252
253void Joycons::SetLeds(const PadIdentifier& identifier, const Common::Input::LedStatus& led_status) { 253Common::Input::DriverResult Joycons::SetLeds(const PadIdentifier& identifier,
254 const Common::Input::LedStatus& led_status) {
254 auto handle = GetHandle(identifier); 255 auto handle = GetHandle(identifier);
255 if (handle == nullptr) { 256 if (handle == nullptr) {
256 return; 257 return Common::Input::DriverResult::InvalidHandle;
257 } 258 }
258 int led_config = led_status.led_1 ? 1 : 0; 259 int led_config = led_status.led_1 ? 1 : 0;
259 led_config += led_status.led_2 ? 2 : 0; 260 led_config += led_status.led_2 ? 2 : 0;
260 led_config += led_status.led_3 ? 4 : 0; 261 led_config += led_status.led_3 ? 4 : 0;
261 led_config += led_status.led_4 ? 8 : 0; 262 led_config += led_status.led_4 ? 8 : 0;
262 263
263 const auto result = handle->SetLedConfig(static_cast<u8>(led_config)); 264 return static_cast<Common::Input::DriverResult>(
264 if (result != Joycon::DriverResult::Success) { 265 handle->SetLedConfig(static_cast<u8>(led_config)));
265 LOG_ERROR(Input, "Failed to set led config");
266 }
267} 266}
268 267
269Common::Input::CameraError Joycons::SetCameraFormat(const PadIdentifier& identifier_, 268Common::Input::DriverResult Joycons::SetCameraFormat(const PadIdentifier& identifier_,
270 Common::Input::CameraFormat camera_format) { 269 Common::Input::CameraFormat camera_format) {
271 return Common::Input::CameraError::NotSupported; 270 return Common::Input::DriverResult::NotSupported;
272}; 271};
273 272
274Common::Input::NfcState Joycons::SupportsNfc(const PadIdentifier& identifier_) const { 273Common::Input::NfcState Joycons::SupportsNfc(const PadIdentifier& identifier_) const {
@@ -280,32 +279,30 @@ Common::Input::NfcState Joycons::WriteNfcData(const PadIdentifier& identifier_,
280 return Common::Input::NfcState::NotSupported; 279 return Common::Input::NfcState::NotSupported;
281}; 280};
282 281
283Common::Input::PollingError Joycons::SetPollingMode(const PadIdentifier& identifier, 282Common::Input::DriverResult Joycons::SetPollingMode(const PadIdentifier& identifier,
284 const Common::Input::PollingMode polling_mode) { 283 const Common::Input::PollingMode polling_mode) {
285 auto handle = GetHandle(identifier); 284 auto handle = GetHandle(identifier);
286 if (handle == nullptr) { 285 if (handle == nullptr) {
287 LOG_ERROR(Input, "Invalid handle {}", identifier.port); 286 LOG_ERROR(Input, "Invalid handle {}", identifier.port);
288 return Common::Input::PollingError::InvalidHandle; 287 return Common::Input::DriverResult::InvalidHandle;
289 } 288 }
290 289
291 switch (polling_mode) { 290 switch (polling_mode) {
292 case Common::Input::PollingMode::NFC: 291 case Common::Input::PollingMode::NFC:
293 handle->SetNfcMode(); 292 return static_cast<Common::Input::DriverResult>(handle->SetNfcMode());
294 break; 293 break;
295 case Common::Input::PollingMode::Active: 294 case Common::Input::PollingMode::Active:
296 handle->SetActiveMode(); 295 return static_cast<Common::Input::DriverResult>(handle->SetActiveMode());
297 break; 296 break;
298 case Common::Input::PollingMode::Pasive: 297 case Common::Input::PollingMode::Pasive:
299 handle->SetPasiveMode(); 298 return static_cast<Common::Input::DriverResult>(handle->SetPasiveMode());
300 break; 299 break;
301 case Common::Input::PollingMode::Ring: 300 case Common::Input::PollingMode::Ring:
302 handle->SetRingConMode(); 301 return static_cast<Common::Input::DriverResult>(handle->SetRingConMode());
303 break; 302 break;
304 default: 303 default:
305 return Common::Input::PollingError::NotSupported; 304 return Common::Input::DriverResult::NotSupported;
306 } 305 }
307
308 return Common::Input::PollingError::None;
309} 306}
310 307
311void Joycons::OnBatteryUpdate(std::size_t port, Joycon::ControllerType type, 308void Joycons::OnBatteryUpdate(std::size_t port, Joycon::ControllerType type,