summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/nfc/nfc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/service/nfc/nfc.cpp')
-rw-r--r--src/core/hle/service/nfc/nfc.cpp110
1 files changed, 72 insertions, 38 deletions
diff --git a/src/core/hle/service/nfc/nfc.cpp b/src/core/hle/service/nfc/nfc.cpp
index 6595e34ed..7a8f59725 100644
--- a/src/core/hle/service/nfc/nfc.cpp
+++ b/src/core/hle/service/nfc/nfc.cpp
@@ -8,12 +8,83 @@
#include "core/hle/service/ipc_helpers.h"
#include "core/hle/service/nfc/mifare_user.h"
#include "core/hle/service/nfc/nfc.h"
-#include "core/hle/service/nfc/nfc_user.h"
+#include "core/hle/service/nfc/nfc_interface.h"
#include "core/hle/service/server_manager.h"
#include "core/hle/service/service.h"
namespace Service::NFC {
+class IUser final : public Interface {
+public:
+ explicit IUser(Core::System& system_) : Interface(system_, "IUser") {
+ // clang-format off
+ static const FunctionInfo functions[] = {
+ {0, &Interface::Initialize, "InitializeOld"},
+ {1, &Interface::Finalize, "FinalizeOld"},
+ {2, &Interface::GetState, "GetStateOld"},
+ {3, &Interface::IsNfcEnabled, "IsNfcEnabledOld"},
+ {400, &Interface::Initialize, "Initialize"},
+ {401, &Interface::Finalize, "Finalize"},
+ {402, &Interface::GetState, "GetState"},
+ {403, &Interface::IsNfcEnabled, "IsNfcEnabled"},
+ {404, &Interface::ListDevices, "ListDevices"},
+ {405, &Interface::GetDeviceState, "GetDeviceState"},
+ {406, &Interface::GetNpadId, "GetNpadId"},
+ {407, &Interface::AttachAvailabilityChangeEvent, "AttachAvailabilityChangeEvent"},
+ {408, &Interface::StartDetection, "StartDetection"},
+ {409, &Interface::StopDetection, "StopDetection"},
+ {410, &Interface::GetTagInfo, "GetTagInfo"},
+ {411, &Interface::AttachActivateEvent, "AttachActivateEvent"},
+ {412, &Interface::AttachDeactivateEvent, "AttachDeactivateEvent"},
+ {1000, nullptr, "ReadMifare"},
+ {1001, nullptr, "WriteMifare"},
+ {1300, &Interface::SendCommandByPassThrough, "SendCommandByPassThrough"},
+ {1301, nullptr, "KeepPassThroughSession"},
+ {1302, nullptr, "ReleasePassThroughSession"},
+ };
+ // clang-format on
+
+ RegisterHandlers(functions);
+ }
+};
+
+class ISystem final : public Interface {
+public:
+ explicit ISystem(Core::System& system_) : Interface{system_, "ISystem"} {
+ // clang-format off
+ static const FunctionInfo functions[] = {
+ {0, &Interface::Initialize, "InitializeOld"},
+ {1, &Interface::Finalize, "FinalizeOld"},
+ {2, &Interface::GetState, "GetStateOld"},
+ {3, &Interface::IsNfcEnabled, "IsNfcEnabledOld"},
+ {100, nullptr, "SetNfcEnabledOld"},
+ {400, &Interface::Initialize, "Initialize"},
+ {401, &Interface::Finalize, "Finalize"},
+ {402, &Interface::GetState, "GetState"},
+ {403, &Interface::IsNfcEnabled, "IsNfcEnabled"},
+ {404, &Interface::ListDevices, "ListDevices"},
+ {405, &Interface::GetDeviceState, "GetDeviceState"},
+ {406, &Interface::GetNpadId, "GetNpadId"},
+ {407, &Interface::AttachAvailabilityChangeEvent, "AttachAvailabilityChangeEvent"},
+ {408, &Interface::StartDetection, "StartDetection"},
+ {409, &Interface::StopDetection, "StopDetection"},
+ {410, &Interface::GetTagInfo, "GetTagInfo"},
+ {411, &Interface::AttachActivateEvent, "AttachActivateEvent"},
+ {412, &Interface::AttachDeactivateEvent, "AttachDeactivateEvent"},
+ {500, nullptr, "SetNfcEnabled"},
+ {510, nullptr, "OutputTestWave"},
+ {1000, nullptr, "ReadMifare"},
+ {1001, nullptr, "WriteMifare"},
+ {1300, &Interface::SendCommandByPassThrough, "SendCommandByPassThrough"},
+ {1301, nullptr, "KeepPassThroughSession"},
+ {1302, nullptr, "ReleasePassThroughSession"},
+ };
+ // clang-format on
+
+ RegisterHandlers(functions);
+ }
+};
+
class IAm final : public ServiceFramework<IAm> {
public:
explicit IAm(Core::System& system_) : ServiceFramework{system_, "NFC::IAm"} {
@@ -95,43 +166,6 @@ private:
}
};
-class ISystem final : public ServiceFramework<ISystem> {
-public:
- explicit ISystem(Core::System& system_) : ServiceFramework{system_, "ISystem"} {
- // clang-format off
- static const FunctionInfo functions[] = {
- {0, nullptr, "Initialize"},
- {1, nullptr, "Finalize"},
- {2, nullptr, "GetStateOld"},
- {3, nullptr, "IsNfcEnabledOld"},
- {100, nullptr, "SetNfcEnabledOld"},
- {400, nullptr, "InitializeSystem"},
- {401, nullptr, "FinalizeSystem"},
- {402, nullptr, "GetState"},
- {403, nullptr, "IsNfcEnabled"},
- {404, nullptr, "ListDevices"},
- {405, nullptr, "GetDeviceState"},
- {406, nullptr, "GetNpadId"},
- {407, nullptr, "AttachAvailabilityChangeEvent"},
- {408, nullptr, "StartDetection"},
- {409, nullptr, "StopDetection"},
- {410, nullptr, "GetTagInfo"},
- {411, nullptr, "AttachActivateEvent"},
- {412, nullptr, "AttachDeactivateEvent"},
- {500, nullptr, "SetNfcEnabled"},
- {510, nullptr, "OutputTestWave"},
- {1000, nullptr, "ReadMifare"},
- {1001, nullptr, "WriteMifare"},
- {1300, nullptr, "SendCommandByPassThrough"},
- {1301, nullptr, "KeepPassThroughSession"},
- {1302, nullptr, "ReleasePassThroughSession"},
- };
- // clang-format on
-
- RegisterHandlers(functions);
- }
-};
-
class NFC_SYS final : public ServiceFramework<NFC_SYS> {
public:
explicit NFC_SYS(Core::System& system_) : ServiceFramework{system_, "nfc:sys"} {