aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Services/Set
diff options
context:
space:
mode:
authorAc_K <Acoustik666@gmail.com>2019-07-14 21:04:38 +0200
committergdkchan <gab.dark.100@gmail.com>2019-07-14 16:04:38 -0300
commit4ad3936afd4ca393a05b330e3848958e9598e910 (patch)
treee0b3bc963230d3ea3d6cc57b5bc6caeba9233479 /Ryujinx.HLE/HOS/Services/Set
parent4926f6523d3130879e108403979ab68f1212f544 (diff)
Refactoring result codes (#731)
* refactoring result codes - Add a main enum who can handle some orphalin result codes and the default `ResultCode.Success` one. - Add sub-enum by services when it's needed. - Remove some empty line. - Recast all service calls to ResultCode. - Remove some unneeded static declaration. - Delete unused `NvHelper` class. * NvResult is back * Fix
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Set')
-rw-r--r--Ryujinx.HLE/HOS/Services/Set/ISettingsServer.cs32
-rw-r--r--Ryujinx.HLE/HOS/Services/Set/ISystemSettingsServer.cs22
-rw-r--r--Ryujinx.HLE/HOS/Services/Set/NxSettings.cs2
-rw-r--r--Ryujinx.HLE/HOS/Services/Set/ResultCode.cs12
-rw-r--r--Ryujinx.HLE/HOS/Services/Set/SettingsError.cs7
5 files changed, 39 insertions, 36 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Set/ISettingsServer.cs b/Ryujinx.HLE/HOS/Services/Set/ISettingsServer.cs
index b3f1571c..6fb923cc 100644
--- a/Ryujinx.HLE/HOS/Services/Set/ISettingsServer.cs
+++ b/Ryujinx.HLE/HOS/Services/Set/ISettingsServer.cs
@@ -2,8 +2,6 @@ using Ryujinx.Common.Logging;
using Ryujinx.HLE.HOS.SystemState;
using System;
-using static Ryujinx.HLE.HOS.ErrorCode;
-
namespace Ryujinx.HLE.HOS.Services.Set
{
[Service("set")]
@@ -13,16 +11,16 @@ namespace Ryujinx.HLE.HOS.Services.Set
[Command(0)]
// GetLanguageCode() -> nn::settings::LanguageCode
- public static long GetLanguageCode(ServiceCtx context)
+ public ResultCode GetLanguageCode(ServiceCtx context)
{
context.ResponseData.Write(context.Device.System.State.DesiredLanguageCode);
- return 0;
+ return ResultCode.Success;
}
[Command(1)]
// GetAvailableLanguageCodes() -> (u32, buffer<nn::settings::LanguageCode, 0xa>)
- public static long GetAvailableLanguageCodes(ServiceCtx context)
+ public ResultCode GetAvailableLanguageCodes(ServiceCtx context)
{
return GetAvailableLanguagesCodesImpl(
context,
@@ -33,32 +31,32 @@ namespace Ryujinx.HLE.HOS.Services.Set
[Command(2)] // 4.0.0+
// MakeLanguageCode(nn::settings::Language language_index) -> nn::settings::LanguageCode
- public static long MakeLanguageCode(ServiceCtx context)
+ public ResultCode MakeLanguageCode(ServiceCtx context)
{
int languageIndex = context.RequestData.ReadInt32();
if ((uint)languageIndex >= (uint)SystemStateMgr.LanguageCodes.Length)
{
- return MakeError(ErrorModule.Settings, SettingsError.LanguageOutOfRange);
+ return ResultCode.LanguageOutOfRange;
}
context.ResponseData.Write(SystemStateMgr.GetLanguageCode(languageIndex));
- return 0;
+ return ResultCode.Success;
}
[Command(3)]
// GetAvailableLanguageCodeCount() -> u32
- public static long GetAvailableLanguageCodeCount(ServiceCtx context)
+ public ResultCode GetAvailableLanguageCodeCount(ServiceCtx context)
{
context.ResponseData.Write(Math.Min(SystemStateMgr.LanguageCodes.Length, 0xF));
- return 0;
+ return ResultCode.Success;
}
[Command(5)]
// GetAvailableLanguageCodes2() -> (u32, buffer<nn::settings::LanguageCode, 6>)
- public static long GetAvailableLanguageCodes2(ServiceCtx context)
+ public ResultCode GetAvailableLanguageCodes2(ServiceCtx context)
{
return GetAvailableLanguagesCodesImpl(
context,
@@ -69,25 +67,25 @@ namespace Ryujinx.HLE.HOS.Services.Set
[Command(6)]
// GetAvailableLanguageCodeCount2() -> u32
- public static long GetAvailableLanguageCodeCount2(ServiceCtx context)
+ public ResultCode GetAvailableLanguageCodeCount2(ServiceCtx context)
{
context.ResponseData.Write(SystemStateMgr.LanguageCodes.Length);
- return 0;
+ return ResultCode.Success;
}
[Command(8)] // 5.0.0+
// GetQuestFlag() -> bool
- public static long GetQuestFlag(ServiceCtx context)
+ public ResultCode GetQuestFlag(ServiceCtx context)
{
context.ResponseData.Write(false);
Logger.PrintStub(LogClass.ServiceSet);
- return 0;
+ return ResultCode.Success;
}
- public static long GetAvailableLanguagesCodesImpl(ServiceCtx context, long position, long size, int maxSize)
+ public ResultCode GetAvailableLanguagesCodesImpl(ServiceCtx context, long position, long size, int maxSize)
{
int count = (int)(size / 8);
@@ -105,7 +103,7 @@ namespace Ryujinx.HLE.HOS.Services.Set
context.ResponseData.Write(count);
- return 0;
+ return ResultCode.Success;
}
}
} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Set/ISystemSettingsServer.cs b/Ryujinx.HLE/HOS/Services/Set/ISystemSettingsServer.cs
index 5128d792..7a2f0672 100644
--- a/Ryujinx.HLE/HOS/Services/Set/ISystemSettingsServer.cs
+++ b/Ryujinx.HLE/HOS/Services/Set/ISystemSettingsServer.cs
@@ -16,14 +16,14 @@ namespace Ryujinx.HLE.HOS.Services.Set
[Command(3)]
// GetFirmwareVersion() -> buffer<nn::settings::system::FirmwareVersion, 0x1a, 0x100>
- public static long GetFirmwareVersion(ServiceCtx context)
+ public ResultCode GetFirmwareVersion(ServiceCtx context)
{
return GetFirmwareVersion2(context);
}
[Command(4)]
// GetFirmwareVersion2() -> buffer<nn::settings::system::FirmwareVersion, 0x1a, 0x100>
- public static long GetFirmwareVersion2(ServiceCtx context)
+ public ResultCode GetFirmwareVersion2(ServiceCtx context)
{
long replyPos = context.Request.RecvListBuff[0].Position;
long replySize = context.Request.RecvListBuff[0].Size;
@@ -34,7 +34,7 @@ namespace Ryujinx.HLE.HOS.Services.Set
{
context.Memory.WriteBytes(replyPos, firmwareData);
- return 0;
+ return ResultCode.Success;
}
const byte majorFwVersion = 0x03;
@@ -78,32 +78,32 @@ namespace Ryujinx.HLE.HOS.Services.Set
context.Memory.WriteBytes(replyPos, ms.ToArray());
}
- return 0;
+ return ResultCode.Success;
}
[Command(23)]
// GetColorSetId() -> i32
- public static long GetColorSetId(ServiceCtx context)
+ public ResultCode GetColorSetId(ServiceCtx context)
{
context.ResponseData.Write((int)context.Device.System.State.ThemeColor);
- return 0;
+ return ResultCode.Success;
}
[Command(24)]
// GetColorSetId() -> i32
- public static long SetColorSetId(ServiceCtx context)
+ public ResultCode SetColorSetId(ServiceCtx context)
{
int colorSetId = context.RequestData.ReadInt32();
context.Device.System.State.ThemeColor = (ColorSet)colorSetId;
- return 0;
+ return ResultCode.Success;
}
[Command(38)]
// GetSettingsItemValue(buffer<nn::settings::SettingsName, 0x19, 0x48>, buffer<nn::settings::SettingsItemKey, 0x19, 0x48>) -> (u64, buffer<unknown, 6, 0>)
- public static long GetSettingsItemValue(ServiceCtx context)
+ public ResultCode GetSettingsItemValue(ServiceCtx context)
{
long classPos = context.Request.PtrBuff[0].Position;
long classSize = context.Request.PtrBuff[0].Size;
@@ -159,10 +159,10 @@ namespace Ryujinx.HLE.HOS.Services.Set
Logger.PrintError(LogClass.ServiceSet, $"{askedSetting} not found!");
}
- return 0;
+ return ResultCode.Success;
}
- public static byte[] GetFirmwareData(Switch device)
+ public byte[] GetFirmwareData(Switch device)
{
long titleId = 0x0100000000000809;
string contentPath = device.System.ContentManager.GetInstalledContentPath(titleId, StorageId.NandSystem, ContentType.Data);
diff --git a/Ryujinx.HLE/HOS/Services/Set/NxSettings.cs b/Ryujinx.HLE/HOS/Services/Set/NxSettings.cs
index b47a5390..46350743 100644
--- a/Ryujinx.HLE/HOS/Services/Set/NxSettings.cs
+++ b/Ryujinx.HLE/HOS/Services/Set/NxSettings.cs
@@ -1708,4 +1708,4 @@ namespace Ryujinx.HLE.HOS.Services.Set
{ "wlan_debug!skip_wlan_boot", false }
};
}
-}
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Set/ResultCode.cs b/Ryujinx.HLE/HOS/Services/Set/ResultCode.cs
new file mode 100644
index 00000000..60d3e690
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Set/ResultCode.cs
@@ -0,0 +1,12 @@
+namespace Ryujinx.HLE.HOS.Services.Set
+{
+ enum ResultCode
+ {
+ ModuleId = 105,
+ ErrorCodeShift = 9,
+
+ Success = 0,
+
+ LanguageOutOfRange = (625 << ErrorCodeShift) | ModuleId
+ }
+} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Set/SettingsError.cs b/Ryujinx.HLE/HOS/Services/Set/SettingsError.cs
deleted file mode 100644
index 03257ca0..00000000
--- a/Ryujinx.HLE/HOS/Services/Set/SettingsError.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace Ryujinx.HLE.HOS.Services.Set
-{
- static class SettingsError
- {
- public const int LanguageOutOfRange = 625;
- }
-}