summaryrefslogtreecommitdiff
path: root/src/core/hid/emulated_controller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hid/emulated_controller.cpp')
-rw-r--r--src/core/hid/emulated_controller.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/core/hid/emulated_controller.cpp b/src/core/hid/emulated_controller.cpp
index c937495f9..1ebc32c1e 100644
--- a/src/core/hid/emulated_controller.cpp
+++ b/src/core/hid/emulated_controller.cpp
@@ -1250,6 +1250,11 @@ Common::Input::DriverResult EmulatedController::SetPollingMode(
1250 const auto virtual_nfc_result = nfc_output_device->SetPollingMode(polling_mode); 1250 const auto virtual_nfc_result = nfc_output_device->SetPollingMode(polling_mode);
1251 const auto mapped_nfc_result = right_output_device->SetPollingMode(polling_mode); 1251 const auto mapped_nfc_result = right_output_device->SetPollingMode(polling_mode);
1252 1252
1253 // Restore previous state
1254 if (mapped_nfc_result != Common::Input::DriverResult::Success) {
1255 right_output_device->SetPollingMode(Common::Input::PollingMode::Active);
1256 }
1257
1253 if (virtual_nfc_result == Common::Input::DriverResult::Success) { 1258 if (virtual_nfc_result == Common::Input::DriverResult::Success) {
1254 return virtual_nfc_result; 1259 return virtual_nfc_result;
1255 } 1260 }
@@ -1329,16 +1334,22 @@ bool EmulatedController::StartNfcPolling() {
1329 auto& nfc_output_device = output_devices[static_cast<std::size_t>(DeviceIndex::Right)]; 1334 auto& nfc_output_device = output_devices[static_cast<std::size_t>(DeviceIndex::Right)];
1330 auto& nfc_virtual_output_device = output_devices[3]; 1335 auto& nfc_virtual_output_device = output_devices[3];
1331 1336
1332 return nfc_output_device->StartNfcPolling() == Common::Input::NfcState::Success || 1337 const auto device_result = nfc_output_device->StartNfcPolling();
1333 nfc_virtual_output_device->StartNfcPolling() == Common::Input::NfcState::Success; 1338 const auto virtual_device_result = nfc_virtual_output_device->StartNfcPolling();
1339
1340 return device_result == Common::Input::NfcState::Success ||
1341 virtual_device_result == Common::Input::NfcState::Success;
1334} 1342}
1335 1343
1336bool EmulatedController::StopNfcPolling() { 1344bool EmulatedController::StopNfcPolling() {
1337 auto& nfc_output_device = output_devices[static_cast<std::size_t>(DeviceIndex::Right)]; 1345 auto& nfc_output_device = output_devices[static_cast<std::size_t>(DeviceIndex::Right)];
1338 auto& nfc_virtual_output_device = output_devices[3]; 1346 auto& nfc_virtual_output_device = output_devices[3];
1339 1347
1340 return nfc_output_device->StopNfcPolling() == Common::Input::NfcState::Success || 1348 const auto device_result = nfc_output_device->StopNfcPolling();
1341 nfc_virtual_output_device->StopNfcPolling() == Common::Input::NfcState::Success; 1349 const auto virtual_device_result = nfc_virtual_output_device->StopNfcPolling();
1350
1351 return device_result == Common::Input::NfcState::Success ||
1352 virtual_device_result == Common::Input::NfcState::Success;
1342} 1353}
1343 1354
1344bool EmulatedController::ReadAmiiboData(std::vector<u8>& data) { 1355bool EmulatedController::ReadAmiiboData(std::vector<u8>& data) {