diff options
| author | Ac_K <Acoustik666@gmail.com> | 2019-07-12 03:13:43 +0200 |
|---|---|---|
| committer | gdkchan <gab.dark.100@gmail.com> | 2019-07-11 22:13:43 -0300 |
| commit | 560ccbeb2d55a4426ad2827bf7534d4a695431c2 (patch) | |
| tree | 7e224acbd6c023ea56ff80c6207aa0966aa06ee5 /Ryujinx.HLE/HOS/Services/Apm | |
| parent | f723f6f39aaf7b1cebc0224a055058d62e3b689c (diff) | |
Refactoring commands handling (#728)
* Refactoring commands handling
- Use Reflection to handle commands ID.
- Add all symbols (from SwIPC so not all time accurate).
- Re-sort some services commands methods.
- Some cleanup.
- Keep some empty constructor for consistency.
* Fix order in IProfile
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Apm')
| -rw-r--r-- | Ryujinx.HLE/HOS/Services/Apm/IManager.cs | 17 | ||||
| -rw-r--r-- | Ryujinx.HLE/HOS/Services/Apm/ISession.cs | 19 |
2 files changed, 8 insertions, 28 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Apm/IManager.cs b/Ryujinx.HLE/HOS/Services/Apm/IManager.cs index 02f3661a..46328610 100644 --- a/Ryujinx.HLE/HOS/Services/Apm/IManager.cs +++ b/Ryujinx.HLE/HOS/Services/Apm/IManager.cs @@ -1,24 +1,13 @@ -using Ryujinx.HLE.HOS.Ipc; -using System.Collections.Generic; - namespace Ryujinx.HLE.HOS.Services.Apm { [Service("apm")] [Service("apm:p")] class IManager : IpcService { - private Dictionary<int, ServiceProcessRequest> _commands; - - public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => _commands; - - public IManager(ServiceCtx context) - { - _commands = new Dictionary<int, ServiceProcessRequest> - { - { 0, OpenSession } - }; - } + public IManager(ServiceCtx context) { } + [Command(0)] + // OpenSession() -> object<nn::apm::ISession> public long OpenSession(ServiceCtx context) { MakeObject(context, new ISession()); diff --git a/Ryujinx.HLE/HOS/Services/Apm/ISession.cs b/Ryujinx.HLE/HOS/Services/Apm/ISession.cs index faf557a0..c9defefc 100644 --- a/Ryujinx.HLE/HOS/Services/Apm/ISession.cs +++ b/Ryujinx.HLE/HOS/Services/Apm/ISession.cs @@ -1,24 +1,13 @@ using Ryujinx.Common.Logging; -using Ryujinx.HLE.HOS.Ipc; -using System.Collections.Generic; namespace Ryujinx.HLE.HOS.Services.Apm { class ISession : IpcService { - private Dictionary<int, ServiceProcessRequest> _commands; - - public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => _commands; - - public ISession() - { - _commands = new Dictionary<int, ServiceProcessRequest> - { - { 0, SetPerformanceConfiguration }, - { 1, GetPerformanceConfiguration } - }; - } + public ISession() { } + [Command(0)] + // SetPerformanceConfiguration(nn::apm::PerformanceMode, nn::apm::PerformanceConfiguration) public long SetPerformanceConfiguration(ServiceCtx context) { PerformanceMode perfMode = (PerformanceMode)context.RequestData.ReadInt32(); @@ -27,6 +16,8 @@ namespace Ryujinx.HLE.HOS.Services.Apm return 0; } + [Command(1)] + // GetPerformanceConfiguration(nn::apm::PerformanceMode) -> nn::apm::PerformanceConfiguration public long GetPerformanceConfiguration(ServiceCtx context) { PerformanceMode perfMode = (PerformanceMode)context.RequestData.ReadInt32(); |
