2020-05-15 03:56:14 +02:00
|
|
|
|
using Ryujinx.HLE.HOS.Applets.Browser;
|
2020-09-28 00:00:38 +02:00
|
|
|
|
using Ryujinx.HLE.HOS.Applets.Error;
|
2020-05-15 03:56:14 +02:00
|
|
|
|
using Ryujinx.HLE.HOS.Services.Am.AppletAE;
|
2019-11-14 06:18:44 +01:00
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
|
|
|
namespace Ryujinx.HLE.HOS.Applets
|
|
|
|
|
{
|
|
|
|
|
static class AppletManager
|
|
|
|
|
{
|
|
|
|
|
private static Dictionary<AppletId, Type> _appletMapping;
|
|
|
|
|
|
|
|
|
|
static AppletManager()
|
|
|
|
|
{
|
|
|
|
|
_appletMapping = new Dictionary<AppletId, Type>
|
|
|
|
|
{
|
2020-09-28 00:00:38 +02:00
|
|
|
|
{ AppletId.Error, typeof(ErrorApplet) },
|
2019-11-18 12:16:26 +01:00
|
|
|
|
{ AppletId.PlayerSelect, typeof(PlayerSelectApplet) },
|
2020-04-03 02:10:02 +02:00
|
|
|
|
{ AppletId.Controller, typeof(ControllerApplet) },
|
2020-05-15 03:56:14 +02:00
|
|
|
|
{ AppletId.SoftwareKeyboard, typeof(SoftwareKeyboardApplet) },
|
|
|
|
|
{ AppletId.LibAppletWeb, typeof(BrowserApplet) },
|
|
|
|
|
{ AppletId.LibAppletShop, typeof(BrowserApplet) },
|
|
|
|
|
{ AppletId.LibAppletOff, typeof(BrowserApplet) }
|
2019-11-14 06:18:44 +01:00
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static IApplet Create(AppletId applet, Horizon system)
|
|
|
|
|
{
|
|
|
|
|
if (_appletMapping.TryGetValue(applet, out Type appletClass))
|
|
|
|
|
{
|
|
|
|
|
return (IApplet)Activator.CreateInstance(appletClass, system);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
throw new NotImplementedException($"{applet} applet is not implemented.");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|