Просмотр исходного кода

service: nfc: Read tag protocol only for nfc backend

Narr the Reg 3 лет назад
Родитель
Сommit
61b4588517

+ 6 - 2
src/core/hle/service/nfc/nfc_interface.cpp

@@ -142,9 +142,13 @@ void NfcInterface::AttachAvailabilityChangeEvent(HLERequestContext& ctx) {
 void NfcInterface::StartDetection(HLERequestContext& ctx) {
     IPC::RequestParser rp{ctx};
     const auto device_handle{rp.Pop<u64>()};
-    const auto tag_protocol{rp.PopEnum<NfcProtocol>()};
-    LOG_INFO(Service_NFC, "called, device_handle={}, nfp_protocol={}", device_handle, tag_protocol);
+    auto tag_protocol{NfcProtocol::All};
+
+    if (backend_type == BackendType::Nfc) {
+        tag_protocol = rp.PopEnum<NfcProtocol>();
+    }
 
+    LOG_INFO(Service_NFC, "called, device_handle={}, nfp_protocol={}", device_handle, tag_protocol);
     auto result = GetManager()->StartDetection(device_handle, tag_protocol);
     result = TranslateResultToServiceError(result);
 

+ 0 - 3
src/core/hle/service/nfc/nfc_types.h

@@ -59,14 +59,11 @@ enum class PackedTagType : u8 {
 };
 
 // This is nn::nfc::NfcProtocol
-// Verify this enum. It might be completely wrong default protocol is 0x48
 enum class NfcProtocol : u32 {
     None,
     TypeA = 1U << 0, // ISO14443A
     TypeB = 1U << 1, // ISO14443B
     TypeF = 1U << 2, // Sony FeliCa
-    Unknown1 = 1U << 3,
-    Unknown2 = 1U << 5,
     All = 0xFFFFFFFFU,
 };