// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include "core/hle/service/cmif_types.h" #include "core/hle/service/kernel_helpers.h" #include "core/hle/service/service.h" namespace Core { class System; } namespace Kernel { class KEvent; } namespace Service::AOC { class IPurchaseEventManager; class AOC_U final : public ServiceFramework { public: explicit AOC_U(Core::System& system); ~AOC_U() override; Result CountAddOnContent(Out out_count, ClientProcessId process_id); Result ListAddOnContent(Out out_count, OutBuffer out_addons, u32 offset, u32 count, ClientProcessId process_id); Result GetAddOnContentBaseId(Out out_title_id, ClientProcessId process_id); Result PrepareAddOnContent(s32 addon_index, ClientProcessId process_id); Result GetAddOnContentListChangedEvent(OutCopyHandle out_event); Result GetAddOnContentListChangedEventWithProcessId( OutCopyHandle out_event, ClientProcessId process_id); Result NotifyMountAddOnContent(); Result NotifyUnmountAddOnContent(); Result CheckAddOnContentMountStatus(); Result CreateEcPurchasedEventManager(OutInterface out_interface); Result CreatePermanentEcPurchasedEventManager( OutInterface out_interface); private: std::vector add_on_content; KernelHelpers::ServiceContext service_context; Kernel::KEvent* aoc_change_event; }; void LoopProcess(Core::System& system); } // namespace Service::AOC