Przeglądaj źródła

es: Implement ETicket CountCommonTicket (9)

Returns the number of common (non-console-unique) tickets in the KeyManager.
Zach Hilman 7 lat temu
rodzic
commit
71bc2182c2
1 zmienionych plików z 12 dodań i 1 usunięć
  1. 12 1
      src/core/hle/service/es/es.cpp

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

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