mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2026-03-11 17:45:43 +00:00
HLE: Implement 10106 and 10107 in IPrepoService (ryubing/ryujinx!254)
Some checks failed
Canary CI / Release for linux-arm64 (push) Has been cancelled
Canary CI / Release for linux-x64 (push) Has been cancelled
Canary CI / Release for win-x64 (push) Has been cancelled
Canary CI / Release MacOS universal (push) Has been cancelled
Canary CI / Create GitLab Release (push) Has been cancelled
Some checks failed
Canary CI / Release for linux-arm64 (push) Has been cancelled
Canary CI / Release for linux-x64 (push) Has been cancelled
Canary CI / Release for win-x64 (push) Has been cancelled
Canary CI / Release MacOS universal (push) Has been cancelled
Canary CI / Create GitLab Release (push) Has been cancelled
See merge request ryubing/ryujinx!254
This commit is contained in:
parent
a4a0fcd4da
commit
a16a072155
2 changed files with 32 additions and 4 deletions
|
|
@ -33,7 +33,20 @@ namespace Ryujinx.Horizon.Prepo.Ipc
|
||||||
[CmifCommand(10100)] // 1.0.0-5.1.0
|
[CmifCommand(10100)] // 1.0.0-5.1.0
|
||||||
[CmifCommand(10102)] // 6.0.0-9.2.0
|
[CmifCommand(10102)] // 6.0.0-9.2.0
|
||||||
[CmifCommand(10104)] // 10.0.0+
|
[CmifCommand(10104)] // 10.0.0+
|
||||||
public Result SaveReport([Buffer(HipcBufferFlags.In | HipcBufferFlags.Pointer)] ReadOnlySpan<byte> gameRoomBuffer, [Buffer(HipcBufferFlags.In | HipcBufferFlags.MapAlias)] ReadOnlySpan<byte> reportBuffer, [ClientProcessId] ulong pid)
|
public Result SaveReportOld([Buffer(HipcBufferFlags.In | HipcBufferFlags.Pointer)] ReadOnlySpan<byte> gameRoomBuffer, [Buffer(HipcBufferFlags.In | HipcBufferFlags.MapAlias)] ReadOnlySpan<byte> reportBuffer, [ClientProcessId] ulong pid)
|
||||||
|
{
|
||||||
|
if ((_permissionLevel & PrepoServicePermissionLevel.User) == 0)
|
||||||
|
{
|
||||||
|
return PrepoResult.PermissionDenied;
|
||||||
|
}
|
||||||
|
|
||||||
|
ProcessPlayReport(PlayReportKind.Normal, gameRoomBuffer, reportBuffer, pid, Uid.Null);
|
||||||
|
|
||||||
|
return Result.Success;
|
||||||
|
}
|
||||||
|
|
||||||
|
[CmifCommand(10106)] // 21.0.0+
|
||||||
|
public Result SaveReport([Buffer(HipcBufferFlags.In | HipcBufferFlags.Pointer)] ReadOnlySpan<byte> gameRoomBuffer, [Buffer(HipcBufferFlags.In | HipcBufferFlags.MapAlias)] ReadOnlySpan<byte> reportBuffer, [ClientProcessId] ulong pid, bool optInCheckEnabled)
|
||||||
{
|
{
|
||||||
if ((_permissionLevel & PrepoServicePermissionLevel.User) == 0)
|
if ((_permissionLevel & PrepoServicePermissionLevel.User) == 0)
|
||||||
{
|
{
|
||||||
|
|
@ -48,7 +61,20 @@ namespace Ryujinx.Horizon.Prepo.Ipc
|
||||||
[CmifCommand(10101)] // 1.0.0-5.1.0
|
[CmifCommand(10101)] // 1.0.0-5.1.0
|
||||||
[CmifCommand(10103)] // 6.0.0-9.2.0
|
[CmifCommand(10103)] // 6.0.0-9.2.0
|
||||||
[CmifCommand(10105)] // 10.0.0+
|
[CmifCommand(10105)] // 10.0.0+
|
||||||
public Result SaveReportWithUser(Uid userId, [Buffer(HipcBufferFlags.In | HipcBufferFlags.Pointer)] ReadOnlySpan<byte> gameRoomBuffer, [Buffer(HipcBufferFlags.In | HipcBufferFlags.MapAlias)] ReadOnlySpan<byte> reportBuffer, [ClientProcessId] ulong pid)
|
public Result SaveReportWithUserOld(Uid userId, [Buffer(HipcBufferFlags.In | HipcBufferFlags.Pointer)] ReadOnlySpan<byte> gameRoomBuffer, [Buffer(HipcBufferFlags.In | HipcBufferFlags.MapAlias)] ReadOnlySpan<byte> reportBuffer, [ClientProcessId] ulong pid)
|
||||||
|
{
|
||||||
|
if ((_permissionLevel & PrepoServicePermissionLevel.User) == 0)
|
||||||
|
{
|
||||||
|
return PrepoResult.PermissionDenied;
|
||||||
|
}
|
||||||
|
|
||||||
|
ProcessPlayReport(PlayReportKind.Normal, gameRoomBuffer, reportBuffer, pid, userId, true);
|
||||||
|
|
||||||
|
return Result.Success;
|
||||||
|
}
|
||||||
|
|
||||||
|
[CmifCommand(10107)] // 21.0.0+
|
||||||
|
public Result SaveReportWithUser(Uid userId, [Buffer(HipcBufferFlags.In | HipcBufferFlags.Pointer)] ReadOnlySpan<byte> gameRoomBuffer, [Buffer(HipcBufferFlags.In | HipcBufferFlags.MapAlias)] ReadOnlySpan<byte> reportBuffer, [ClientProcessId] ulong pid, bool optInCheckEnabled)
|
||||||
{
|
{
|
||||||
if ((_permissionLevel & PrepoServicePermissionLevel.User) == 0)
|
if ((_permissionLevel & PrepoServicePermissionLevel.User) == 0)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,10 @@ namespace Ryujinx.Horizon.Sdk.Prepo
|
||||||
{
|
{
|
||||||
interface IPrepoService : IServiceObject
|
interface IPrepoService : IServiceObject
|
||||||
{
|
{
|
||||||
Result SaveReport(ReadOnlySpan<byte> gameRoomBuffer, ReadOnlySpan<byte> reportBuffer, ulong pid);
|
Result SaveReportOld(ReadOnlySpan<byte> gameRoomBuffer, ReadOnlySpan<byte> reportBuffer, ulong pid);
|
||||||
Result SaveReportWithUser(Uid userId, ReadOnlySpan<byte> gameRoomBuffer, ReadOnlySpan<byte> reportBuffer, ulong pid);
|
Result SaveReport(ReadOnlySpan<byte> gameRoomBuffer, ReadOnlySpan<byte> reportBuffer, ulong pid, bool optInCheckEnabled);
|
||||||
|
Result SaveReportWithUserOld(Uid userId, ReadOnlySpan<byte> gameRoomBuffer, ReadOnlySpan<byte> reportBuffer, ulong pid);
|
||||||
|
Result SaveReportWithUser(Uid userId, ReadOnlySpan<byte> gameRoomBuffer, ReadOnlySpan<byte> reportBuffer, ulong pid, bool optInCheckEnabled);
|
||||||
Result RequestImmediateTransmission();
|
Result RequestImmediateTransmission();
|
||||||
Result GetTransmissionStatus(out int status);
|
Result GetTransmissionStatus(out int status);
|
||||||
Result GetSystemSessionId(out ulong systemSessionId);
|
Result GetSystemSessionId(out ulong systemSessionId);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue