service: nfc: Read tag protocol only for nfc backend
This commit is contained in:
		@@ -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);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user