aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Services/Nfc/NfcManager/INfc.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Nfc/NfcManager/INfc.cs')
-rw-r--r--Ryujinx.HLE/HOS/Services/Nfc/NfcManager/INfc.cs28
1 files changed, 27 insertions, 1 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Nfc/NfcManager/INfc.cs b/Ryujinx.HLE/HOS/Services/Nfc/NfcManager/INfc.cs
index f2fc867d..a1ae0b9c 100644
--- a/Ryujinx.HLE/HOS/Services/Nfc/NfcManager/INfc.cs
+++ b/Ryujinx.HLE/HOS/Services/Nfc/NfcManager/INfc.cs
@@ -5,22 +5,48 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.NfcManager
class INfc : IpcService
{
private NfcPermissionLevel _permissionLevel;
+ private State _state;
public INfc(NfcPermissionLevel permissionLevel)
{
_permissionLevel = permissionLevel;
+ _state = State.NonInitialized;
}
[CommandHipc(0)]
[CommandHipc(400)] // 4.0.0+
- // Initialize()
+ // Initialize(u64, u64, pid, buffer<unknown, 5>)
public ResultCode Initialize(ServiceCtx context)
{
+ _state = State.Initialized;
+
Logger.Stub?.PrintStub(LogClass.ServiceNfc, new { _permissionLevel });
return ResultCode.Success;
}
+ [CommandHipc(1)]
+ [CommandHipc(401)] // 4.0.0+
+ // Finalize()
+ public ResultCode Finalize(ServiceCtx context)
+ {
+ _state = State.NonInitialized;
+
+ Logger.Stub?.PrintStub(LogClass.ServiceNfc, new { _permissionLevel });
+
+ return ResultCode.Success;
+ }
+
+ [CommandHipc(2)]
+ [CommandHipc(402)] // 4.0.0+
+ // GetState() -> u32
+ public ResultCode GetState(ServiceCtx context)
+ {
+ context.ResponseData.Write((int)_state);
+
+ return ResultCode.Success;
+ }
+
[CommandHipc(3)]
[CommandHipc(403)] // 4.0.0+
// IsNfcEnabled() -> b8