Apparently, the Ryujinx devs didn't like my ServiceFactory changes. Oh well, maybe next time.

This commit is contained in:
Starlet 2019-05-01 16:37:56 -04:00
commit 1736041252
2 changed files with 32 additions and 1 deletions

View file

@ -48,7 +48,10 @@ namespace Ryujinx.HLE.HOS.Services.Irs
// GetIrsensorSharedMemoryHandle(nn::applet::AppletResourceUserId, pid) -> handle<copy> // GetIrsensorSharedMemoryHandle(nn::applet::AppletResourceUserId, pid) -> handle<copy>
public long GetIrsensorSharedMemoryHandle(ServiceCtx context) public long GetIrsensorSharedMemoryHandle(ServiceCtx context)
{ {
if (context.Process.HandleTable.GenerateHandle(context.Device.System.IirsSharedMem, out int handle) != KernelResult.Success) Horizon system = context.Device.System;
KHandleTable handleTable = context.Process.HandleTable;
if (handleTable.GenerateHandle(system.IirsSharedMem, out int handle) != KernelResult.Success)
{ {
throw new InvalidOperationException("Out of handles!"); throw new InvalidOperationException("Out of handles!");
} }

View file

@ -43,6 +43,8 @@ namespace Ryujinx.HLE.HOS.Services
switch (name) switch (name)
{ {
case "acc:u0": case "acc:u0":
return new IAccountService();
case "acc:u1": case "acc:u1":
return new IAccountService(); return new IAccountService();
@ -50,6 +52,8 @@ namespace Ryujinx.HLE.HOS.Services
return new IAddOnContentManager(); return new IAddOnContentManager();
case "apm": case "apm":
return new IManager();
case "apm:p": case "apm:p":
return new IManager(); return new IManager();
@ -66,8 +70,14 @@ namespace Ryujinx.HLE.HOS.Services
return new IAudioRendererManager(); return new IAudioRendererManager();
case "bcat:a": case "bcat:a":
return new Bcat.IServiceCreator();
case "bcat:m": case "bcat:m":
return new Bcat.IServiceCreator();
case "bcat:u": case "bcat:u":
return new Bcat.IServiceCreator();
case "bcat:s": case "bcat:s":
return new Bcat.IServiceCreator(); return new Bcat.IServiceCreator();
@ -90,6 +100,8 @@ namespace Ryujinx.HLE.HOS.Services
return new IeTicketService(); return new IeTicketService();
case "friend:a": case "friend:a":
return new Friend.IServiceCreator();
case "friend:u": case "friend:u":
return new Friend.IServiceCreator(); return new Friend.IServiceCreator();
@ -127,6 +139,8 @@ namespace Ryujinx.HLE.HOS.Services
return new IApplicationManagerInterface(); return new IApplicationManagerInterface();
case "ns:am2": case "ns:am2":
return new IServiceGetterInterface();
case "ns:ec": case "ns:ec":
return new IServiceGetterInterface(); return new IServiceGetterInterface();
@ -137,12 +151,20 @@ namespace Ryujinx.HLE.HOS.Services
return new IVulnerabilityManagerInterface(); return new IVulnerabilityManagerInterface();
case "nvdrv": case "nvdrv":
return new INvDrvServices(system);
case "nvdrv:a": case "nvdrv:a":
return new INvDrvServices(system); return new INvDrvServices(system);
case "pctl:s": case "pctl:s":
return new IParentalControlServiceFactory();
case "pctl:r": case "pctl:r":
return new IParentalControlServiceFactory();
case "pctl:a": case "pctl:a":
return new IParentalControlServiceFactory();
case "pctl": case "pctl":
return new IParentalControlServiceFactory(); return new IParentalControlServiceFactory();
@ -153,6 +175,8 @@ namespace Ryujinx.HLE.HOS.Services
return new IShellInterface(); return new IShellInterface();
case "prepo:a": case "prepo:a":
return new IPrepoService();
case "prepo:u": case "prepo:u":
return new IPrepoService(); return new IPrepoService();
@ -175,7 +199,11 @@ namespace Ryujinx.HLE.HOS.Services
return new ISslService(); return new ISslService();
case "time:a": case "time:a":
return new Time.IStaticService();
case "time:s": case "time:s":
return new Time.IStaticService();
case "time:u": case "time:u":
return new Time.IStaticService(); return new Time.IStaticService();