using Ryujinx.Common.Logging; using Ryujinx.HLE.HOS.Applets.Browser; using Ryujinx.HLE.HOS.Applets.Cabinet; using Ryujinx.HLE.HOS.Applets.Dummy; using Ryujinx.HLE.HOS.Applets.Error; using Ryujinx.HLE.HOS.Services.Am.AppletAE; using System; using System.Collections.Generic; namespace Ryujinx.HLE.HOS.Applets { static class AppletManager { public static IApplet Create(AppletId applet, Horizon system) { switch (applet) { case AppletId.Controller: return new ControllerApplet(system); case AppletId.Error: return new ErrorApplet(system); case AppletId.PlayerSelect: return new PlayerSelectApplet(system); case AppletId.SoftwareKeyboard: return new SoftwareKeyboardApplet(system); case AppletId.LibAppletWeb: return new BrowserApplet(system); case AppletId.LibAppletShop: return new BrowserApplet(system); case AppletId.LibAppletOff: return new BrowserApplet(system); case AppletId.MiiEdit: Logger.Warning?.Print(LogClass.Application, $"Please use the MiiEdit inside File/Open Applet"); return new DummyApplet(system); case AppletId.Cabinet: return new CabinetApplet(system); } Logger.Warning?.Print(LogClass.Application, $"Applet {applet} not implemented!"); return new DummyApplet(system); } } }