Fix latest version of hbl/hb-menu (#795)

* Fix latest version of hbl/hb-menu

This implement GetSettingsItemValueSize (required by hbl) and
GetInternetConnectionStatus (required by hb-menu).

* Address comments
This commit is contained in:
Thomas Guillemard 2019-10-19 00:47:50 +02:00 committed by Ac_K
parent 8a8ea4c8c0
commit 2b5ec23aa7
5 changed files with 99 additions and 0 deletions

View file

@ -1,5 +1,7 @@
using Ryujinx.Common;
using Ryujinx.Common.Logging;
using Ryujinx.HLE.HOS.Services.Nifm.StaticService.GeneralService;
using Ryujinx.HLE.HOS.Services.Nifm.StaticService.Types;
using System;
using System.Linq;
using System.Net;
@ -71,6 +73,27 @@ namespace Ryujinx.HLE.HOS.Services.Nifm.StaticService
return ResultCode.Success;
}
[Command(18)]
// GetInternetConnectionStatus() -> nn::nifm::detail::sf::InternetConnectionStatus
public ResultCode GetInternetConnectionStatus(ServiceCtx context)
{
if (!NetworkInterface.GetIsNetworkAvailable())
{
return ResultCode.NoInternetConnection;
}
InternetConnectionStatus internetConnectionStatus = new InternetConnectionStatus
{
Type = InternetConnectionType.WiFi,
WifiStrength = 3,
State = InternetConnectionState.Connected,
};
context.ResponseData.WriteStruct(internetConnectionStatus);
return ResultCode.Success;
}
[Command(21)]
// IsAnyInternetRequestAccepted(buffer<nn::nifm::ClientId, 0x19, 4>) -> bool
public ResultCode IsAnyInternetRequestAccepted(ServiceCtx context)

View file

@ -0,0 +1,11 @@
namespace Ryujinx.HLE.HOS.Services.Nifm.StaticService.Types
{
enum InternetConnectionState : byte
{
ConnectingType0 = 0,
ConnectingType1 = 1,
ConnectingType2 = 2,
ConnectingType3 = 3,
Connected = 4,
}
}

View file

@ -0,0 +1,12 @@
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Services.Nifm.StaticService.Types
{
[StructLayout(LayoutKind.Sequential)]
struct InternetConnectionStatus
{
public InternetConnectionType Type;
public byte WifiStrength;
public InternetConnectionState State;
}
}

View file

@ -0,0 +1,9 @@
namespace Ryujinx.HLE.HOS.Services.Nifm.StaticService.Types
{
enum InternetConnectionType : byte
{
Invalid = 0,
WiFi = 1,
Ethernet = 2,
}
}