mirror of
https://github.com/GreemDev/Ryujinx.git
synced 2024-12-27 03:05:47 +00:00
8406ec6272
* Refactor Ryujinx.Common and HLE Stub Logging * Resolve review comments * Rename missed loop variable * Optimize PrintStub logging function * Pass the call-sites Thread ID through to the logger * Remove superfluous lock from ConsoleLog * Process logged data objects in the logger target Pass the data object all the way to the output logger targets, to allow them to "serialize" this in whatever appropriate format they're logging in. * Use existing StringBuilder to build the properties string * Add a ServiceNotImplemented Exception Useful for printing debug information about unimplemented service calls * Resolve Style Nits * Resolve Merge Issues * Fix typo and align declarations
115 lines
No EOL
3.1 KiB
C#
115 lines
No EOL
3.1 KiB
C#
using Ryujinx.Common.Logging;
|
|
using Ryujinx.HLE.HOS.Ipc;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Ryujinx.HLE.HOS.Services.Mm
|
|
{
|
|
class IRequest : IpcService
|
|
{
|
|
private Dictionary<int, ServiceProcessRequest> _commands;
|
|
|
|
public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => _commands;
|
|
|
|
public IRequest()
|
|
{
|
|
_commands = new Dictionary<int, ServiceProcessRequest>()
|
|
{
|
|
{ 0, InitializeOld },
|
|
{ 1, FinalizeOld },
|
|
{ 2, SetAndWaitOld },
|
|
{ 3, GetOld },
|
|
{ 4, Initialize },
|
|
{ 5, Finalize },
|
|
{ 6, SetAndWait },
|
|
{ 7, Get }
|
|
};
|
|
}
|
|
|
|
// InitializeOld(u32, u32, u32)
|
|
public long InitializeOld(ServiceCtx context)
|
|
{
|
|
int unknown0 = context.RequestData.ReadInt32();
|
|
int unknown1 = context.RequestData.ReadInt32();
|
|
int unknown2 = context.RequestData.ReadInt32();
|
|
|
|
Logger.PrintStub(LogClass.ServiceMm, new { unknown0, unknown1, unknown2 });
|
|
|
|
return 0;
|
|
}
|
|
|
|
// FinalizeOld(u32)
|
|
public long FinalizeOld(ServiceCtx context)
|
|
{
|
|
context.Device.Gpu.UninitializeVideoDecoder();
|
|
|
|
Logger.PrintStub(LogClass.ServiceMm);
|
|
|
|
return 0;
|
|
}
|
|
|
|
// SetAndWaitOld(u32, u32, u32)
|
|
public long SetAndWaitOld(ServiceCtx context)
|
|
{
|
|
int unknown0 = context.RequestData.ReadInt32();
|
|
int unknown1 = context.RequestData.ReadInt32();
|
|
int unknown2 = context.RequestData.ReadInt32();
|
|
|
|
Logger.PrintStub(LogClass.ServiceMm, new { unknown0, unknown1, unknown2 });
|
|
return 0;
|
|
}
|
|
|
|
// GetOld(u32) -> u32
|
|
public long GetOld(ServiceCtx context)
|
|
{
|
|
int unknown0 = context.RequestData.ReadInt32();
|
|
|
|
Logger.PrintStub(LogClass.ServiceMm, new { unknown0 });
|
|
|
|
context.ResponseData.Write(0);
|
|
|
|
return 0;
|
|
}
|
|
|
|
// Initialize()
|
|
public long Initialize(ServiceCtx context)
|
|
{
|
|
Logger.PrintStub(LogClass.ServiceMm);
|
|
|
|
return 0;
|
|
}
|
|
|
|
// Finalize(u32)
|
|
public long Finalize(ServiceCtx context)
|
|
{
|
|
context.Device.Gpu.UninitializeVideoDecoder();
|
|
|
|
Logger.PrintStub(LogClass.ServiceMm);
|
|
|
|
return 0;
|
|
}
|
|
|
|
// SetAndWait(u32, u32, u32)
|
|
public long SetAndWait(ServiceCtx context)
|
|
{
|
|
int unknown0 = context.RequestData.ReadInt32();
|
|
int unknown1 = context.RequestData.ReadInt32();
|
|
int unknown2 = context.RequestData.ReadInt32();
|
|
|
|
Logger.PrintStub(LogClass.ServiceMm, new { unknown0, unknown1, unknown2 });
|
|
|
|
return 0;
|
|
}
|
|
|
|
// Get(u32) -> u32
|
|
public long Get(ServiceCtx context)
|
|
{
|
|
int unknown0 = context.RequestData.ReadInt32();
|
|
|
|
Logger.PrintStub(LogClass.ServiceMm, new { unknown0 });
|
|
|
|
context.ResponseData.Write(0);
|
|
|
|
return 0;
|
|
}
|
|
}
|
|
} |