| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- using Ryujinx.Common.Logging;
- using Ryujinx.HLE.HOS.Services.Acc;
- using Ryujinx.HLE.HOS.Services.Am;
- using Ryujinx.HLE.HOS.Services.Apm;
- using Ryujinx.HLE.HOS.Services.Aud;
- using Ryujinx.HLE.HOS.Services.Bsd;
- using Ryujinx.HLE.HOS.Services.Caps;
- using Ryujinx.HLE.HOS.Services.Es;
- using Ryujinx.HLE.HOS.Services.FspSrv;
- using Ryujinx.HLE.HOS.Services.Hid;
- using Ryujinx.HLE.HOS.Services.Irs;
- using Ryujinx.HLE.HOS.Services.Ldr;
- using Ryujinx.HLE.HOS.Services.Lm;
- using Ryujinx.HLE.HOS.Services.Mm;
- using Ryujinx.HLE.HOS.Services.Ncm;
- using Ryujinx.HLE.HOS.Services.Nfp;
- using Ryujinx.HLE.HOS.Services.Ns;
- using Ryujinx.HLE.HOS.Services.Nv;
- using Ryujinx.HLE.HOS.Services.Pctl;
- using Ryujinx.HLE.HOS.Services.Pl;
- using Ryujinx.HLE.HOS.Services.Pm;
- using Ryujinx.HLE.HOS.Services.Prepo;
- using Ryujinx.HLE.HOS.Services.Psm;
- using Ryujinx.HLE.HOS.Services.Set;
- using Ryujinx.HLE.HOS.Services.Sfdnsres;
- using Ryujinx.HLE.HOS.Services.Sm;
- using Ryujinx.HLE.HOS.Services.Spl;
- using Ryujinx.HLE.HOS.Services.Ssl;
- using Ryujinx.HLE.HOS.Services.Vi;
- using System;
- namespace Ryujinx.HLE.HOS.Services
- {
- public static class ServiceConfiguration
- {
- public static bool IgnoreMissingServices { get; set; }
- }
- static class ServiceFactory
- {
- public static IpcService MakeService(Horizon system, string name)
- {
- switch (name)
- {
- case "acc:u0":
- return new IAccountService();
- case "acc:u1":
- return new IAccountService();
- case "aoc:u":
- return new IAddOnContentManager();
- case "apm":
- return new IManager();
- case "apm:p":
- return new IManager();
- case "appletAE":
- return new IAllSystemAppletProxiesService();
- case "appletOE":
- return new IApplicationProxyService();
- case "audout:u":
- return new IAudioOutManager();
- case "audren:u":
- return new IAudioRendererManager();
- case "bcat:a":
- return new Bcat.IServiceCreator();
- case "bcat:m":
- return new Bcat.IServiceCreator();
- case "bcat:u":
- return new Bcat.IServiceCreator();
- case "bcat:s":
- return new Bcat.IServiceCreator();
- case "bsd:s":
- return new IClient(true);
- case "bsd:u":
- return new IClient(false);
- case "caps:a":
- return new IAlbumAccessorService();
- case "caps:ss":
- return new IScreenshotService();
- case "csrng":
- return new IRandomInterface();
- case "es":
- return new IeTicketService();
- case "friend:a":
- return new Friend.IServiceCreator();
- case "friend:u":
- return new Friend.IServiceCreator();
- case "fsp-srv":
- return new IFileSystemProxy();
- case "hid":
- return new IHidServer(system);
- case "irs":
- return new IIrSensorServer(system.IirsSharedMem);
- case "ldr:ro":
- return new IRoInterface();
- case "hwopus":
- return new IHardwareOpusDecoderManager();
- case "lm":
- return new ILogService();
- case "mm:u":
- return new IRequest();
- case "ncm":
- return new IContentManager();
- case "nfp:user":
- return new IUserManager();
- case "nifm:u":
- return new Nifm.IStaticService();
- case "ns:am":
- return new IApplicationManagerInterface();
- case "ns:am2":
- case "ns:ec":
- return new IServiceGetterInterface();
- case "ns:su":
- return new ISystemUpdateInterface();
- case "ns:vm":
- return new IVulnerabilityManagerInterface();
- case "nvdrv":
- return new INvDrvServices(system);
- case "nvdrv:a":
- return new INvDrvServices(system);
- case "pctl:s":
- return new IParentalControlServiceFactory();
- case "pctl:r":
- return new IParentalControlServiceFactory();
- case "pctl:a":
- return new IParentalControlServiceFactory();
- case "pctl":
- return new IParentalControlServiceFactory();
- case "pl:u":
- return new ISharedFontManager();
- case "pm:shell":
- return new IShellInterface();
- case "prepo:a":
- return new IPrepoService();
- case "prepo:u":
- return new IPrepoService();
- case "psm":
- return new IPsmServer();
- case "set":
- return new ISettingsServer();
- case "set:sys":
- return new ISystemSettingsServer();
- case "sfdnsres":
- return new IResolver();
- case "sm:":
- return new IUserInterface();
- case "ssl":
- return new ISslService();
- case "time:a":
- return new Time.IStaticService();
- case "time:s":
- return new Time.IStaticService();
- case "time:u":
- return new Time.IStaticService();
- case "vi:m":
- return new IManagerRootService();
- case "vi:s":
- return new ISystemRootService();
- case "vi:u":
- return new IApplicationRootService();
- }
- if (ServiceConfiguration.IgnoreMissingServices)
- {
- Logger.PrintWarning(LogClass.Service, $"Missing service {name} ignored");
- return new DummyService(name);
- }
- throw new NotImplementedException(name);
- }
- }
- }
|