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

es: Implement ETicket CountPersonalizedTicket (10)

Returns the number of personalized (console/user-unique) tickets in the KeyManager.
Zach Hilman 7 лет назад
Родитель
Сommit
11f45e6015
1 измененных файлов с 12 добавлено и 1 удалено
  1. 12 1
      src/core/hle/service/es/es.cpp

+ 12 - 1
src/core/hle/service/es/es.cpp

@@ -25,7 +25,7 @@ public:
             {7, nullptr, "DeleteAllPersonalizedTicketEx"},
             {7, nullptr, "DeleteAllPersonalizedTicketEx"},
             {8, &ETicket::GetTitleKey, "GetTitleKey"},
             {8, &ETicket::GetTitleKey, "GetTitleKey"},
             {9, &ETicket::CountCommonTicket, "CountCommonTicket"},
             {9, &ETicket::CountCommonTicket, "CountCommonTicket"},
-            {10, nullptr, "CountPersonalizedTicket"},
+            {10, &ETicket::CountPersonalizedTicket, "CountPersonalizedTicket"},
             {11, nullptr, "ListCommonTicket"},
             {11, nullptr, "ListCommonTicket"},
             {12, nullptr, "ListPersonalizedTicket"},
             {12, nullptr, "ListPersonalizedTicket"},
             {13, nullptr, "ListMissingPersonalizedTicket"},
             {13, nullptr, "ListMissingPersonalizedTicket"},
@@ -133,6 +133,17 @@ private:
         rb.Push<u32>(count);
         rb.Push<u32>(count);
     }
     }
 
 
+    void CountPersonalizedTicket(Kernel::HLERequestContext& ctx) {
+        LOG_DEBUG(Service_ETicket, "called");
+
+        keys.PopulateTickets();
+        const auto count = keys.GetPersonalizedTickets().size();
+
+        IPC::ResponseBuilder rb{ctx, 3};
+        rb.Push(RESULT_SUCCESS);
+        rb.Push<u32>(count);
+    }
+
 };
 };
 
 
 void InstallInterfaces(SM::ServiceManager& service_manager) {
 void InstallInterfaces(SM::ServiceManager& service_manager) {