|
@@ -0,0 +1,43 @@
|
|
|
|
|
+using Ryujinx.Common.Logging;
|
|
|
|
|
+using Ryujinx.Common.Memory;
|
|
|
|
|
+using Ryujinx.HLE.HOS.Applets;
|
|
|
|
|
+using Ryujinx.HLE.HOS.Services.Am.AppletAE;
|
|
|
|
|
+using System;
|
|
|
|
|
+using System.IO;
|
|
|
|
|
+using System.Runtime.InteropServices;
|
|
|
|
|
+namespace Ryujinx.HLE.HOS.Applets.Dummy
|
|
|
|
|
+{
|
|
|
|
|
+ internal class DummyApplet : IApplet
|
|
|
|
|
+ {
|
|
|
|
|
+ private readonly Horizon _system;
|
|
|
|
|
+ private AppletSession _normalSession;
|
|
|
|
|
+ public event EventHandler AppletStateChanged;
|
|
|
|
|
+ public DummyApplet(Horizon system)
|
|
|
|
|
+ {
|
|
|
|
|
+ _system = system;
|
|
|
|
|
+ }
|
|
|
|
|
+ public ResultCode Start(AppletSession normalSession, AppletSession interactiveSession)
|
|
|
|
|
+ {
|
|
|
|
|
+ _normalSession = normalSession;
|
|
|
|
|
+ _normalSession.Push(BuildResponse());
|
|
|
|
|
+ AppletStateChanged?.Invoke(this, null);
|
|
|
|
|
+ _system.ReturnFocus();
|
|
|
|
|
+ return ResultCode.Success;
|
|
|
|
|
+ }
|
|
|
|
|
+ private static T ReadStruct<T>(byte[] data) where T : struct
|
|
|
|
|
+ {
|
|
|
|
|
+ return MemoryMarshal.Read<T>(data.AsSpan());
|
|
|
|
|
+ }
|
|
|
|
|
+ private static byte[] BuildResponse()
|
|
|
|
|
+ {
|
|
|
|
|
+ using MemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
|
|
|
|
+ using BinaryWriter writer = new(stream);
|
|
|
|
|
+ writer.Write((ulong)ResultCode.Success);
|
|
|
|
|
+ return stream.ToArray();
|
|
|
|
|
+ }
|
|
|
|
|
+ public ResultCode GetResult()
|
|
|
|
|
+ {
|
|
|
|
|
+ return ResultCode.Success;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|