From 71bc2182c2e27c7dc635bd527325ebcde1f76ed0 Mon Sep 17 00:00:00 2001
From: Zach Hilman <zachhilman@gmail.com>
Date: Wed, 10 Apr 2019 14:02:27 -0400
Subject: [PATCH] es: Implement ETicket CountCommonTicket (9)

Returns the number of common (non-console-unique) tickets in the KeyManager.
---
 src/core/hle/service/es/es.cpp | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/core/hle/service/es/es.cpp b/src/core/hle/service/es/es.cpp
index 65dfaa2a00..1c6aef029f 100644
--- a/src/core/hle/service/es/es.cpp
+++ b/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) {