AppletManager.cs 901 B

123456789101112131415161718192021222324252627282930
  1. using Ryujinx.HLE.HOS.Services.Am.AppletAE;
  2. using System;
  3. using System.Collections.Generic;
  4. namespace Ryujinx.HLE.HOS.Applets
  5. {
  6. static class AppletManager
  7. {
  8. private static Dictionary<AppletId, Type> _appletMapping;
  9. static AppletManager()
  10. {
  11. _appletMapping = new Dictionary<AppletId, Type>
  12. {
  13. { AppletId.PlayerSelect, typeof(PlayerSelectApplet) },
  14. { AppletId.SoftwareKeyboard, typeof(SoftwareKeyboardApplet) }
  15. };
  16. }
  17. public static IApplet Create(AppletId applet, Horizon system)
  18. {
  19. if (_appletMapping.TryGetValue(applet, out Type appletClass))
  20. {
  21. return (IApplet)Activator.CreateInstance(appletClass, system);
  22. }
  23. throw new NotImplementedException($"{applet} applet is not implemented.");
  24. }
  25. }
  26. }