From d161cbf550aefea6775201d47be74b9e591485e5 Mon Sep 17 00:00:00 2001 From: emmaus Date: Thu, 26 Jul 2018 17:42:26 +0000 Subject: [PATCH] implement get npad set event --- Ryujinx.HLE/OsHle/Horizon.cs | 10 ++++++++-- Ryujinx.HLE/OsHle/Services/Hid/IHidServer.cs | 10 ++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Ryujinx.HLE/OsHle/Horizon.cs b/Ryujinx.HLE/OsHle/Horizon.cs index 70ae24be32..ffbd169440 100644 --- a/Ryujinx.HLE/OsHle/Horizon.cs +++ b/Ryujinx.HLE/OsHle/Horizon.cs @@ -25,7 +25,8 @@ namespace Ryujinx.HLE.OsHle internal HSharedMem HidSharedMem { get; private set; } internal HSharedMem FontSharedMem { get; private set; } - internal KEvent VsyncEvent { get; private set; } + internal KEvent VsyncEvent { get; private set; } + internal KEvent NpadStyleSetUpdateEvent { get; private set; } public Horizon(Switch Ns) { @@ -42,7 +43,8 @@ namespace Ryujinx.HLE.OsHle HidSharedMem = new HSharedMem(); FontSharedMem = new HSharedMem(); - VsyncEvent = new KEvent(); + VsyncEvent = new KEvent(); + NpadStyleSetUpdateEvent = new KEvent(); } public void LoadCart(string ExeFsDir, string RomFsFile = null) @@ -124,6 +126,8 @@ namespace Ryujinx.HLE.OsHle public void SignalVsync() => VsyncEvent.WaitEvent.Set(); + public void SignalNpadStyleSetUpdate() => NpadStyleSetUpdateEvent.WaitEvent.Set(); + private Process MakeProcess() { Process Process; @@ -209,6 +213,8 @@ namespace Ryujinx.HLE.OsHle VsyncEvent.Dispose(); + NpadStyleSetUpdateEvent.Dispose(); + Scheduler.Dispose(); } } diff --git a/Ryujinx.HLE/OsHle/Services/Hid/IHidServer.cs b/Ryujinx.HLE/OsHle/Services/Hid/IHidServer.cs index 79d37fd4c9..75776127da 100644 --- a/Ryujinx.HLE/OsHle/Services/Hid/IHidServer.cs +++ b/Ryujinx.HLE/OsHle/Services/Hid/IHidServer.cs @@ -26,6 +26,7 @@ namespace Ryujinx.HLE.OsHle.Services.Hid { 101, GetSupportedNpadStyleSet }, { 102, SetSupportedNpadIdType }, { 103, ActivateNpad }, + { 106, AcquireNpadStyleSetUpdateEventHandle }, { 108, GetPlayerLedPattern }, { 120, SetNpadJoyHoldType }, { 121, GetNpadJoyHoldType }, @@ -104,6 +105,15 @@ namespace Ryujinx.HLE.OsHle.Services.Hid return 0; } + public long AcquireNpadStyleSetUpdateEventHandle(ServiceCtx Context) + { + int Handle = Context.Process.HandleTable.OpenHandle(Context.Ns.Os.NpadStyleSetUpdateEvent); + + Context.Response.HandleDesc = IpcHandleDesc.MakeCopy(Handle); + + return 0; + } + public long GetSupportedNpadStyleSet(ServiceCtx Context) { Context.ResponseData.Write(0);