Просмотр исходного кода

set: Implement GetAvailableLanguageCodeCount()

This just returns the size of the language code buffer.
Lioncash 8 лет назад
Родитель
Сommit
22f448b632
2 измененных файлов с 29 добавлено и 21 удалено
  1. 28 21
      src/core/hle/service/set/set.cpp
  2. 1 0
      src/core/hle/service/set/set.h

+ 28 - 21
src/core/hle/service/set/set.cpp

@@ -11,26 +11,27 @@
 
 namespace Service::Set {
 
+constexpr std::array<LanguageCode, 17> available_language_codes = {{
+    LanguageCode::JA,
+    LanguageCode::EN_US,
+    LanguageCode::FR,
+    LanguageCode::DE,
+    LanguageCode::IT,
+    LanguageCode::ES,
+    LanguageCode::ZH_CN,
+    LanguageCode::KO,
+    LanguageCode::NL,
+    LanguageCode::PT,
+    LanguageCode::RU,
+    LanguageCode::ZH_TW,
+    LanguageCode::EN_GB,
+    LanguageCode::FR_CA,
+    LanguageCode::ES_419,
+    LanguageCode::ZH_HANS,
+    LanguageCode::ZH_HANT,
+}};
+
 void SET::GetAvailableLanguageCodes(Kernel::HLERequestContext& ctx) {
-    static constexpr std::array<LanguageCode, 17> available_language_codes = {{
-        LanguageCode::JA,
-        LanguageCode::EN_US,
-        LanguageCode::FR,
-        LanguageCode::DE,
-        LanguageCode::IT,
-        LanguageCode::ES,
-        LanguageCode::ZH_CN,
-        LanguageCode::KO,
-        LanguageCode::NL,
-        LanguageCode::PT,
-        LanguageCode::RU,
-        LanguageCode::ZH_TW,
-        LanguageCode::EN_GB,
-        LanguageCode::FR_CA,
-        LanguageCode::ES_419,
-        LanguageCode::ZH_HANS,
-        LanguageCode::ZH_HANT,
-    }};
     ctx.WriteBuffer(available_language_codes);
 
     IPC::ResponseBuilder rb{ctx, 3};
@@ -40,15 +41,21 @@ void SET::GetAvailableLanguageCodes(Kernel::HLERequestContext& ctx) {
     LOG_DEBUG(Service_SET, "called");
 }
 
+void SET::GetAvailableLanguageCodeCount(Kernel::HLERequestContext& ctx) {
+    IPC::ResponseBuilder rb{ctx, 3};
+    rb.Push(RESULT_SUCCESS);
+    rb.Push(static_cast<u32>(available_language_codes.size()));
+}
+
 SET::SET() : ServiceFramework("set") {
     static const FunctionInfo functions[] = {
         {0, nullptr, "GetLanguageCode"},
         {1, &SET::GetAvailableLanguageCodes, "GetAvailableLanguageCodes"},
         {2, nullptr, "MakeLanguageCode"},
-        {3, nullptr, "GetAvailableLanguageCodeCount"},
+        {3, &SET::GetAvailableLanguageCodeCount, "GetAvailableLanguageCodeCount"},
         {4, nullptr, "GetRegionCode"},
         {5, &SET::GetAvailableLanguageCodes, "GetAvailableLanguageCodes2"},
-        {6, nullptr, "GetAvailableLanguageCodeCount2"},
+        {6, &SET::GetAvailableLanguageCodeCount, "GetAvailableLanguageCodeCount2"},
         {7, nullptr, "GetKeyCodeMap"},
         {8, nullptr, "GetQuestFlag"},
     };

+ 1 - 0
src/core/hle/service/set/set.h

@@ -36,6 +36,7 @@ public:
 
 private:
     void GetAvailableLanguageCodes(Kernel::HLERequestContext& ctx);
+    void GetAvailableLanguageCodeCount(Kernel::HLERequestContext& ctx);
 };
 
 } // namespace Service::Set