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

core/aoc: Move IPurchaseEventManager to separate file

FearlessTobi 2 лет назад
Родитель
Сommit
aa6532cf34

+ 2 - 0
src/core/CMakeLists.txt

@@ -483,6 +483,8 @@ add_library(core STATIC
     hle/service/am/service/window_controller.h
     hle/service/aoc/aoc_u.cpp
     hle/service/aoc/aoc_u.h
+    hle/service/aoc/purchase_event_manager.cpp
+    hle/service/aoc/purchase_event_manager.h
     hle/service/apm/apm.cpp
     hle/service/apm/apm.h
     hle/service/apm/apm_controller.cpp

+ 1 - 78
src/core/hle/service/aoc/aoc_u.cpp

@@ -16,14 +16,13 @@
 #include "core/file_sys/registered_cache.h"
 #include "core/hle/kernel/k_event.h"
 #include "core/hle/service/aoc/aoc_u.h"
+#include "core/hle/service/aoc/purchase_event_manager.h"
 #include "core/hle/service/ipc_helpers.h"
 #include "core/hle/service/server_manager.h"
 #include "core/loader/loader.h"
 
 namespace Service::AOC {
 
-constexpr Result ResultNoPurchasedProductInfoAvailable{ErrorModule::NIMShop, 400};
-
 static bool CheckAOCTitleIDMatchesBase(u64 title_id, u64 base) {
     return FileSys::GetBaseTitleID(title_id) == base;
 }
@@ -46,82 +45,6 @@ static std::vector<u64> AccumulateAOCTitleIDs(Core::System& system) {
     return add_on_content;
 }
 
-class IPurchaseEventManager final : public ServiceFramework<IPurchaseEventManager> {
-public:
-    explicit IPurchaseEventManager(Core::System& system_)
-        : ServiceFramework{system_, "IPurchaseEventManager"}, service_context{
-                                                                  system, "IPurchaseEventManager"} {
-        // clang-format off
-        static const FunctionInfo functions[] = {
-            {0, &IPurchaseEventManager::SetDefaultDeliveryTarget, "SetDefaultDeliveryTarget"},
-            {1, &IPurchaseEventManager::SetDeliveryTarget, "SetDeliveryTarget"},
-            {2, &IPurchaseEventManager::GetPurchasedEventReadableHandle, "GetPurchasedEventReadableHandle"},
-            {3, &IPurchaseEventManager::PopPurchasedProductInfo, "PopPurchasedProductInfo"},
-            {4, &IPurchaseEventManager::PopPurchasedProductInfoWithUid, "PopPurchasedProductInfoWithUid"},
-        };
-        // clang-format on
-
-        RegisterHandlers(functions);
-
-        purchased_event = service_context.CreateEvent("IPurchaseEventManager:PurchasedEvent");
-    }
-
-    ~IPurchaseEventManager() override {
-        service_context.CloseEvent(purchased_event);
-    }
-
-private:
-    void SetDefaultDeliveryTarget(HLERequestContext& ctx) {
-        IPC::RequestParser rp{ctx};
-
-        const auto unknown_1 = rp.Pop<u64>();
-        [[maybe_unused]] const auto unknown_2 = ctx.ReadBuffer();
-
-        LOG_WARNING(Service_AOC, "(STUBBED) called, unknown_1={}", unknown_1);
-
-        IPC::ResponseBuilder rb{ctx, 2};
-        rb.Push(ResultSuccess);
-    }
-
-    void SetDeliveryTarget(HLERequestContext& ctx) {
-        IPC::RequestParser rp{ctx};
-
-        const auto unknown_1 = rp.Pop<u64>();
-        [[maybe_unused]] const auto unknown_2 = ctx.ReadBuffer();
-
-        LOG_WARNING(Service_AOC, "(STUBBED) called, unknown_1={}", unknown_1);
-
-        IPC::ResponseBuilder rb{ctx, 2};
-        rb.Push(ResultSuccess);
-    }
-
-    void GetPurchasedEventReadableHandle(HLERequestContext& ctx) {
-        LOG_WARNING(Service_AOC, "called");
-
-        IPC::ResponseBuilder rb{ctx, 2, 1};
-        rb.Push(ResultSuccess);
-        rb.PushCopyObjects(purchased_event->GetReadableEvent());
-    }
-
-    void PopPurchasedProductInfo(HLERequestContext& ctx) {
-        LOG_DEBUG(Service_AOC, "(STUBBED) called");
-
-        IPC::ResponseBuilder rb{ctx, 2};
-        rb.Push(ResultNoPurchasedProductInfoAvailable);
-    }
-
-    void PopPurchasedProductInfoWithUid(HLERequestContext& ctx) {
-        LOG_DEBUG(Service_AOC, "(STUBBED) called");
-
-        IPC::ResponseBuilder rb{ctx, 2};
-        rb.Push(ResultNoPurchasedProductInfoAvailable);
-    }
-
-    KernelHelpers::ServiceContext service_context;
-
-    Kernel::KEvent* purchased_event;
-};
-
 AOC_U::AOC_U(Core::System& system_)
     : ServiceFramework{system_, "aoc:u"}, add_on_content{AccumulateAOCTitleIDs(system)},
       service_context{system_, "aoc:u"} {

+ 79 - 0
src/core/hle/service/aoc/purchase_event_manager.cpp

@@ -0,0 +1,79 @@
+// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "core/hle/service/aoc/purchase_event_manager.h"
+#include "core/hle/service/ipc_helpers.h"
+
+namespace Service::AOC {
+
+constexpr Result ResultNoPurchasedProductInfoAvailable{ErrorModule::NIMShop, 400};
+
+IPurchaseEventManager::IPurchaseEventManager(Core::System& system_)
+    : ServiceFramework{system_, "IPurchaseEventManager"},
+      service_context{system, "IPurchaseEventManager"} {
+    // clang-format off
+        static const FunctionInfo functions[] = {
+            {0, &IPurchaseEventManager::SetDefaultDeliveryTarget, "SetDefaultDeliveryTarget"},
+            {1, &IPurchaseEventManager::SetDeliveryTarget, "SetDeliveryTarget"},
+            {2, &IPurchaseEventManager::GetPurchasedEventReadableHandle, "GetPurchasedEventReadableHandle"},
+            {3, &IPurchaseEventManager::PopPurchasedProductInfo, "PopPurchasedProductInfo"},
+            {4, &IPurchaseEventManager::PopPurchasedProductInfoWithUid, "PopPurchasedProductInfoWithUid"},
+        };
+    // clang-format on
+
+    RegisterHandlers(functions);
+
+    purchased_event = service_context.CreateEvent("IPurchaseEventManager:PurchasedEvent");
+}
+
+IPurchaseEventManager::~IPurchaseEventManager() {
+    service_context.CloseEvent(purchased_event);
+}
+
+void IPurchaseEventManager::SetDefaultDeliveryTarget(HLERequestContext& ctx) {
+    IPC::RequestParser rp{ctx};
+
+    const auto unknown_1 = rp.Pop<u64>();
+    [[maybe_unused]] const auto unknown_2 = ctx.ReadBuffer();
+
+    LOG_WARNING(Service_AOC, "(STUBBED) called, unknown_1={}", unknown_1);
+
+    IPC::ResponseBuilder rb{ctx, 2};
+    rb.Push(ResultSuccess);
+}
+
+void IPurchaseEventManager::SetDeliveryTarget(HLERequestContext& ctx) {
+    IPC::RequestParser rp{ctx};
+
+    const auto unknown_1 = rp.Pop<u64>();
+    [[maybe_unused]] const auto unknown_2 = ctx.ReadBuffer();
+
+    LOG_WARNING(Service_AOC, "(STUBBED) called, unknown_1={}", unknown_1);
+
+    IPC::ResponseBuilder rb{ctx, 2};
+    rb.Push(ResultSuccess);
+}
+
+void IPurchaseEventManager::GetPurchasedEventReadableHandle(HLERequestContext& ctx) {
+    LOG_WARNING(Service_AOC, "called");
+
+    IPC::ResponseBuilder rb{ctx, 2, 1};
+    rb.Push(ResultSuccess);
+    rb.PushCopyObjects(purchased_event->GetReadableEvent());
+}
+
+void IPurchaseEventManager::PopPurchasedProductInfo(HLERequestContext& ctx) {
+    LOG_DEBUG(Service_AOC, "(STUBBED) called");
+
+    IPC::ResponseBuilder rb{ctx, 2};
+    rb.Push(ResultNoPurchasedProductInfoAvailable);
+}
+
+void IPurchaseEventManager::PopPurchasedProductInfoWithUid(HLERequestContext& ctx) {
+    LOG_DEBUG(Service_AOC, "(STUBBED) called");
+
+    IPC::ResponseBuilder rb{ctx, 2};
+    rb.Push(ResultNoPurchasedProductInfoAvailable);
+}
+
+} // namespace Service::AOC

+ 28 - 0
src/core/hle/service/aoc/purchase_event_manager.h

@@ -0,0 +1,28 @@
+// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "core/hle/service/kernel_helpers.h"
+#include "core/hle/service/os/event.h"
+#include "core/hle/service/service.h"
+
+namespace Service::AOC {
+
+class IPurchaseEventManager final : public ServiceFramework<IPurchaseEventManager> {
+public:
+    explicit IPurchaseEventManager(Core::System& system_);
+    ~IPurchaseEventManager() override;
+
+    void SetDefaultDeliveryTarget(HLERequestContext& ctx);
+    void SetDeliveryTarget(HLERequestContext& ctx);
+    void GetPurchasedEventReadableHandle(HLERequestContext& ctx);
+    void PopPurchasedProductInfo(HLERequestContext& ctx);
+    void PopPurchasedProductInfoWithUid(HLERequestContext& ctx);
+
+private:
+    KernelHelpers::ServiceContext service_context;
+    Kernel::KEvent* purchased_event;
+};
+
+} // namespace Service::AOC