summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/hle/service/set/set.cpp30
-rw-r--r--src/core/hle/service/set/set.h21
2 files changed, 45 insertions, 6 deletions
diff --git a/src/core/hle/service/set/set.cpp b/src/core/hle/service/set/set.cpp
index ece29aa70..f0572bed6 100644
--- a/src/core/hle/service/set/set.cpp
+++ b/src/core/hle/service/set/set.cpp
@@ -14,15 +14,33 @@ namespace Service::Set {
14void SET::GetAvailableLanguageCodes(Kernel::HLERequestContext& ctx) { 14void SET::GetAvailableLanguageCodes(Kernel::HLERequestContext& ctx) {
15 IPC::RequestParser rp{ctx}; 15 IPC::RequestParser rp{ctx};
16 u32 id = rp.Pop<u32>(); 16 u32 id = rp.Pop<u32>();
17 constexpr std::array<u8, 13> lang_codes{};
18
19 ctx.WriteBuffer(lang_codes.data(), lang_codes.size());
20
21 IPC::ResponseBuilder rb{ctx, 2};
22 17
18 static constexpr std::array<LanguageCode, 17> available_language_codes = {{
19 LanguageCode::JA,
20 LanguageCode::EN_US,
21 LanguageCode::FR,
22 LanguageCode::DE,
23 LanguageCode::IT,
24 LanguageCode::ES,
25 LanguageCode::ZH_CN,
26 LanguageCode::KO,
27 LanguageCode::NL,
28 LanguageCode::PT,
29 LanguageCode::RU,
30 LanguageCode::ZH_TW,
31 LanguageCode::EN_GB,
32 LanguageCode::FR_CA,
33 LanguageCode::ES_419,
34 LanguageCode::ZH_HANS,
35 LanguageCode::ZH_HANT,
36 }};
37 ctx.WriteBuffer(available_language_codes.data(), available_language_codes.size());
38
39 IPC::ResponseBuilder rb{ctx, 4};
23 rb.Push(RESULT_SUCCESS); 40 rb.Push(RESULT_SUCCESS);
41 rb.Push(static_cast<u64>(available_language_codes.size()));
24 42
25 NGLOG_WARNING(Service_SET, "(STUBBED) called"); 43 NGLOG_DEBUG(Service_SET, "called");
26} 44}
27 45
28SET::SET() : ServiceFramework("set") { 46SET::SET() : ServiceFramework("set") {
diff --git a/src/core/hle/service/set/set.h b/src/core/hle/service/set/set.h
index 6a465949f..ec0df0152 100644
--- a/src/core/hle/service/set/set.h
+++ b/src/core/hle/service/set/set.h
@@ -8,6 +8,27 @@
8 8
9namespace Service::Set { 9namespace Service::Set {
10 10
11/// This is "nn::settings::LanguageCode", which is a NUL-terminated string stored in a u64.
12enum class LanguageCode : u64 {
13 JA = 0x000000000000616A,
14 EN_US = 0x00000053552D6E65,
15 FR = 0x0000000000007266,
16 DE = 0x0000000000006564,
17 IT = 0x0000000000007469,
18 ES = 0x0000000000007365,
19 ZH_CN = 0x0000004E432D687A,
20 KO = 0x0000000000006F6B,
21 NL = 0x0000000000006C6E,
22 PT = 0x0000000000007470,
23 RU = 0x0000000000007572,
24 ZH_TW = 0x00000057542D687A,
25 EN_GB = 0x00000042472D6E65,
26 FR_CA = 0x00000041432D7266,
27 ES_419 = 0x00003931342D7365,
28 ZH_HANS = 0x00736E61482D687A,
29 ZH_HANT = 0x00746E61482D687A,
30};
31
11class SET final : public ServiceFramework<SET> { 32class SET final : public ServiceFramework<SET> {
12public: 33public:
13 explicit SET(); 34 explicit SET();