4 changed files with 110 additions and 78 deletions
-
2src/core/CMakeLists.txt
-
79src/core/hle/service/aoc/aoc_u.cpp
-
79src/core/hle/service/aoc/purchase_event_manager.cpp
-
28src/core/hle/service/aoc/purchase_event_manager.h
@ -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
|
|||
@ -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 |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue