| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- using System;
- namespace Ryujinx.HLE.OsHle
- {
- public class SystemStateMgr
- {
- internal static string[] LanguageCodes = new string[]
- {
- "ja",
- "en-US",
- "fr",
- "de",
- "it",
- "es",
- "zh-CN",
- "ko",
- "nl",
- "pt",
- "ru",
- "zh-TW",
- "en-GB",
- "fr-CA",
- "es-419",
- "zh-Hans",
- "zh-Hant"
- };
- internal static string[] AudioOutputs = new string[]
- {
- "AudioTvOutput",
- "AudioStereoJackOutput",
- "AudioBuiltInSpeakerOutput"
- };
- internal long DesiredLanguageCode { get; private set; }
- internal string ActiveAudioOutput { get; private set; }
- public SystemStateMgr()
- {
- SetLanguage(SystemLanguage.AmericanEnglish);
- SetAudioOutputAsBuiltInSpeaker();
- }
- public void SetLanguage(SystemLanguage Language)
- {
- DesiredLanguageCode = GetLanguageCode((int)Language);
- }
- public void SetAudioOutputAsTv()
- {
- ActiveAudioOutput = AudioOutputs[0];
- }
- public void SetAudioOutputAsStereoJack()
- {
- ActiveAudioOutput = AudioOutputs[1];
- }
- public void SetAudioOutputAsBuiltInSpeaker()
- {
- ActiveAudioOutput = AudioOutputs[2];
- }
- internal static long GetLanguageCode(int Index)
- {
- if ((uint)Index >= LanguageCodes.Length)
- {
- throw new ArgumentOutOfRangeException(nameof(Index));
- }
- long Code = 0;
- int Shift = 0;
- foreach (char Chr in LanguageCodes[Index])
- {
- Code |= (long)(byte)Chr << Shift++ * 8;
- }
- return Code;
- }
- }
- }
|