Updates to nifm, irs and nvdrv services (#679)

This commit is contained in:
HorrorTroll 2019-04-25 20:03:00 +07:00 committed by jduncanator
parent 26be1cb4e2
commit 6e8c080968
3 changed files with 50 additions and 12 deletions

View file

@ -17,6 +17,7 @@ namespace Ryujinx.HLE.HOS.Services.Friend
_commands = new Dictionary<int, ServiceProcessRequest> _commands = new Dictionary<int, ServiceProcessRequest>
{ {
{ 10101, GetFriendList }, { 10101, GetFriendList },
{ 10600, DeclareOpenOnlinePlaySession },
{ 10601, DeclareCloseOnlinePlaySession }, { 10601, DeclareCloseOnlinePlaySession },
{ 10610, UpdateUserPresence } { 10610, UpdateUserPresence }
}; };
@ -61,6 +62,23 @@ namespace Ryujinx.HLE.HOS.Services.Friend
return 0; return 0;
} }
// DeclareOpenOnlinePlaySession(nn::account::Uid)
public long DeclareOpenOnlinePlaySession(ServiceCtx context)
{
UInt128 uuid = new UInt128(
context.RequestData.ReadInt64(),
context.RequestData.ReadInt64());
if (context.Device.System.State.TryGetUser(uuid, out UserProfile profile))
{
profile.OnlinePlayState = OpenCloseState.Open;
}
Logger.PrintStub(LogClass.ServiceFriend, new { UserId = uuid.ToString(), profile.OnlinePlayState });
return 0;
}
// DeclareCloseOnlinePlaySession(nn::account::Uid) // DeclareCloseOnlinePlaySession(nn::account::Uid)
public long DeclareCloseOnlinePlaySession(ServiceCtx context) public long DeclareCloseOnlinePlaySession(ServiceCtx context)
{ {

View file

@ -20,10 +20,11 @@ namespace Ryujinx.HLE.HOS.Services.Irs
{ {
_commands = new Dictionary<int, ServiceProcessRequest> _commands = new Dictionary<int, ServiceProcessRequest>
{ {
{ 302, ActivateIrsensor }, { 302, ActivateIrsensor },
{ 303, DeactivateIrsensor }, { 303, DeactivateIrsensor },
{ 304, GetIrsensorSharedMemoryHandle }, { 304, GetIrsensorSharedMemoryHandle },
{ 311, GetNpadIrCameraHandle } { 311, GetNpadIrCameraHandle },
{ 319, ActivateIrsensorWithFunctionLevel }
}; };
_irsSharedMem = irsSharedMem; _irsSharedMem = irsSharedMem;
@ -103,5 +104,16 @@ namespace Ryujinx.HLE.HOS.Services.Irs
default: throw new ArgumentOutOfRangeException(nameof(npadId)); default: throw new ArgumentOutOfRangeException(nameof(npadId));
} }
} }
// ActivateIrsensorWithFunctionLevel(nn::applet::AppletResourceUserId, nn::irsensor::PackedFunctionLevel, pid)
public long ActivateIrsensorWithFunctionLevel(ServiceCtx context)
{
long appletResourceUserId = context.RequestData.ReadInt64();
long packedFunctionLevel = context.RequestData.ReadInt64();
Logger.PrintStub(LogClass.ServiceIrs, new { appletResourceUserId, packedFunctionLevel });
return 0;
}
} }
} }

View file

@ -42,14 +42,15 @@ namespace Ryujinx.HLE.HOS.Services.Nv
{ {
_commands = new Dictionary<int, ServiceProcessRequest>() _commands = new Dictionary<int, ServiceProcessRequest>()
{ {
{ 0, Open }, { 0, Open },
{ 1, Ioctl }, { 1, Ioctl },
{ 2, Close }, { 2, Close },
{ 3, Initialize }, { 3, Initialize },
{ 4, QueryEvent }, { 4, QueryEvent },
{ 8, SetClientPid }, { 8, SetClientPid },
{ 11, Ioctl }, { 9, DumpGraphicsMemoryInfo },
{ 13, FinishInitialize } { 11, Ioctl },
{ 13, FinishInitialize }
}; };
_event = new KEvent(system); _event = new KEvent(system);
@ -148,6 +149,13 @@ namespace Ryujinx.HLE.HOS.Services.Nv
return 0; return 0;
} }
public long DumpGraphicsMemoryInfo(ServiceCtx context)
{
Logger.PrintStub(LogClass.ServiceNv);
return 0;
}
public long FinishInitialize(ServiceCtx context) public long FinishInitialize(ServiceCtx context)
{ {
Logger.PrintStub(LogClass.ServiceNv); Logger.PrintStub(LogClass.ServiceNv);