So much bullshit
This commit is contained in:
parent
d3e93e587e
commit
0873c86c58
18 changed files with 679 additions and 15 deletions
60
src/Ryujinx.Horizon/Am/Ipc/Controllers/AppletAccessor.cs
Normal file
60
src/Ryujinx.Horizon/Am/Ipc/Controllers/AppletAccessor.cs
Normal file
|
@ -0,0 +1,60 @@
|
|||
using Ryujinx.Common.Logging;
|
||||
using Ryujinx.Horizon.Common;
|
||||
using Ryujinx.Horizon.Sdk.Am.Controllers;
|
||||
using Ryujinx.Horizon.Sdk.Sf;
|
||||
|
||||
namespace Ryujinx.Horizon.Am.Ipc.Controllers
|
||||
{
|
||||
partial class AppletAccessor : IAppletAccessor
|
||||
{
|
||||
[CmifCommand(0)]
|
||||
public Result GetAppletStateChangedEvent(out int arg0)
|
||||
{
|
||||
arg0 = 0;
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(1)]
|
||||
public Result IsCompleted(out bool arg0)
|
||||
{
|
||||
arg0 = false;
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(10)]
|
||||
public Result Start()
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(20)]
|
||||
public Result RequestExit()
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(25)]
|
||||
public Result Terminate()
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(30)]
|
||||
public Result GetResult()
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
}
|
||||
}
|
241
src/Ryujinx.Horizon/Am/Ipc/Controllers/ApplicationAccessor.cs
Normal file
241
src/Ryujinx.Horizon/Am/Ipc/Controllers/ApplicationAccessor.cs
Normal file
|
@ -0,0 +1,241 @@
|
|||
using Ryujinx.Common.Logging;
|
||||
using Ryujinx.Horizon.Common;
|
||||
using Ryujinx.Horizon.Sdk.Account;
|
||||
using Ryujinx.Horizon.Sdk.Am;
|
||||
using Ryujinx.Horizon.Sdk.Am.Controllers;
|
||||
using Ryujinx.Horizon.Sdk.Am.Storage;
|
||||
using Ryujinx.Horizon.Sdk.Sf;
|
||||
using Ryujinx.Horizon.Sdk.Sf.Hipc;
|
||||
using System;
|
||||
using ApplicationId = Ryujinx.Horizon.Sdk.Ncm.ApplicationId;
|
||||
|
||||
|
||||
namespace Ryujinx.Horizon.Am.Ipc.Controllers
|
||||
{
|
||||
partial class ApplicationAccessor : IApplicationAccessor
|
||||
{
|
||||
private readonly ApplicationId _applicationId;
|
||||
|
||||
public ApplicationAccessor(ApplicationId applicationId)
|
||||
{
|
||||
_applicationId = applicationId;
|
||||
}
|
||||
|
||||
[CmifCommand(0)]
|
||||
public Result GetAppletStateChangedEvent([CopyHandle] out int arg0)
|
||||
{
|
||||
arg0 = 0;
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(1)]
|
||||
public Result IsCompleted(out bool arg0)
|
||||
{
|
||||
arg0 = false;
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(10)]
|
||||
public Result Start()
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(20)]
|
||||
public Result RequestExit()
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(25)]
|
||||
public Result Terminate()
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(30)]
|
||||
public Result GetResult()
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(101)]
|
||||
public Result RequestForApplicationToGetForeground()
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(110)]
|
||||
public Result TerminateAllLibraryApplets()
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(111)]
|
||||
public Result AreAnyLibraryAppletsLeft(out bool arg0)
|
||||
{
|
||||
arg0 = false;
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(112)]
|
||||
public Result GetCurrentLibraryApplet(out IAppletAccessor arg0)
|
||||
{
|
||||
arg0 = new AppletAccessor();
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(120)]
|
||||
public Result GetApplicationId(out ApplicationId arg0)
|
||||
{
|
||||
arg0 = _applicationId;
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(121)]
|
||||
public Result PushLaunchParameter(uint arg0, IStorage arg1)
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(122)]
|
||||
public Result GetApplicationControlProperty([Buffer(HipcBufferFlags.Out | HipcBufferFlags.AutoSelect)] Span<byte> arg0)
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(123)]
|
||||
public Result GetApplicationLaunchProperty([Buffer(HipcBufferFlags.Out | HipcBufferFlags.AutoSelect)] Span<byte> arg0)
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(124)]
|
||||
public Result GetApplicationLaunchRequestInfo(out ApplicationLaunchRequestInfo arg0)
|
||||
{
|
||||
arg0 = new ApplicationLaunchRequestInfo();
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(130)]
|
||||
public Result SetUsers(bool arg0, ReadOnlySpan<Uid> arg1)
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(131)]
|
||||
public Result CheckRightsEnvironmentAvailable(out bool arg0)
|
||||
{
|
||||
arg0 = false;
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(132)]
|
||||
public Result GetNsRightsEnvironmentHandle(out ulong arg0)
|
||||
{
|
||||
arg0 = 0;
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(140)]
|
||||
public Result GetDesirableUids(out int arg0, [Buffer(HipcBufferFlags.Out | HipcBufferFlags.AutoSelect)] Span<Uid> arg1)
|
||||
{
|
||||
arg0 = 0;
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(150)]
|
||||
public Result ReportApplicationExitTimeout()
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(160)]
|
||||
public Result SetApplicationAttribute(in ApplicationAttribute arg0)
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(170)]
|
||||
public Result HasSaveDataAccessPermission(out bool arg0, ApplicationId arg1)
|
||||
{
|
||||
arg0 = false;
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(180)]
|
||||
public Result PushToFriendInvitationStorageChannel(IStorage arg0)
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(190)]
|
||||
public Result PushToNotificationStorageChannel(IStorage arg0)
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(200)]
|
||||
public Result RequestApplicationSoftReset()
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(201)]
|
||||
public Result RestartApplicationTimer()
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
}
|
||||
}
|
42
src/Ryujinx.Horizon/Am/Ipc/Controllers/ApplicationCreator.cs
Normal file
42
src/Ryujinx.Horizon/Am/Ipc/Controllers/ApplicationCreator.cs
Normal file
|
@ -0,0 +1,42 @@
|
|||
using Ryujinx.Common.Logging;
|
||||
using Ryujinx.Horizon.Common;
|
||||
using Ryujinx.Horizon.Sdk.Am.Controllers;
|
||||
using Ryujinx.Horizon.Sdk.Sf;
|
||||
using System;
|
||||
using ApplicationId = Ryujinx.Horizon.Sdk.Ncm.ApplicationId;
|
||||
|
||||
namespace Ryujinx.Horizon.Am.Ipc.Controllers
|
||||
{
|
||||
partial class ApplicationCreator : IApplicationCreator
|
||||
{
|
||||
[CmifCommand(0)]
|
||||
public Result CreateApplication(out IApplicationAccessor accessor, ApplicationId applicationId)
|
||||
{
|
||||
accessor = new ApplicationAccessor(applicationId);
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(1)]
|
||||
public Result PopLaunchRequestedApplication(out IApplicationAccessor accessor)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
[CmifCommand(10)]
|
||||
public Result CreateSystemApplication(out IApplicationAccessor accessor, ApplicationId applicationId)
|
||||
{
|
||||
accessor = new ApplicationAccessor(applicationId);
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(100)]
|
||||
public Result PopFloatingApplicationForDevelopment(out IApplicationAccessor accessor)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
143
src/Ryujinx.Horizon/Am/Ipc/Controllers/HomeMenuFunctions.cs
Normal file
143
src/Ryujinx.Horizon/Am/Ipc/Controllers/HomeMenuFunctions.cs
Normal file
|
@ -0,0 +1,143 @@
|
|||
using Ryujinx.Common.Logging;
|
||||
using Ryujinx.Horizon.Am.Ipc.Storage;
|
||||
using Ryujinx.Horizon.Common;
|
||||
using Ryujinx.Horizon.Sdk.Account;
|
||||
using Ryujinx.Horizon.Sdk.Am.Controllers;
|
||||
using Ryujinx.Horizon.Sdk.Am.Storage;
|
||||
using Ryujinx.Horizon.Sdk.Sf;
|
||||
using Ryujinx.Horizon.Sdk.Sf.Hipc;
|
||||
using System;
|
||||
using ApplicationId = Ryujinx.Horizon.Sdk.Ncm.ApplicationId;
|
||||
|
||||
namespace Ryujinx.Horizon.Am.Ipc.Controllers
|
||||
{
|
||||
partial class HomeMenuFunctions : IHomeMenuFunctions
|
||||
{
|
||||
[CmifCommand(10)]
|
||||
public Result RequestToGetForeground()
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(11)]
|
||||
public Result LockForeground()
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(12)]
|
||||
public Result UnlockForeground()
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(20)]
|
||||
public Result PopFromGeneralChannel(out IStorage arg0)
|
||||
{
|
||||
arg0 = new Storage.Storage([]);
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(21)]
|
||||
public Result GetPopFromGeneralChannelEvent([CopyHandle] out int arg0)
|
||||
{
|
||||
arg0 = 0;
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(30)]
|
||||
public Result GetHomeButtonWriterLockAccessor(out ILockAccessor arg0)
|
||||
{
|
||||
arg0 = new LockAccessor();
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(31)]
|
||||
public Result GetWriterLockAccessorEx(out ILockAccessor arg0, int arg1)
|
||||
{
|
||||
arg0 = new LockAccessor();
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(40)]
|
||||
public Result IsSleepEnabled(out bool arg0)
|
||||
{
|
||||
arg0 = false;
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(41)]
|
||||
public Result IsRebootEnabled(out bool arg0)
|
||||
{
|
||||
arg0 = false;
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(50)]
|
||||
public Result LaunchSystemApplet()
|
||||
{
|
||||
// Wraps ns LaunchSystemApplet
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(51)]
|
||||
public Result LaunchStarter()
|
||||
{
|
||||
// Wraps ns LaunchLibraryApplet with a ProgramId from global state.
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(100)]
|
||||
public Result PopRequestLaunchApplicationForDebug(out ApplicationId arg0, out int arg1, [Buffer(HipcBufferFlags.Out | HipcBufferFlags.MapAlias)] Span<Uid> arg2)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
[CmifCommand(110)]
|
||||
public Result IsForceTerminateApplicationDisabledForDebug(out bool arg0)
|
||||
{
|
||||
arg0 = false;
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(200)]
|
||||
public Result LaunchDevMenu()
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(1000)]
|
||||
public Result SetLastApplicationExitReason(int arg0)
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -81,9 +81,11 @@ namespace Ryujinx.Horizon.Am.Ipc.Proxies
|
|||
}
|
||||
|
||||
[CmifCommand(22)]
|
||||
public Result GetHomeMenuFunctions()
|
||||
public Result GetHomeMenuFunctions(out IHomeMenuFunctions homeMenuFunctions)
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
homeMenuFunctions = new HomeMenuFunctions();
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(23)]
|
||||
|
|
|
@ -81,9 +81,11 @@ namespace Ryujinx.Horizon.Am.Ipc.Proxies
|
|||
}
|
||||
|
||||
[CmifCommand(23)]
|
||||
public Result GetGlobalStateController()
|
||||
public Result GetGlobalStateController(out IGlobalStateController globalStateController)
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
globalStateController = new GlobalStateController();
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(1000)]
|
||||
|
|
|
@ -65,21 +65,27 @@ namespace Ryujinx.Horizon.Am.Ipc.Proxies
|
|||
}
|
||||
|
||||
[CmifCommand(20)]
|
||||
public Result GetHomeMenuFunctions()
|
||||
public Result GetHomeMenuFunctions(out IHomeMenuFunctions homeMenuFunctions)
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
homeMenuFunctions = new HomeMenuFunctions();
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(21)]
|
||||
public Result GetGlobalStateController()
|
||||
public Result GetGlobalStateController(out IGlobalStateController globalStateController)
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
globalStateController = new GlobalStateController();
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(22)]
|
||||
public Result GetApplicationCreator()
|
||||
public Result GetApplicationCreator(out IApplicationCreator applicationCreator)
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
applicationCreator = new ApplicationCreator();
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(23)]
|
||||
|
|
46
src/Ryujinx.Horizon/Am/Ipc/Storage/LockAccessor.cs
Normal file
46
src/Ryujinx.Horizon/Am/Ipc/Storage/LockAccessor.cs
Normal file
|
@ -0,0 +1,46 @@
|
|||
using Ryujinx.Common.Logging;
|
||||
using Ryujinx.Horizon.Common;
|
||||
using Ryujinx.Horizon.Sdk.Am.Storage;
|
||||
using Ryujinx.Horizon.Sdk.Sf;
|
||||
|
||||
namespace Ryujinx.Horizon.Am.Ipc.Storage
|
||||
{
|
||||
partial class LockAccessor : ILockAccessor
|
||||
{
|
||||
[CmifCommand(1)]
|
||||
public Result TryLock(out bool arg0, out int handle, bool arg2)
|
||||
{
|
||||
arg0 = false;
|
||||
handle = 0;
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(2)]
|
||||
public Result Unlock()
|
||||
{
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(3)]
|
||||
public Result GetEvent(out int handle)
|
||||
{
|
||||
handle = 0;
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
|
||||
[CmifCommand(4)]
|
||||
public Result IsLocked(out bool arg0)
|
||||
{
|
||||
arg0 = false;
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
}
|
||||
}
|
10
src/Ryujinx.Horizon/Sdk/Am/ApplicationAttribute.cs
Normal file
10
src/Ryujinx.Horizon/Sdk/Am/ApplicationAttribute.cs
Normal file
|
@ -0,0 +1,10 @@
|
|||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Ryujinx.Horizon.Sdk.Am
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential, Size = 0x20)]
|
||||
struct ApplicationAttribute
|
||||
{
|
||||
|
||||
}
|
||||
}
|
10
src/Ryujinx.Horizon/Sdk/Am/ApplicationLaunchRequestInfo.cs
Normal file
10
src/Ryujinx.Horizon/Sdk/Am/ApplicationLaunchRequestInfo.cs
Normal file
|
@ -0,0 +1,10 @@
|
|||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Ryujinx.Horizon.Sdk.Am
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential, Size = 0x10)]
|
||||
struct ApplicationLaunchRequestInfo
|
||||
{
|
||||
|
||||
}
|
||||
}
|
15
src/Ryujinx.Horizon/Sdk/Am/Controllers/IAppletAccessor.cs
Normal file
15
src/Ryujinx.Horizon/Sdk/Am/Controllers/IAppletAccessor.cs
Normal file
|
@ -0,0 +1,15 @@
|
|||
using Ryujinx.Horizon.Common;
|
||||
using Ryujinx.Horizon.Sdk.Sf;
|
||||
|
||||
namespace Ryujinx.Horizon.Sdk.Am.Controllers
|
||||
{
|
||||
interface IAppletAccessor : IServiceObject
|
||||
{
|
||||
Result GetAppletStateChangedEvent(out int arg0);
|
||||
Result IsCompleted(out bool arg0);
|
||||
Result Start();
|
||||
Result RequestExit();
|
||||
Result Terminate();
|
||||
Result GetResult();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
using Ryujinx.Horizon.Common;
|
||||
using Ryujinx.Horizon.Sdk.Account;
|
||||
using Ryujinx.Horizon.Sdk.Am.Storage;
|
||||
using ApplicationId = Ryujinx.Horizon.Sdk.Ncm.ApplicationId;
|
||||
using System;
|
||||
|
||||
namespace Ryujinx.Horizon.Sdk.Am.Controllers
|
||||
{
|
||||
interface IApplicationAccessor : IAppletAccessor
|
||||
{
|
||||
Result RequestForApplicationToGetForeground();
|
||||
Result TerminateAllLibraryApplets();
|
||||
Result AreAnyLibraryAppletsLeft(out bool arg0);
|
||||
Result GetCurrentLibraryApplet(out IAppletAccessor arg0);
|
||||
Result GetApplicationId(out ApplicationId arg0);
|
||||
Result PushLaunchParameter(uint arg0, IStorage arg1);
|
||||
Result GetApplicationControlProperty(Span<byte> arg0);
|
||||
Result GetApplicationLaunchProperty(Span<byte> arg0);
|
||||
Result GetApplicationLaunchRequestInfo(out ApplicationLaunchRequestInfo arg0);
|
||||
Result SetUsers(bool arg0, ReadOnlySpan<Uid> arg1);
|
||||
Result CheckRightsEnvironmentAvailable(out bool arg0);
|
||||
Result GetNsRightsEnvironmentHandle(out ulong arg0);
|
||||
Result GetDesirableUids(out int arg0, Span<Uid> arg1);
|
||||
Result ReportApplicationExitTimeout();
|
||||
Result SetApplicationAttribute(in ApplicationAttribute arg0);
|
||||
Result HasSaveDataAccessPermission(out bool arg0, ApplicationId arg1);
|
||||
Result PushToFriendInvitationStorageChannel(IStorage arg0);
|
||||
Result PushToNotificationStorageChannel(IStorage arg0);
|
||||
Result RequestApplicationSoftReset();
|
||||
Result RestartApplicationTimer();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
using Ryujinx.Horizon.Common;
|
||||
using Ryujinx.Horizon.Sdk.Ncm;
|
||||
using Ryujinx.Horizon.Sdk.Sf;
|
||||
|
||||
namespace Ryujinx.Horizon.Sdk.Am.Controllers
|
||||
{
|
||||
interface IApplicationCreator : IServiceObject
|
||||
{
|
||||
Result CreateApplication(out IApplicationAccessor accessor, ApplicationId applicationId);
|
||||
Result PopLaunchRequestedApplication(out IApplicationAccessor accessor);
|
||||
Result CreateSystemApplication(out IApplicationAccessor accessor, ApplicationId applicationId);
|
||||
Result PopFloatingApplicationForDevelopment(out IApplicationAccessor accessor);
|
||||
}
|
||||
}
|
28
src/Ryujinx.Horizon/Sdk/Am/Controllers/IHomeMenuFunctions.cs
Normal file
28
src/Ryujinx.Horizon/Sdk/Am/Controllers/IHomeMenuFunctions.cs
Normal file
|
@ -0,0 +1,28 @@
|
|||
using Ryujinx.Horizon.Common;
|
||||
using Ryujinx.Horizon.Sdk.Account;
|
||||
using Ryujinx.Horizon.Sdk.Am.Storage;
|
||||
using Ryujinx.Horizon.Sdk.Sf;
|
||||
using System;
|
||||
using ApplicationId = Ryujinx.Horizon.Sdk.Ncm.ApplicationId;
|
||||
|
||||
namespace Ryujinx.Horizon.Sdk.Am.Controllers
|
||||
{
|
||||
interface IHomeMenuFunctions : IServiceObject
|
||||
{
|
||||
Result RequestToGetForeground();
|
||||
Result LockForeground();
|
||||
Result UnlockForeground();
|
||||
Result PopFromGeneralChannel(out IStorage arg0);
|
||||
Result GetPopFromGeneralChannelEvent(out int arg0);
|
||||
Result GetHomeButtonWriterLockAccessor(out ILockAccessor arg0);
|
||||
Result GetWriterLockAccessorEx(out ILockAccessor arg0, int arg1);
|
||||
Result IsSleepEnabled(out bool arg0);
|
||||
Result IsRebootEnabled(out bool arg0);
|
||||
Result LaunchSystemApplet();
|
||||
Result LaunchStarter();
|
||||
Result PopRequestLaunchApplicationForDebug(out ApplicationId arg0, out int arg1, Span<Uid> arg2);
|
||||
Result IsForceTerminateApplicationDisabledForDebug(out bool arg0);
|
||||
Result LaunchDevMenu();
|
||||
Result SetLastApplicationExitReason(int arg0);
|
||||
}
|
||||
}
|
|
@ -15,7 +15,7 @@ namespace Ryujinx.Horizon.Sdk.Am.Proxies
|
|||
Result GetLibraryAppletCreator(out ILibraryAppletCreator libraryAppletCreator);
|
||||
Result OpenLibraryAppletSelfAccessor(out ILibraryAppletSelfAccessor libraryAppletSelfAccessor);
|
||||
Result GetAppletCommonFunctions(out IAppletCommonFunctions appletCommonFunctions);
|
||||
Result GetHomeMenuFunctions();
|
||||
Result GetHomeMenuFunctions(out IHomeMenuFunctions homeMenuFunctions);
|
||||
Result GetGlobalStateController(out IGlobalStateController globalStateController);
|
||||
Result GetDebugFunctions(out IDebugFunctions debugFunctions);
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ namespace Ryujinx.Horizon.Sdk.Am.Proxies
|
|||
Result GetLibraryAppletCreator(out ILibraryAppletCreator libraryAppletCreator);
|
||||
Result GetOverlayFunctions(out IOverlayFunctions overlayFunctions);
|
||||
Result GetAppletCommonFunctions(out IAppletCommonFunctions appletCommonFunctions);
|
||||
Result GetGlobalStateController();
|
||||
Result GetGlobalStateController(out IGlobalStateController globalStateController);
|
||||
Result GetDebugFunctions(out IDebugFunctions debugFunctions);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,9 +13,9 @@ namespace Ryujinx.Horizon.Sdk.Am.Proxies
|
|||
Result GetDisplayController(out IDisplayController displayController);
|
||||
Result GetProcessWindingController(out IProcessWindingController processWindingController);
|
||||
Result GetLibraryAppletCreator(out ILibraryAppletCreator libraryAppletCreator);
|
||||
Result GetHomeMenuFunctions();
|
||||
Result GetGlobalStateController();
|
||||
Result GetApplicationCreator();
|
||||
Result GetHomeMenuFunctions(out IHomeMenuFunctions homeMenuFunctions);
|
||||
Result GetGlobalStateController(out IGlobalStateController globalStateController);
|
||||
Result GetApplicationCreator(out IApplicationCreator applicationCreator);
|
||||
Result GetAppletCommonFunctions(out IAppletCommonFunctions commonFunctions);
|
||||
Result GetDebugFunctions(out IDebugFunctions debugFunctions);
|
||||
}
|
||||
|
|
13
src/Ryujinx.Horizon/Sdk/Am/Storage/ILockAccessor.cs
Normal file
13
src/Ryujinx.Horizon/Sdk/Am/Storage/ILockAccessor.cs
Normal file
|
@ -0,0 +1,13 @@
|
|||
using Ryujinx.Horizon.Common;
|
||||
using Ryujinx.Horizon.Sdk.Sf;
|
||||
|
||||
namespace Ryujinx.Horizon.Sdk.Am.Storage
|
||||
{
|
||||
interface ILockAccessor : IServiceObject
|
||||
{
|
||||
Result TryLock(out bool arg0, out int handle, bool arg2);
|
||||
Result Unlock();
|
||||
Result GetEvent(out int handle);
|
||||
Result IsLocked(out bool arg0);
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue