committed by
GitHub
8 changed files with 199 additions and 30 deletions
-
6src/core/CMakeLists.txt
-
18src/core/hle/service/nfc/nfc.cpp
-
14src/core/hle/service/nfc/nfc.h
-
44src/core/hle/service/nfc/nfc_m.cpp
-
22src/core/hle/service/nfc/nfc_m.h
-
41src/core/hle/service/nfc/nfc_u.cpp
-
22src/core/hle/service/nfc/nfc_u.h
-
62src/core/hle/service/service.cpp
@ -0,0 +1,18 @@ |
|||||
|
// Copyright 2016 Citra Emulator Project
|
||||
|
// Licensed under GPLv2 or any later version
|
||||
|
// Refer to the license.txt file included.
|
||||
|
|
||||
|
#include "core/hle/service/nfc/nfc.h"
|
||||
|
#include "core/hle/service/nfc/nfc_m.h"
|
||||
|
#include "core/hle/service/nfc/nfc_u.h"
|
||||
|
|
||||
|
namespace Service { |
||||
|
namespace NFC { |
||||
|
|
||||
|
void Init() { |
||||
|
AddService(new NFC_M()); |
||||
|
AddService(new NFC_U()); |
||||
|
} |
||||
|
|
||||
|
} // namespace NFC
|
||||
|
} // namespace Service
|
||||
@ -0,0 +1,14 @@ |
|||||
|
// Copyright 2016 Citra Emulator Project |
||||
|
// Licensed under GPLv2 or any later version |
||||
|
// Refer to the license.txt file included. |
||||
|
|
||||
|
#pragma once |
||||
|
|
||||
|
namespace Service { |
||||
|
namespace NFC { |
||||
|
|
||||
|
/// Initialize all NFC services. |
||||
|
void Init(); |
||||
|
|
||||
|
} // namespace NFC |
||||
|
} // namespace Service |
||||
@ -0,0 +1,44 @@ |
|||||
|
// Copyright 2016 Citra Emulator Project
|
||||
|
// Licensed under GPLv2 or any later version
|
||||
|
// Refer to the license.txt file included.
|
||||
|
|
||||
|
#include "core/hle/service/nfc/nfc_m.h"
|
||||
|
|
||||
|
namespace Service { |
||||
|
namespace NFC { |
||||
|
|
||||
|
const Interface::FunctionInfo FunctionTable[] = { |
||||
|
// clang-format off
|
||||
|
// nfc:u shared commands
|
||||
|
{0x00010040, nullptr, "Initialize"}, |
||||
|
{0x00020040, nullptr, "Shutdown"}, |
||||
|
{0x00030000, nullptr, "StartCommunication"}, |
||||
|
{0x00040000, nullptr, "StopCommunication"}, |
||||
|
{0x00050040, nullptr, "StartTagScanning"}, |
||||
|
{0x00060000, nullptr, "StopTagScanning"}, |
||||
|
{0x00070000, nullptr, "LoadAmiiboData"}, |
||||
|
{0x00080000, nullptr, "ResetTagScanState"}, |
||||
|
{0x00090002, nullptr, "UpdateStoredAmiiboData"}, |
||||
|
{0x000D0000, nullptr, "GetTagState"}, |
||||
|
{0x000F0000, nullptr, "CommunicationGetStatus"}, |
||||
|
{0x00100000, nullptr, "GetTagInfo2"}, |
||||
|
{0x00110000, nullptr, "GetTagInfo"}, |
||||
|
{0x00120000, nullptr, "CommunicationGetResult"}, |
||||
|
{0x00130040, nullptr, "OpenAppData"}, |
||||
|
{0x00140384, nullptr, "InitializeWriteAppData"}, |
||||
|
{0x00150040, nullptr, "ReadAppData"}, |
||||
|
{0x00160242, nullptr, "WriteAppData"}, |
||||
|
{0x00170000, nullptr, "GetAmiiboSettings"}, |
||||
|
{0x00180000, nullptr, "GetAmiiboConfig"}, |
||||
|
{0x00190000, nullptr, "GetAppDataInitStruct"}, |
||||
|
// nfc:m
|
||||
|
{0x04040A40, nullptr, "SetAmiiboSettings"} |
||||
|
// clang-format on
|
||||
|
}; |
||||
|
|
||||
|
NFC_M::NFC_M() { |
||||
|
Register(FunctionTable); |
||||
|
} |
||||
|
|
||||
|
} // namespace NFC
|
||||
|
} // namespace Service
|
||||
@ -0,0 +1,22 @@ |
|||||
|
// Copyright 2016 Citra Emulator Project |
||||
|
// Licensed under GPLv2 or any later version |
||||
|
// Refer to the license.txt file included. |
||||
|
|
||||
|
#pragma once |
||||
|
|
||||
|
#include "core/hle/service/service.h" |
||||
|
|
||||
|
namespace Service { |
||||
|
namespace NFC { |
||||
|
|
||||
|
class NFC_M final : public Interface { |
||||
|
public: |
||||
|
NFC_M(); |
||||
|
|
||||
|
std::string GetPortName() const override { |
||||
|
return "nfc:m"; |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
} // namespace NFC |
||||
|
} // namespace Service |
||||
@ -0,0 +1,41 @@ |
|||||
|
// Copyright 2016 Citra Emulator Project
|
||||
|
// Licensed under GPLv2 or any later version
|
||||
|
// Refer to the license.txt file included.
|
||||
|
|
||||
|
#include "core/hle/service/nfc/nfc_u.h"
|
||||
|
|
||||
|
namespace Service { |
||||
|
namespace NFC { |
||||
|
|
||||
|
const Interface::FunctionInfo FunctionTable[] = { |
||||
|
// clang-format off
|
||||
|
{0x00010040, nullptr, "Initialize"}, |
||||
|
{0x00020040, nullptr, "Shutdown"}, |
||||
|
{0x00030000, nullptr, "StartCommunication"}, |
||||
|
{0x00040000, nullptr, "StopCommunication"}, |
||||
|
{0x00050040, nullptr, "StartTagScanning"}, |
||||
|
{0x00060000, nullptr, "StopTagScanning"}, |
||||
|
{0x00070000, nullptr, "LoadAmiiboData"}, |
||||
|
{0x00080000, nullptr, "ResetTagScanState"}, |
||||
|
{0x00090002, nullptr, "UpdateStoredAmiiboData"}, |
||||
|
{0x000D0000, nullptr, "GetTagState"}, |
||||
|
{0x000F0000, nullptr, "CommunicationGetStatus"}, |
||||
|
{0x00100000, nullptr, "GetTagInfo2"}, |
||||
|
{0x00110000, nullptr, "GetTagInfo"}, |
||||
|
{0x00120000, nullptr, "CommunicationGetResult"}, |
||||
|
{0x00130040, nullptr, "OpenAppData"}, |
||||
|
{0x00140384, nullptr, "InitializeWriteAppData"}, |
||||
|
{0x00150040, nullptr, "ReadAppData"}, |
||||
|
{0x00160242, nullptr, "WriteAppData"}, |
||||
|
{0x00170000, nullptr, "GetAmiiboSettings"}, |
||||
|
{0x00180000, nullptr, "GetAmiiboConfig"}, |
||||
|
{0x00190000, nullptr, "GetAppDataInitStruct"}, |
||||
|
// clang-format on
|
||||
|
}; |
||||
|
|
||||
|
NFC_U::NFC_U() { |
||||
|
Register(FunctionTable); |
||||
|
} |
||||
|
|
||||
|
} // namespace NFC
|
||||
|
} // namespace Service
|
||||
@ -0,0 +1,22 @@ |
|||||
|
// Copyright 2016 Citra Emulator Project |
||||
|
// Licensed under GPLv2 or any later version |
||||
|
// Refer to the license.txt file included. |
||||
|
|
||||
|
#pragma once |
||||
|
|
||||
|
#include "core/hle/service/service.h" |
||||
|
|
||||
|
namespace Service { |
||||
|
namespace NFC { |
||||
|
|
||||
|
class NFC_U final : public Interface { |
||||
|
public: |
||||
|
NFC_U(); |
||||
|
|
||||
|
std::string GetPortName() const override { |
||||
|
return "nfc:u"; |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
} // namespace NFC |
||||
|
} // namespace Service |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue