aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Services/Vi/ISystemDisplayService.cs
diff options
context:
space:
mode:
authorAc_K <Acoustik666@gmail.com>2019-07-12 03:13:43 +0200
committergdkchan <gab.dark.100@gmail.com>2019-07-11 22:13:43 -0300
commit560ccbeb2d55a4426ad2827bf7534d4a695431c2 (patch)
tree7e224acbd6c023ea56ff80c6207aa0966aa06ee5 /Ryujinx.HLE/HOS/Services/Vi/ISystemDisplayService.cs
parentf723f6f39aaf7b1cebc0224a055058d62e3b689c (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/Vi/ISystemDisplayService.cs')
-rw-r--r--Ryujinx.HLE/HOS/Services/Vi/ISystemDisplayService.cs29
1 files changed, 17 insertions, 12 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Vi/ISystemDisplayService.cs b/Ryujinx.HLE/HOS/Services/Vi/ISystemDisplayService.cs
index 076618d7..28702d6f 100644
--- a/Ryujinx.HLE/HOS/Services/Vi/ISystemDisplayService.cs
+++ b/Ryujinx.HLE/HOS/Services/Vi/ISystemDisplayService.cs
@@ -1,26 +1,18 @@
using Ryujinx.Common.Logging;
-using Ryujinx.HLE.HOS.Ipc;
-using System.Collections.Generic;
namespace Ryujinx.HLE.HOS.Services.Vi
{
class ISystemDisplayService : IpcService
{
- private Dictionary<int, ServiceProcessRequest> _commands;
-
- public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => _commands;
+ private static IApplicationDisplayService _applicationDisplayService;
public ISystemDisplayService(IApplicationDisplayService applicationDisplayService)
{
- _commands = new Dictionary<int, ServiceProcessRequest>
- {
- { 2205, SetLayerZ },
- { 2207, SetLayerVisibility },
- { 2312, applicationDisplayService.CreateStrayLayer },
- { 3200, GetDisplayMode }
- };
+ _applicationDisplayService = applicationDisplayService;
}
+ [Command(2205)]
+ // SetLayerZ(u64, u64)
public static long SetLayerZ(ServiceCtx context)
{
Logger.PrintStub(LogClass.ServiceVi);
@@ -28,6 +20,8 @@ namespace Ryujinx.HLE.HOS.Services.Vi
return 0;
}
+ [Command(2207)]
+ // SetLayerVisibility(b8, u64)
public static long SetLayerVisibility(ServiceCtx context)
{
Logger.PrintStub(LogClass.ServiceVi);
@@ -35,6 +29,17 @@ namespace Ryujinx.HLE.HOS.Services.Vi
return 0;
}
+ [Command(2312)] // 1.0.0-6.2.0
+ // CreateStrayLayer(u32, u64) -> (u64, u64, buffer<bytes, 6>)
+ public static long CreateStrayLayer(ServiceCtx context)
+ {
+ Logger.PrintStub(LogClass.ServiceVi);
+
+ return _applicationDisplayService.CreateStrayLayer(context);
+ }
+
+ [Command(3200)]
+ // GetDisplayMode(u64) -> nn::vi::DisplayModeInfo
public static long GetDisplayMode(ServiceCtx context)
{
// TODO: De-hardcode resolution.