set: Implement MakeLanguageCode

This commit is contained in:
Thog 2019-06-16 15:59:25 +02:00
parent 307eb98b1d
commit 1ce713df9e
No known key found for this signature in database
GPG key ID: 0CD291558FAFDBC6
2 changed files with 25 additions and 1 deletions

View file

@ -2,6 +2,8 @@ using Ryujinx.HLE.HOS.Ipc;
using Ryujinx.HLE.HOS.SystemState;
using System.Collections.Generic;
using static Ryujinx.HLE.HOS.ErrorCode;
namespace Ryujinx.HLE.HOS.Services.Set
{
class ISettingsServer : IpcService
@ -16,7 +18,7 @@ namespace Ryujinx.HLE.HOS.Services.Set
{
{ 0, GetLanguageCode },
{ 1, GetAvailableLanguageCodes },
//{ 2, MakeLanguageCode }, // 4.0.0+
{ 2, MakeLanguageCode }, // 4.0.0+
{ 3, GetAvailableLanguageCodeCount },
//{ 4, GetRegionCode },
{ 5, GetAvailableLanguageCodes2 },
@ -45,6 +47,21 @@ namespace Ryujinx.HLE.HOS.Services.Set
0xF);
}
// MakeLanguageCode(nn::settings::Language language_index) -> nn::settings::LanguageCode
public static long MakeLanguageCode(ServiceCtx context)
{
int languageIndex = context.RequestData.ReadInt32();
if (languageIndex < 0 || languageIndex >= SystemStateMgr.LanguageCodes.Length)
{
return MakeError(ErrorModule.Settings, SettingsError.LanguageOutOfRange);
}
context.ResponseData.Write(SystemStateMgr.GetLanguageCode(languageIndex));
return 0;
}
// GetAvailableLanguageCodeCount() -> u32
public static long GetAvailableLanguageCodeCount(ServiceCtx context)
{

View file

@ -0,0 +1,7 @@
namespace Ryujinx.HLE.HOS.Services.Set
{
static class SettingsError
{
public const int LanguageOutOfRange = 625;
}
}