settings: Implement GetDeviceNickName and SetDeviceNickName (#2383)

* settings: Implement GetDeviceNickName and SetDeviceNickName

This PR implement `set` and `sys:set` calls : `GetDeviceNickName` and `SetDeviceNickName` accordingly to RE.
I've cleaned up both services a bit and `SystemStateMgr` class too.

Closes #2110

* Addresses gdkchan_s feedback
This commit is contained in:
Ac_K 2021-06-24 01:18:36 +02:00 committed by GitHub
parent 55e0c71489
commit e053663f27
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 77 additions and 23 deletions

View file

@ -35,39 +35,32 @@ namespace Ryujinx.HLE.HOS.SystemState
public TitleLanguage DesiredTitleLanguage { get; private set; }
internal string ActiveAudioOutput { get; private set; }
public bool DockedMode { get; set; }
public ColorSet ThemeColor { get; set; }
public bool InstallContents { get; set; }
public string DeviceNickName { get; set; }
public SystemStateMgr()
{
// TODO: Let user specify.
// TODO: Let user specify fields.
DesiredKeyboardLayout = (long)KeyboardLayout.Default;
DeviceNickName = "Ryujinx's Switch";
}
public void SetLanguage(SystemLanguage language)
{
DesiredSystemLanguage = language;
DesiredLanguageCode = GetLanguageCode((int)DesiredSystemLanguage);
DesiredLanguageCode = GetLanguageCode((int)DesiredSystemLanguage);
switch (language)
DesiredTitleLanguage = language switch
{
case SystemLanguage.Taiwanese:
case SystemLanguage.TraditionalChinese:
DesiredTitleLanguage = TitleLanguage.Taiwanese;
break;
case SystemLanguage.Chinese:
case SystemLanguage.SimplifiedChinese:
DesiredTitleLanguage = TitleLanguage.Chinese;
break;
default:
DesiredTitleLanguage = Enum.Parse<TitleLanguage>(Enum.GetName(typeof(SystemLanguage), language));
break;
}
SystemLanguage.Taiwanese or
SystemLanguage.TraditionalChinese => TitleLanguage.Taiwanese,
SystemLanguage.Chinese or
SystemLanguage.SimplifiedChinese => TitleLanguage.Chinese,
_ => Enum.Parse<TitleLanguage>(Enum.GetName(typeof(SystemLanguage), language)),
};
}
public void SetRegion(RegionCode region)
@ -93,4 +86,4 @@ namespace Ryujinx.HLE.HOS.SystemState
return code;
}
}
}
}