diff options
author | liamwhite <liamwhite@users.noreply.github.com> | 2023-03-24 15:53:05 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-24 15:53:05 +0100 |
commit | 462c430c8b5e491f4a88cd87c465be7862b1d564 (patch) | |
tree | 66fe97f969ed87c5982d17662f0042a15219c72d /src/core/hle/service/nfc/nfc_device.cpp | |
parent | Merge pull request #9975 from liamwhite/more-waiting (diff) | |
parent | nfc: Initialize device when controller is connected (diff) | |
download | yuzu-462c430c8b5e491f4a88cd87c465be7862b1d564.tar yuzu-462c430c8b5e491f4a88cd87c465be7862b1d564.tar.gz yuzu-462c430c8b5e491f4a88cd87c465be7862b1d564.tar.bz2 yuzu-462c430c8b5e491f4a88cd87c465be7862b1d564.tar.lz yuzu-462c430c8b5e491f4a88cd87c465be7862b1d564.tar.xz yuzu-462c430c8b5e491f4a88cd87c465be7862b1d564.tar.zst yuzu-462c430c8b5e491f4a88cd87c465be7862b1d564.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/service/nfc/nfc_device.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/core/hle/service/nfc/nfc_device.cpp b/src/core/hle/service/nfc/nfc_device.cpp index 3f17d0c7a..c7db74d14 100644 --- a/src/core/hle/service/nfc/nfc_device.cpp +++ b/src/core/hle/service/nfc/nfc_device.cpp @@ -42,8 +42,18 @@ NfcDevice::~NfcDevice() { }; void NfcDevice::NpadUpdate(Core::HID::ControllerTriggerType type) { - if (type == Core::HID::ControllerTriggerType::Connected || - type == Core::HID::ControllerTriggerType::Disconnected) { + if (!is_initalized) { + return; + } + + if (type == Core::HID::ControllerTriggerType::Connected) { + Initialize(); + availability_change_event->Signal(); + return; + } + + if (type == Core::HID::ControllerTriggerType::Disconnected) { + device_state = NFP::DeviceState::Unavailable; availability_change_event->Signal(); return; } @@ -113,6 +123,7 @@ void NfcDevice::Initialize() { device_state = npad_device->HasNfc() ? NFP::DeviceState::Initialized : NFP::DeviceState::Unavailable; encrypted_tag_data = {}; + is_initalized = true; } void NfcDevice::Finalize() { @@ -121,6 +132,7 @@ void NfcDevice::Finalize() { StopDetection(); } device_state = NFP::DeviceState::Unavailable; + is_initalized = false; } Result NfcDevice::StartDetection(NFP::TagProtocol allowed_protocol) { |