Implement IApplicationCreator & IApplicationAccessor & IAppletAccessor
This commit is contained in:
parent
39ebb83453
commit
df5284ceb6
4 changed files with 140 additions and 2 deletions
68
Ryujinx.Core/OsHle/Services/Am/IAppletAccessor.cs
Normal file
68
Ryujinx.Core/OsHle/Services/Am/IAppletAccessor.cs
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
using Ryujinx.Core.Logging;
|
||||||
|
using Ryujinx.Core.OsHle.Ipc;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Ryujinx.Core.OsHle.Services.Am
|
||||||
|
{
|
||||||
|
class IAppletAccessor : IpcService
|
||||||
|
{
|
||||||
|
private Dictionary<int, ServiceProcessRequest> m_Commands;
|
||||||
|
|
||||||
|
public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => m_Commands;
|
||||||
|
|
||||||
|
public IAppletAccessor()
|
||||||
|
{
|
||||||
|
m_Commands = new Dictionary<int, ServiceProcessRequest>()
|
||||||
|
{
|
||||||
|
{ 0, GetAppletStateChangedEvent },
|
||||||
|
{ 1, IsCompleted },
|
||||||
|
{ 10, Start },
|
||||||
|
{ 20, RequestExit },
|
||||||
|
{ 25, Terminate },
|
||||||
|
{ 30, GetResult }
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public long GetAppletStateChangedEvent(ServiceCtx Context)
|
||||||
|
{
|
||||||
|
Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed.");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long IsCompleted(ServiceCtx Context)
|
||||||
|
{
|
||||||
|
Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed.");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long Start(ServiceCtx Context)
|
||||||
|
{
|
||||||
|
Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed.");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long RequestExit(ServiceCtx Context)
|
||||||
|
{
|
||||||
|
Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed.");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long Terminate(ServiceCtx Context)
|
||||||
|
{
|
||||||
|
Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed.");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long GetResult(ServiceCtx Context)
|
||||||
|
{
|
||||||
|
Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed.");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
36
Ryujinx.Core/OsHle/Services/Am/IApplicationAccessor.cs
Normal file
36
Ryujinx.Core/OsHle/Services/Am/IApplicationAccessor.cs
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
using Ryujinx.Core.Logging;
|
||||||
|
using Ryujinx.Core.OsHle.Ipc;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Ryujinx.Core.OsHle.Services.Am
|
||||||
|
{
|
||||||
|
class IApplicationAccessor : IpcService
|
||||||
|
{
|
||||||
|
private Dictionary<int, ServiceProcessRequest> m_Commands;
|
||||||
|
|
||||||
|
public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => m_Commands;
|
||||||
|
|
||||||
|
public IApplicationAccessor()
|
||||||
|
{
|
||||||
|
m_Commands = new Dictionary<int, ServiceProcessRequest>()
|
||||||
|
{
|
||||||
|
{ 112, GetCurrentLibraryApplet },
|
||||||
|
{ 121, PushLaunchParameter }
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public long GetCurrentLibraryApplet(ServiceCtx Context)
|
||||||
|
{
|
||||||
|
MakeObject(Context, new IAppletAccessor());
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long PushLaunchParameter(ServiceCtx Context)
|
||||||
|
{
|
||||||
|
Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed.");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -13,8 +13,39 @@ namespace Ryujinx.Core.OsHle.Services.Am
|
||||||
{
|
{
|
||||||
m_Commands = new Dictionary<int, ServiceProcessRequest>()
|
m_Commands = new Dictionary<int, ServiceProcessRequest>()
|
||||||
{
|
{
|
||||||
//...
|
{ 0, CreateApplication },
|
||||||
|
{ 1, PopLaunchRequestedApplication },
|
||||||
|
{ 10, CreateSystemApplication },
|
||||||
|
{ 100, PopFloatingApplicationForDevelopment }
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long CreateApplication(ServiceCtx Context)
|
||||||
|
{
|
||||||
|
MakeObject(Context, new IApplicationAccessor());
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long PopLaunchRequestedApplication(ServiceCtx Context)
|
||||||
|
{
|
||||||
|
MakeObject(Context, new IApplicationAccessor());
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long CreateSystemApplication(ServiceCtx Context)
|
||||||
|
{
|
||||||
|
MakeObject(Context, new IApplicationAccessor());
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long PopFloatingApplicationForDevelopment(ServiceCtx Context)
|
||||||
|
{
|
||||||
|
MakeObject(Context, new IApplicationAccessor());
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -100,6 +100,9 @@ namespace Ryujinx.Core.OsHle.Services.Am
|
||||||
|
|
||||||
public long InitializeGamePlayRecording(ServiceCtx Context)
|
public long InitializeGamePlayRecording(ServiceCtx Context)
|
||||||
{
|
{
|
||||||
|
//TODO: add a TransferMemory Handle
|
||||||
|
long Size = Context.RequestData.ReadInt64();
|
||||||
|
|
||||||
Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed.");
|
Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed.");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in a new issue