aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Services/Nfp
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2018-08-16 20:47:36 -0300
committerGitHub <noreply@github.com>2018-08-16 20:47:36 -0300
commit521751795a1c97c0d97f6f8904a3be69b13d3a9d (patch)
tree942a05899c40e2de6d92a38b93a494bd96ee64b8 /Ryujinx.HLE/HOS/Services/Nfp
parent182d716867ae477c2b15a5332430dc2641fa1cc3 (diff)
Code style fixes and nits on the HLE project (#355)
* Some style fixes and nits on ITimeZoneService * Remove some unneeded usings * Remove the Ryujinx.HLE.OsHle.Handles namespace * Remove hbmenu automatic load on process exit * Rename Ns to Device, rename Os to System, rename SystemState to State * Move Exceptions and Utilities out of OsHle * Rename OsHle to HOS * Rename OsHle folder to HOS * IManagerDisplayService and ISystemDisplayService style fixes * BsdError shouldn't be public * Add a empty new line before using static * Remove unused file * Some style fixes on NPDM * Exit gracefully when the application is closed * Code style fixes on IGeneralService * Add 0x prefix on values printed as hex * Small improvements on finalization code * Move ProcessId and ThreadId out of AThreadState * Rename VFs to FileSystem * FsAccessHeader shouldn't be public. Also fix file names casing * More case changes on NPDM * Remove unused files * Move using to the correct place on NPDM * Use properties on KernelAccessControlMmio * Address PR feedback
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Nfp')
-rw-r--r--Ryujinx.HLE/HOS/Services/Nfp/DeviceState.cs7
-rw-r--r--Ryujinx.HLE/HOS/Services/Nfp/IUser.cs114
-rw-r--r--Ryujinx.HLE/HOS/Services/Nfp/IUserManager.cs27
-rw-r--r--Ryujinx.HLE/HOS/Services/Nfp/State.cs8
4 files changed, 156 insertions, 0 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Nfp/DeviceState.cs b/Ryujinx.HLE/HOS/Services/Nfp/DeviceState.cs
new file mode 100644
index 00000000..04527893
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Nfp/DeviceState.cs
@@ -0,0 +1,7 @@
+namespace Ryujinx.HLE.HOS.Services.Nfp
+{
+ enum DeviceState
+ {
+ Initialized = 0
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nfp/IUser.cs b/Ryujinx.HLE/HOS/Services/Nfp/IUser.cs
new file mode 100644
index 00000000..eac90da4
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Nfp/IUser.cs
@@ -0,0 +1,114 @@
+using Ryujinx.HLE.HOS.Ipc;
+using Ryujinx.HLE.HOS.Kernel;
+using Ryujinx.HLE.Input;
+using Ryujinx.HLE.Logging;
+using System.Collections.Generic;
+
+namespace Ryujinx.HLE.HOS.Services.Nfp
+{
+ class IUser : IpcService
+ {
+ private Dictionary<int, ServiceProcessRequest> m_Commands;
+
+ public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => m_Commands;
+
+ private const HidControllerId NpadId = HidControllerId.CONTROLLER_PLAYER_1;
+
+ private State State = State.NonInitialized;
+
+ private DeviceState DeviceState = DeviceState.Initialized;
+
+ private KEvent ActivateEvent;
+
+ private KEvent DeactivateEvent;
+
+ private KEvent AvailabilityChangeEvent;
+
+ public IUser()
+ {
+ m_Commands = new Dictionary<int, ServiceProcessRequest>()
+ {
+ { 0, Initialize },
+ { 17, AttachActivateEvent },
+ { 18, AttachDeactivateEvent },
+ { 19, GetState },
+ { 20, GetDeviceState },
+ { 21, GetNpadId },
+ { 23, AttachAvailabilityChangeEvent }
+ };
+
+ ActivateEvent = new KEvent();
+ DeactivateEvent = new KEvent();
+ AvailabilityChangeEvent = new KEvent();
+ }
+
+ public long Initialize(ServiceCtx Context)
+ {
+ Context.Device.Log.PrintStub(LogClass.ServiceNfp, "Stubbed.");
+
+ State = State.Initialized;
+
+ return 0;
+ }
+
+ public long AttachActivateEvent(ServiceCtx Context)
+ {
+ Context.Device.Log.PrintStub(LogClass.ServiceNfp, "Stubbed.");
+
+ int Handle = Context.Process.HandleTable.OpenHandle(ActivateEvent);
+
+ Context.Response.HandleDesc = IpcHandleDesc.MakeCopy(Handle);;
+
+ return 0;
+ }
+
+ public long AttachDeactivateEvent(ServiceCtx Context)
+ {
+ Context.Device.Log.PrintStub(LogClass.ServiceNfp, "Stubbed.");
+
+ int Handle = Context.Process.HandleTable.OpenHandle(DeactivateEvent);
+
+ Context.Response.HandleDesc = IpcHandleDesc.MakeCopy(Handle);
+
+ return 0;
+ }
+
+ public long GetState(ServiceCtx Context)
+ {
+ Context.ResponseData.Write((int)State);
+
+ Context.Device.Log.PrintStub(LogClass.ServiceNfp, "Stubbed.");
+
+ return 0;
+ }
+
+ public long GetDeviceState(ServiceCtx Context)
+ {
+ Context.ResponseData.Write((int)DeviceState);
+
+ Context.Device.Log.PrintStub(LogClass.ServiceNfp, "Stubbed.");
+
+ return 0;
+ }
+
+ public long GetNpadId(ServiceCtx Context)
+ {
+ Context.ResponseData.Write((int)NpadId);
+
+ Context.Device.Log.PrintStub(LogClass.ServiceNfp, "Stubbed.");
+
+ return 0;
+ }
+
+ public long AttachAvailabilityChangeEvent(ServiceCtx Context)
+ {
+ Context.Device.Log.PrintStub(LogClass.ServiceNfp, "Stubbed.");
+
+ int Handle = Context.Process.HandleTable.OpenHandle(AvailabilityChangeEvent);
+
+ Context.Response.HandleDesc = IpcHandleDesc.MakeCopy(Handle);
+
+ return 0;
+ }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nfp/IUserManager.cs b/Ryujinx.HLE/HOS/Services/Nfp/IUserManager.cs
new file mode 100644
index 00000000..770f0341
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Nfp/IUserManager.cs
@@ -0,0 +1,27 @@
+using Ryujinx.HLE.HOS.Ipc;
+using System.Collections.Generic;
+
+namespace Ryujinx.HLE.HOS.Services.Nfp
+{
+ class IUserManager : IpcService
+ {
+ private Dictionary<int, ServiceProcessRequest> m_Commands;
+
+ public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => m_Commands;
+
+ public IUserManager()
+ {
+ m_Commands = new Dictionary<int, ServiceProcessRequest>()
+ {
+ { 0, GetUserInterface }
+ };
+ }
+
+ public long GetUserInterface(ServiceCtx Context)
+ {
+ MakeObject(Context, new IUser());
+
+ return 0;
+ }
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nfp/State.cs b/Ryujinx.HLE/HOS/Services/Nfp/State.cs
new file mode 100644
index 00000000..0b4b3c1b
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Nfp/State.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.HLE.HOS.Services.Nfp
+{
+ enum State
+ {
+ NonInitialized = 0,
+ Initialized = 1
+ }
+} \ No newline at end of file