diff options
author | liamwhite <liamwhite@users.noreply.github.com> | 2023-05-15 12:03:08 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-15 12:03:08 -0400 |
commit | 033aa264cf07802b9b1a00754e8604eb852e1d3b (patch) | |
tree | d5ea9117790eef63c202372cfdd5099326012a26 /src/input_common/helpers/joycon_protocol/nfc.cpp | |
parent | 9087fe10e91385f705180c1b3048003b85b303ca (diff) | |
parent | ac531aa15f35b2e6584b8b306b5c3258ef66dc73 (diff) |
Merge pull request #10265 from german77/amiibo-lag
input_common: Make amiibo scanning less demanding
Diffstat (limited to 'src/input_common/helpers/joycon_protocol/nfc.cpp')
-rw-r--r-- | src/input_common/helpers/joycon_protocol/nfc.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/input_common/helpers/joycon_protocol/nfc.cpp b/src/input_common/helpers/joycon_protocol/nfc.cpp index 77ea6d5cf..14818ae33 100644 --- a/src/input_common/helpers/joycon_protocol/nfc.cpp +++ b/src/input_common/helpers/joycon_protocol/nfc.cpp @@ -72,6 +72,11 @@ DriverResult NfcProtocol::StartNFCPollingMode() { } DriverResult NfcProtocol::ScanAmiibo(std::vector<u8>& data) { + if (update_counter++ < AMIIBO_UPDATE_DELAY) { + return DriverResult::Delayed; + } + update_counter = 0; + LOG_DEBUG(Input, "Start NFC pooling Mode"); ScopedSetBlocking sb(this); DriverResult result{DriverResult::Success}; @@ -87,7 +92,7 @@ DriverResult NfcProtocol::ScanAmiibo(std::vector<u8>& data) { result = WaitUntilNfcIsReady(); } if (result == DriverResult::Success) { - result = StartPolling(tag_data); + result = StartPolling(tag_data, 7); } if (result == DriverResult::Success) { result = GetAmiiboData(data); @@ -129,9 +134,8 @@ DriverResult NfcProtocol::WaitUntilNfcIsReady() { return DriverResult::Success; } -DriverResult NfcProtocol::StartPolling(TagFoundData& data) { +DriverResult NfcProtocol::StartPolling(TagFoundData& data, std::size_t timeout_limit) { LOG_DEBUG(Input, "Start Polling for tag"); - constexpr std::size_t timeout_limit = 7; MCUCommandResponse output{}; std::size_t tries = 0; |