summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/nfc/nfc_device.cpp
diff options
context:
space:
mode:
authorliamwhite <liamwhite@users.noreply.github.com>2023-03-24 15:53:05 +0100
committerGitHub <noreply@github.com>2023-03-24 15:53:05 +0100
commit462c430c8b5e491f4a88cd87c465be7862b1d564 (patch)
tree66fe97f969ed87c5982d17662f0042a15219c72d /src/core/hle/service/nfc/nfc_device.cpp
parentMerge pull request #9975 from liamwhite/more-waiting (diff)
parentnfc: Initialize device when controller is connected (diff)
downloadyuzu-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.cpp16
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) {